From 1d581656c756fd17a6cf55474d32586f6769663f Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 7 Jun 2022 15:03:39 +0200 Subject: 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 --- include/backend/drm/drm.h | 1 + include/backend/drm/properties.h | 4 ++++ 2 files changed, 5 insertions(+) (limited to 'include/backend') 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 -- cgit v1.2.3