From 42126c2022316db11cca9105f5276d33765ef26c Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 27 May 2020 16:35:17 +0200 Subject: [PATCH] backend/drm: rollback pending CRTC state on test commit A test commit doesn't apply the pending state. The CRTC state will be populated again if the compositor decides to perform a regular commit afterwards. --- backend/drm/drm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/drm/drm.c b/backend/drm/drm.c index d1abe773..0680aeee 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -336,7 +336,7 @@ static bool drm_crtc_commit(struct wlr_drm_connector *conn, uint32_t flags) { get_drm_backend_from_backend(conn->output.backend); struct wlr_drm_crtc *crtc = conn->crtc; bool ok = drm->iface->crtc_commit(drm, conn, flags); - if (ok) { + if (ok && !(flags & DRM_MODE_ATOMIC_TEST_ONLY)) { memcpy(&crtc->current, &crtc->pending, sizeof(struct wlr_drm_crtc_state)); } else { memcpy(&crtc->pending, &crtc->current, sizeof(struct wlr_drm_crtc_state));