dri3: For 1.2, use root window instead of pixmap drawable
authorOlivier Fourdan <ofourdan@redhat.com>
Thu, 26 Jul 2018 07:46:39 +0000 (09:46 +0200)
committerAdam Jackson <ajax@redhat.com>
Tue, 31 Jul 2018 17:51:59 +0000 (13:51 -0400)
commit03a61b977e1f6adb64658aa059ce53e766ff9ad9
treee17afbcae9b40ec4ba9f1bbedd933af23b326a05
parent16b5e15e918a1b3a466aff23209c94ae9b78149b
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 <ofourdan@redhat.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/loader/loader_dri3_helper.c
src/loader/loader_dri3_helper.h