From b7e5f10bf47736d152360942dae7acfc4119519c Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Tue, 11 Aug 2020 16:33:35 +0200 Subject: [PATCH] compositor: use weston_view_is_opaque() to check for opacity in debug_scene_view_print() Currently the debug output for 'drm-backend' can be confusing. In the output of debug_scene_view_print() views may be listed as 'not opaque' but later, during plane assignment, other views underneath such a view is reported as 'occluded on our output'. This happens because weston_view_is_opaque() has some extra checks to determine if a view is fully opaque, such as 'is_opaque' provided by the renderer for formats that have no alpha channel. Use weston_view_is_opaque() in debug_scene_view_print() as well to get more accurate results. Signed-off-by: Michael Olbrich --- libweston/compositor.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libweston/compositor.c b/libweston/compositor.c index 283f3f68..a864d5a9 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -7145,8 +7145,7 @@ debug_scene_view_print(FILE *fp, struct weston_view *view, int view_idx) box->x1, box->y1, box->x2, box->y2); box = pixman_region32_extents(&view->transform.opaque); - if (pixman_region32_equal(&view->transform.opaque, - &view->transform.boundingbox)) { + if (weston_view_is_opaque(view, &view->transform.boundingbox)) { fprintf(fp, "\t\t[fully opaque]\n"); } else if (!pixman_region32_not_empty(&view->transform.opaque)) { fprintf(fp, "\t\t[not opaque]\n");