mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
loader/dri3: Destroy Present event context when destroying drawable v2
Without this, the X server may accumulate stale Present event contexts if a client ends up creating and destroying DRI drawables for the same window. v2: Based on Chris Wilson's review: * Use xcb_present_select_input_checked so that protocol errors generated by old X servers can be handled gracefully * Use xcb_discard_reply() instead of free(xcb_request_check())
This commit is contained in:
parent
1743c4184b
commit
5d191bafa2
1 changed files with 7 additions and 1 deletions
|
|
@ -118,8 +118,14 @@ loader_dri3_drawable_fini(struct loader_dri3_drawable *draw)
|
|||
dri3_free_render_buffer(draw, draw->buffers[i]);
|
||||
}
|
||||
|
||||
if (draw->special_event)
|
||||
if (draw->special_event) {
|
||||
xcb_void_cookie_t cookie =
|
||||
xcb_present_select_input_checked(draw->conn, draw->eid, draw->drawable,
|
||||
XCB_PRESENT_EVENT_MASK_NO_EVENT);
|
||||
|
||||
xcb_discard_reply(draw->conn, cookie.sequence);
|
||||
xcb_unregister_for_special_event(draw->conn, draw->special_event);
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue