backend/drm: fix modifiers for cursor plane buffers

In 93cd3a79b2 ("backend/drm: stop using GBM flags"), we stopped
using the GBM_BO_USE_LINEAR flag in favor of a modifier list set
to { DRM_FORMAT_MOD_LINEAR }. However, the last argument of
drm_plane_init_surface disables modifiers -- so the buffer will just
get allocated with an implicit modifier, without necessarily being
LINEAR.

To fix this, allow modifiers when allocating the cursor buffers.
wlr_drm_plane.formats should already have the necessary LINEAR
restrictions.

Fixes: 93cd3a79b2 ("backend/drm: stop using GBM flags")
This commit is contained in:
Simon Ser 2021-01-17 22:25:18 +01:00
parent f17b0f975d
commit 04d89a8bc5
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48

View file

@ -891,7 +891,7 @@ static bool drm_connector_set_cursor(struct wlr_output *output,
h = ret ? 64 : h; h = ret ? 64 : h;
if (!drm_plane_init_surface(plane, drm, w, h, if (!drm_plane_init_surface(plane, drm, w, h,
DRM_FORMAT_ARGB8888, false)) { DRM_FORMAT_ARGB8888, true)) {
wlr_drm_conn_log(conn, WLR_ERROR, "Cannot allocate cursor resources"); wlr_drm_conn_log(conn, WLR_ERROR, "Cannot allocate cursor resources");
return false; return false;
} }