mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-04 19:20:38 +01:00
If the window is destroyed from underneath us while we happen to be in xcb_wait_for_special_event, there's no recovery. The special event will never match because the XID is no longer valid, and Present doesn't have an in-band DestroyNotify. We're going to work around this by using the poll API instead. If we get an event we short-circuit back to the top of the "wait for available image" loop, so we drain the whole special event queue before any other logic. Which means if we run out of special events (and the connection and swapchain are still valid) that we _don't_ have enough images available, so to hurry along any events that the X server hasn't flushed out yet we call GetGeometry on the swapchain's window. As a side effect this verifies that the window is still alive. Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15800> |
||
|---|---|---|
| .. | ||
| device-select-layer | ||
| overlay-layer | ||
| registry | ||
| runtime | ||
| util | ||
| wsi | ||
| meson.build | ||
| vulkan-icd-symbols.txt | ||