weston/libweston/backend-drm
Alexandros Frantzis 10937feef8 backend-drm: Clear drm_output cursor_view when view is destroyed
The DRM backend uses changes in the cursor view memory address and
surface damage to detect when it needs to re-upload to a cursor plane
framebuffer.

However, when a cursor view is destroyed and then recreated, e.g., when
the pointer cursor surface is updated, the newly created view may have
the same memory address as the just destroyed one. If no new cursor
buffer is provided (because it was attached, committed and used
previously) when this address reuse occurs, then there also isn't any
updated surface damage and the backend doesn't update the cursor plane
framebuffer at all.

To fix this issue utilize the destroy signal to track when the cursor
view is destroyed, and clear the cached cursor_view value in drm_output.
After clearing the cached value, the next cursor view is always
considered new and thus uploaded to the plane properly.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
2021-06-14 13:31:41 +00:00
..
drm-gbm.c backend-drm: add DRM_FORMAT_MOD_INVALID to modifier sets when no modifiers are supported 2021-04-27 19:56:38 +00:00
drm-internal.h backend-drm: Clear drm_output cursor_view when view is destroyed 2021-06-14 13:31:41 +00:00
drm-virtual.c backend-drm: add DRM_FORMAT_MOD_INVALID to modifier sets when no modifiers are supported 2021-04-27 19:56:38 +00:00
drm.c backend-drm: Clear drm_output cursor_view when view is destroyed 2021-06-14 13:31:41 +00:00
fb.c backend-drm: simplify compile time array copy 2021-04-27 19:00:38 -03:00
kms.c backend-drm: Clear drm_output cursor_view when view is destroyed 2021-06-14 13:31:41 +00:00
libbacklight.c backend-drm: move into new subdir 2019-05-16 13:32:34 +01:00
libbacklight.h backend-drm: move into new subdir 2019-05-16 13:32:34 +01:00
meson.build libweston/backend/drm: might need EGL 2020-10-26 15:44:34 +01:00
modes.c Add weston-drm-fourcc.h 2021-02-25 14:35:03 +02:00
state-helpers.c Add weston-drm-fourcc.h 2021-02-25 14:35:03 +02:00
state-propose.c backend-drm: Clear drm_output cursor_view when view is destroyed 2021-06-14 13:31:41 +00:00
vaapi-recorder.c backend-drm: move into new subdir 2019-05-16 13:32:34 +01:00
vaapi-recorder.h backend-drm: move into new subdir 2019-05-16 13:32:34 +01:00