summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-12-10 23:11:48 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-12-10 23:16:42 +0000
commit162e9a2bfc693db186aa481551cf76b3dc5ee55c (patch)
tree1ca58ba0e3b7db46cf074ae4a4efde6a20b2545b
parent0c2287c735f990a98b39d00f28168d7a5df25aba (diff)
downloadxf86-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.c6
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));