[Mesa-dev] [PATCH 1/3] loader/dri3: Destroy Present event context when destroying drawable
Michel Dänzer
michel at daenzer.net
Thu Jul 28 09:34:44 UTC 2016
From: Michel Dänzer <michel.daenzer at amd.com>
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.
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
src/loader/loader_dri3_helper.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
index 896f225..7f08846 100644
--- a/src/loader/loader_dri3_helper.c
+++ b/src/loader/loader_dri3_helper.c
@@ -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(draw->conn, draw->eid, draw->drawable,
+ XCB_PRESENT_EVENT_MASK_NO_EVENT);
+
+ free(xcb_request_check(draw->conn, cookie));
xcb_unregister_for_special_event(draw->conn, draw->special_event);
+ }
}
int
--
2.8.1
More information about the mesa-dev
mailing list