]> git.draconx.ca Git - gentoo-draconx.git/blobdiff - media-libs/mesa/files/0001-dri2-Delete-invalidate-compatibility-code.patch
mesa: Add version 7.8.1 with invalidate compat removal.
[gentoo-draconx.git] / media-libs / mesa / files / 0001-dri2-Delete-invalidate-compatibility-code.patch
diff --git a/media-libs/mesa/files/0001-dri2-Delete-invalidate-compatibility-code.patch b/media-libs/mesa/files/0001-dri2-Delete-invalidate-compatibility-code.patch
new file mode 100644 (file)
index 0000000..f185a92
--- /dev/null
@@ -0,0 +1,64 @@
+From 792e1d05c04a65d8cdabde131e28c5fbb700a609 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Tue, 6 Apr 2010 18:05:25 -0400
+Subject: [PATCH] dri2: Delete invalidate compatibility code.
+
+Commit 61d26bc82e7c4100a ("dri2: Event driven buffer validation.")
+introduced severe stuttering on my GM45 when using X server 1.7.
+This appears to have been caused by the compatibility code added
+to handle the case where the server does not emit invalidate events.
+
+Removing the code entirely solves the issue.
+
+Fixes fdo bug #27277.
+
+Signed-off-by: Nick Bowler <nbowler@draconx.ca>
+---
+ src/glx/dri2_glx.c |   10 ----------
+ 1 files changed, 0 insertions(+), 10 deletions(-)
+
+diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
+index c4b5cb9..582e4a4 100644
+--- a/src/glx/dri2_glx.c
++++ b/src/glx/dri2_glx.c
+@@ -67,7 +67,6 @@ struct __GLXDRIdisplayPrivateRec
+    int driMinor;
+    int driPatch;
+    int swapAvailable;
+-   int invalidateAvailable;
+ };
+ struct __GLXDRIcontextPrivateRec
+@@ -327,10 +326,6 @@ dri2FlushFrontBuffer(__DRIdrawable *driDrawable, void *loaderPrivate)
+    __GLXdisplayPrivate *priv = __glXInitialize(pdraw->base.psc->dpy);
+    __GLXDRIdisplayPrivate *pdp = (__GLXDRIdisplayPrivate *)priv->dri2Display;
+-   /* Old servers don't send invalidate events */
+-   if (!pdp->invalidateAvailable)
+-       dri2InvalidateBuffers(priv->dpy, pdraw->base.drawable);
+-
+    dri2WaitGL(loaderPrivate);
+ }
+@@ -391,10 +386,6 @@ dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
+       (*pdraw->psc->f->flush)(pdraw->driDrawable);
+ #endif
+-    /* Old servers don't send invalidate events */
+-    if (!pdp->invalidateAvailable)
+-       dri2InvalidateBuffers(dpyPriv->dpy, pdraw->drawable);
+-
+     /* Old servers can't handle swapbuffers */
+     if (!pdp->swapAvailable) {
+        dri2CopySubBuffer(pdraw, 0, 0, priv->width, priv->height);
+@@ -682,7 +673,6 @@ dri2CreateDisplay(Display * dpy)
+    pdp->driPatch = 0;
+    pdp->swapAvailable = (pdp->driMinor >= 2);
+-   pdp->invalidateAvailable = (pdp->driMinor >= 3);
+    pdp->base.destroyDisplay = dri2DestroyDisplay;
+    pdp->base.createScreen = dri2CreateScreen;
+-- 
+1.6.4.4
+