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 <daniels@collabora.com>
dev
Daniel Stone 3 years ago
parent dc0de9ee2b
commit 6b828c7b57
  1. 11
      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(b->atomic_modeset);
assert(mode == DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY); 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 /* 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. */ * support fences, we can't place the buffer on this plane. */
if (ev->surface->acquire_fence_fd >= 0 && if (ev->surface->acquire_fence_fd >= 0 &&
@ -673,6 +664,8 @@ drm_output_prepare_plane_view(struct drm_output_state *state,
continue; continue;
if (mode != DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY) if (mode != DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY)
continue; continue;
if (!view_matches_entire_output)
continue;
break; break;
case WDRM_PLANE_TYPE_OVERLAY: case WDRM_PLANE_TYPE_OVERLAY:
assert(fb); assert(fb);

Loading…
Cancel
Save