diff options
Diffstat (limited to 'backend/drm')
-rw-r--r-- | backend/drm/drm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c index caf27d71..b56cf6d5 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -31,6 +31,13 @@ #include "types/wlr_buffer.h" #include "util/signal.h" +static const uint32_t SUPPORTED_OUTPUT_STATE = + WLR_OUTPUT_STATE_BACKEND_OPTIONAL | + WLR_OUTPUT_STATE_BUFFER | + WLR_OUTPUT_STATE_MODE | + WLR_OUTPUT_STATE_ENABLED | + WLR_OUTPUT_STATE_GAMMA_LUT; + bool check_drm_features(struct wlr_drm_backend *drm) { if (drmGetCap(drm->fd, DRM_CAP_CURSOR_WIDTH, &drm->cursor_width)) { drm->cursor_width = 64; @@ -435,6 +442,13 @@ static bool drm_connector_test(struct wlr_output *output) { return false; } + uint32_t unsupported = output->pending.committed & ~SUPPORTED_OUTPUT_STATE; + if (unsupported != 0) { + wlr_log(WLR_DEBUG, "Unsupported output state fields: 0x%"PRIx32, + unsupported); + return false; + } + if ((output->pending.committed & WLR_OUTPUT_STATE_ENABLED) && output->pending.enabled) { if (output->current_mode == NULL && |