From 6b828c7b5748871712170c7d8a164e08099c21b1 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Thu, 9 Dec 2021 16:16:40 +0000 Subject: [PATCH] backend-drm: Don't try non-fullscreen views on the primary plane You'd think this would go without saying, but no, we just sort of buried that. Signed-off-by: Daniel Stone --- libweston/backend-drm/state-propose.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/libweston/backend-drm/state-propose.c b/libweston/backend-drm/state-propose.c index 1c144276..8b361f1a 100644 --- a/libweston/backend-drm/state-propose.c +++ b/libweston/backend-drm/state-propose.c @@ -308,15 +308,6 @@ drm_output_prepare_scanout_view(struct drm_output_state *output_state, assert(b->atomic_modeset); assert(mode == DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY); - /* Check the view spans exactly the output size, calculated in the - * logical co-ordinate space. */ - if (!weston_view_matches_output_entirely(ev, &output->base)) { - drm_debug(b, "\t\t\t\t[%s] not placing view %p on %s: " - " view does not match output entirely\n", - p_name, ev, p_name); - return NULL; - } - /* If the surface buffer has an in-fence fd, but the plane doesn't * support fences, we can't place the buffer on this plane. */ if (ev->surface->acquire_fence_fd >= 0 && @@ -673,6 +664,8 @@ drm_output_prepare_plane_view(struct drm_output_state *state, continue; if (mode != DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY) continue; + if (!view_matches_entire_output) + continue; break; case WDRM_PLANE_TYPE_OVERLAY: assert(fb);