diff options
author | Olivier Fourdan <[email protected]> | 2018-07-26 09:46:39 +0200 |
---|---|---|
committer | Adam Jackson <[email protected]> | 2018-07-31 13:51:59 -0400 |
commit | 03a61b977e1f6adb64658aa059ce53e766ff9ad9 (patch) | |
tree | e17afbcae9b40ec4ba9f1bbedd933af23b326a05 /src/loader/loader_dri3_helper.h | |
parent | 16b5e15e918a1b3a466aff23209c94ae9b78149b (diff) |
dri3: For 1.2, use root window instead of pixmap drawable
get_supported_modifiers() and pixmap_from_buffers() requests both
expect a window as drawable, passing a pixmap will fail as the Xserver
will fail to match the given drawable to a window.
That leads to dri3_alloc_render_buffer() to return NULL and breaks
rendering when using GLX_DOUBLEBUFFER on pixmaps.
Query the root window of the pixmap on first init, and use the root
window instead of the pixmap drawable for get_supported_modifiers()
and pixmap_from_buffers().
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107117
Fixes: 069fdd5 ("egl/x11: Support DRI3 v1.1")
Signed-off-by: Olivier Fourdan <[email protected]>
Reviewed-by: Daniel Stone <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/loader/loader_dri3_helper.h')
-rw-r--r-- | src/loader/loader_dri3_helper.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/loader/loader_dri3_helper.h b/src/loader/loader_dri3_helper.h index 7e3d82947bc..51d000343d7 100644 --- a/src/loader/loader_dri3_helper.h +++ b/src/loader/loader_dri3_helper.h @@ -114,6 +114,7 @@ struct loader_dri3_drawable { xcb_connection_t *conn; __DRIdrawable *dri_drawable; xcb_drawable_t drawable; + xcb_window_t window; int width; int height; int depth; |