diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-12-10 23:11:48 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-12-10 23:16:42 +0000 |
commit | 162e9a2bfc693db186aa481551cf76b3dc5ee55c (patch) | |
tree | 1ca58ba0e3b7db46cf074ae4a4efde6a20b2545b | |
parent | 0c2287c735f990a98b39d00f28168d7a5df25aba (diff) | |
download | xf86-video-intel-162e9a2bfc693db186aa481551cf76b3dc5ee55c.tar.gz xf86-video-intel-162e9a2bfc693db186aa481551cf76b3dc5ee55c.tar.bz2 xf86-video-intel-162e9a2bfc693db186aa481551cf76b3dc5ee55c.zip |
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>
-rw-r--r-- | src/sna/sna_dri.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c index 2ff138f9b..83a00dd9e 100644 --- a/src/sna/sna_dri.c +++ b/src/sna/sna_dri.c @@ -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)); |