sna/dri: Disable name exchanges for SwapBuffers

The DRI2 protocol is inherently racy. Fortuituously, this can be swept
under the carpet by forcing the serialisation between the DRI2 clients
by using a blit for the SwapBuffers.

References: https://bugs.freedesktop.org/show_bug.cgi?id=58005
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2012-12-10 23:11:48 +00:00
parent 0c2287c735
commit 162e9a2bfc
1 changed files with 6 additions and 0 deletions

View File

@ -1164,6 +1164,12 @@ can_exchange(struct sna * sna,
WindowPtr win = (WindowPtr)draw;
PixmapPtr pixmap;
/* XXX There is an inherent race between the DRI2 client and the DRI2
* compositor which is only masked if we force a blit and serialise
* the operations through the kernel command queue. Hopeless.
*/
return false;
if (front->format != back->format) {
DBG(("%s: no, format mismatch, front = %d, back = %d\n",
__FUNCTION__, front->format, back->format));