mesa/src/loader
Michel Dänzer d7d7687829 loader/dri3: Check for window destruction in dri3_wait_for_event_locked
If the underlying X11 window gets destroyed, the event we're waiting
for may never be delivered, in which case xcb_wait_for_special_event
would hang indefinitely.

Solution:

1. Use xcb_poll_for_special_event to check if an event has arrived yet.
2. If not, Wait up to ~1s for XCB's file descriptor to become readable;
   if it does, go back to step 1.
3. If the file descriptor didn't become readable, make a round-trip to
   the X server to check that the window still exists. Go back to step
   1 if it does, otherwise bail.

Also add an early bail-out when it's known that the window was
destroyed.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/116
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5368>
2020-06-29 17:05:52 +00:00
..
Android.mk
loader.c util: rename xmlpool.h to driconf.h 2020-06-22 21:50:12 +00:00
loader.h
loader_dri3_helper.c loader/dri3: Check for window destruction in dri3_wait_for_event_locked 2020-06-29 17:05:52 +00:00
loader_dri3_helper.h loader/dri3: Check for window destruction in dri3_wait_for_event_locked 2020-06-29 17:05:52 +00:00
Makefile.sources
meson.build driconf: drop now unused translation facility 2020-06-22 21:50:12 +00:00
pci_id_driver_map.c
pci_id_driver_map.h
SConscript