mirror of https://gitlab.freedesktop.org/mesa/mesa
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> |
||
---|---|---|
.. | ||
egl_dri2.c | ||
egl_dri2.h | ||
platform_android.c | ||
platform_android.h | ||
platform_android_mapper.cpp | ||
platform_device.c | ||
platform_drm.c | ||
platform_surfaceless.c | ||
platform_wayland.c | ||
platform_x11.c | ||
platform_x11_dri3.c | ||
platform_x11_dri3.h |