diff options
author | Simon Ser <contact@emersion.fr> | 2022-06-07 15:03:39 +0200 |
---|---|---|
committer | Isaac Freund <mail@isaacfreund.com> | 2022-06-19 16:55:36 +0000 |
commit | 1d581656c756fd17a6cf55474d32586f6769663f (patch) | |
tree | 61300f6bbaa3b7f93520e38ee16ec8cb5b1b0154 /include/backend | |
parent | 1f1c0275be21f02a430b3a9fd51bba9ba5be57d1 (diff) |
backend/drm: set "max bpc" to the max
"max bpc" is a maximum value, the driver is free to choose a
smaller value depending on the bandwidth available.
Some faulty monitors misbehave with higher bpc values. We'll add
a workaround if users get hit by these in practice.
References: https://gitlab.freedesktop.org/wayland/weston/-/issues/612
Diffstat (limited to 'include/backend')
-rw-r--r-- | include/backend/drm/drm.h | 1 | ||||
-rw-r--r-- | include/backend/drm/properties.h | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/include/backend/drm/drm.h b/include/backend/drm/drm.h index dbc47364..700ed654 100644 --- a/include/backend/drm/drm.h +++ b/include/backend/drm/drm.h @@ -119,6 +119,7 @@ struct wlr_drm_connector { enum wlr_drm_connector_status status; bool desired_enabled; uint32_t id; + uint64_t max_bpc; struct wlr_drm_lease *lease; struct wlr_drm_crtc *crtc; diff --git a/include/backend/drm/properties.h b/include/backend/drm/properties.h index f6c6023a..b6ca14f1 100644 --- a/include/backend/drm/properties.h +++ b/include/backend/drm/properties.h @@ -21,6 +21,7 @@ union wlr_drm_connector_props { uint32_t non_desktop; uint32_t panel_orientation; // not guaranteed to exist uint32_t content_type; // not guaranteed to exist + uint32_t max_bpc; // not guaranteed to exist // atomic-modesetting only @@ -76,4 +77,7 @@ bool get_drm_prop(int fd, uint32_t obj, uint32_t prop, uint64_t *ret); void *get_drm_prop_blob(int fd, uint32_t obj, uint32_t prop, size_t *ret_len); char *get_drm_prop_enum(int fd, uint32_t obj, uint32_t prop); +bool introspect_drm_prop_range(int fd, uint32_t prop_id, + uint64_t *min, uint64_t *max); + #endif |