diff --git a/libweston/backend-drm/state-propose.c b/libweston/backend-drm/state-propose.c index 767c34f4..b403e304 100644 --- a/libweston/backend-drm/state-propose.c +++ b/libweston/backend-drm/state-propose.c @@ -862,20 +862,6 @@ drm_output_propose_state(struct weston_output *output_base, continue; } - /* We only assign planes to views which are exclusively present - * on our output. */ - if (ev->output_mask != (1u << output->base.id)) { - drm_debug(b, "\t\t\t\t[view] not assigning view %p to plane " - "(on multiple outputs)\n", ev); - force_renderer = true; - } - - if (!weston_view_has_valid_buffer(ev)) { - drm_debug(b, "\t\t\t\t[view] not assigning view %p to plane " - "(no buffer available)\n", ev); - force_renderer = true; - } - /* Ignore views we know to be totally occluded. */ pixman_region32_init(&clipped_view); pixman_region32_intersect(&clipped_view, @@ -897,6 +883,20 @@ drm_output_propose_state(struct weston_output *output_base, continue; } + /* We only assign planes to views which are exclusively present + * on our output. */ + if (ev->output_mask != (1u << output->base.id)) { + drm_debug(b, "\t\t\t\t[view] not assigning view %p to plane " + "(on multiple outputs)\n", ev); + force_renderer = true; + } + + if (!weston_view_has_valid_buffer(ev)) { + drm_debug(b, "\t\t\t\t[view] not assigning view %p to plane " + "(no buffer available)\n", ev); + force_renderer = true; + } + /* Since we process views from top to bottom, we know that if * the view intersects the calculated renderer region, it must * be part of, or occluded by, it, and cannot go on a plane. */