gallium/xlib: Fix xmesa drawable creation
authorAdam Jackson <ajax@redhat.com>
Thu, 10 Oct 2019 18:05:10 +0000 (14:05 -0400)
committerAdam Jackson <ajax@nwnk.net>
Tue, 15 Oct 2019 17:24:41 +0000 (17:24 +0000)
commit3f840e5ccdaa14981974bfb475d2d1aa4da47e5e
tree1138c3edf0a44efc775a2c7a3c9f3b0b5462e4c8
parent3bcd54f3fc2051dfb49d8c6afeb1f18f7cd9c0b7
gallium/xlib: Fix xmesa drawable creation

The first time you call glXMakeCurrent, current != ctx. As a result we
would never look up whether the drawable already had an XMesaDrawable,
and would instead always create one. Then XMesaBufferList would have two
different buffers for the same XID, and you'd be reading and drawing to
different places, and that's not what you want at all.

Instead just always look up the drawable.

Fixes: db8be355 (gallium/xlib: Remove drawable caching from the MakeCurrent path)
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1196
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
src/gallium/state_trackers/glx/xlib/glx_api.c