mesa/src/egl/drivers/dri2
Derek Foreman 28d12716e8 egl/wayland: Properly clear stale buffers on resize
The following chain of events results in an incorrectly sized buffer
persisting beyond its useful lifetime, and causing visual artifacts.

buffer is attached at size A
window is resized to size B
rendering takes place for size B
window is resized back to size A
swapbuffers with damage is called

In this scenario, update_buffers fails to recognize that the surface it's
about to commit is a different size than it has rendered. The
attached_width and attached_height are set incorrectly, and periodic
flickering is observed.

Instead, we set a boolean flag at time of resize and use this at the time
we latch the window dimensions as surface dimensions to decide whether to
discard stale buffers.

Signed-off-by: Derek Foreman <derek.foreman@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13270>
2021-10-16 19:13:58 +00:00
..
egl_dri2.c egl/dri2: seperate EGLImage validate and lookup 2021-09-09 01:42:39 +00:00
egl_dri2.h egl/wayland: Properly clear stale buffers on resize 2021-10-16 19:13:58 +00:00
platform_android.c egl/android: restore image creation fallback path used by virgl 2021-07-09 16:18:23 +00:00
platform_android.h egl/android: restore image creation fallback path used by virgl 2021-07-09 16:18:23 +00:00
platform_android_mapper.cpp egl/android: restore image creation fallback path used by virgl 2021-07-09 16:18:23 +00:00
platform_device.c egl/dri: Enable FP16 for EGL_EXT_platform_device 2021-10-13 16:36:27 +00:00
platform_drm.c gbm/dri: implement image lookup extension version 2 2021-09-09 01:42:39 +00:00
platform_surfaceless.c egl/surfaceless: try kms_swrast before swrast 2021-07-21 23:12:58 +00:00
platform_wayland.c egl/wayland: Properly clear stale buffers on resize 2021-10-16 19:13:58 +00:00
platform_x11.c
platform_x11_dri3.c gallium: add PIPE_CAP_PREFER_BACK_BUFFER_REUSE 2021-09-29 08:14:57 +00:00
platform_x11_dri3.h