compositor: use weston_view_is_opaque() to check for opacity in debug_scene_view_print()
authorMichael Olbrich <m.olbrich@pengutronix.de>
Tue, 11 Aug 2020 14:33:35 +0000 (16:33 +0200)
committerMichael Olbrich <m.olbrich@pengutronix.de>
Tue, 11 Aug 2020 14:41:14 +0000 (16:41 +0200)
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 <m.olbrich@pengutronix.de>
libweston/compositor.c

index 283f3f68c5c419925e30d5113aaee2b7e5d54612..a864d5a98443011765aa0ef82b29ddf7c3f5e329 100644 (file)
@@ -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");