drm: Ensure we always have a fb for non-cursor planes

Now that the weird cursor code is out of the plane loop, we can
simplify it a little bit by bailing sooner when we don't have
an fb.

The cursor code not needing an fb was the only reason we could
enter the loop without one.

Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
This commit is contained in:
Derek Foreman 2026-02-25 15:24:34 -06:00
parent 6f23316ec6
commit 181a2a03d9

View file

@ -742,9 +742,12 @@ drm_output_find_plane_for_view(struct drm_output_state *state,
fputs("\n", dbg);
}
pnode->try_view_on_plane_failure_reasons |= fb_failure_reasons;
return NULL;
}
}
assert(fb);
/* if the view covers the whole output, put it in the scanout plane,
* not overlay */
if (mode == DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY) {
@ -816,11 +819,9 @@ drm_output_find_plane_for_view(struct drm_output_state *state,
assert(plane->type != WDRM_PLANE_TYPE_CURSOR);
if (fb)
ps = drm_output_try_paint_node_on_plane(handle, state,
pnode, mode,
fb, zpos);
ps = drm_output_try_paint_node_on_plane(handle, state,
pnode, mode,
fb, zpos);
if (ps) {
/* Check if this ps is underlay plane, if so, the view
* needs through hole on primary plane. */