From 117892259014d02e3ed41d241c6068d026f4c440 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Fri, 20 Jul 2018 19:55:37 +0100 Subject: [PATCH] compositor-drm: Don't test render-only atomic configuration In the RENDERER_ONLY state proposal mode, we don't actually have a viable configuration to test, because we won't get a renderer buffer until after assign_planes - where we're called from - has completed. This can result in us trying to test a configuration with the CRTC and connectors active, but no planes active, which the kernel can legitimately fail. If we're working in renderer-only mode, just return the state we have without trying to test it first, and let the kernel fill it in later. Signed-off-by: Daniel Stone Acked-by: Derek Foreman --- libweston/compositor-drm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index 98e6ff8..704ac32 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -3488,6 +3488,11 @@ drm_output_propose_state(struct weston_output *output_base, pixman_region32_fini(&renderer_region); pixman_region32_fini(&occluded_region); + /* In renderer-only mode, we can't test the state as we don't have a + * renderer buffer yet. */ + if (mode == DRM_OUTPUT_PROPOSE_STATE_RENDERER_ONLY) + return state; + /* Check to see if this state will actually work. */ ret = drm_pending_state_test(state->pending_state); if (ret != 0) -- 2.7.4