backend-drm: Don't force non-opaque overlays to primary plane

If a view is non-opaque - such as an overlay over a video - we shouldn't
force it to be on the primary plane, as that's where the underlying
content should be placed, such as the video view.

dc0de9ee already mentioned: "This check should be changed in future to
only filter for opaque views, but that's for another time."

Adding "Fixes" at this is arguably a bug fix:
Fixes: dc0de9ee (backend-drm: Move overlay vs. primary plane check earlier)
Fixes: 2538aacc (backend-drm: Construct a zpos candidate list of planes)

Signed-off-by: Robert Mader <robert.mader@collabora.com>
This commit is contained in:
Robert Mader 2024-01-11 14:55:49 +01:00
parent 2abe4efcf7
commit 5a2509ffb1
1 changed files with 1 additions and 0 deletions

View File

@ -508,6 +508,7 @@ drm_output_find_plane_for_view(struct drm_output_state *state,
/* if the view covers the whole output, put it in the /* if the view covers the whole output, put it in the
* scanout plane, not overlay */ * scanout plane, not overlay */
if (view_matches_entire_output && if (view_matches_entire_output &&
weston_view_is_opaque(ev, &ev->transform.boundingbox) &&
!scanout_has_view_assigned) !scanout_has_view_assigned)
continue; continue;
break; break;