28d12716e8
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>