-AUX 0001-dri2-Delete-invalidate-compatibility-code.patch 2180 RMD160 f9e1a3c18c6135947fa5d91937e8448945c8607f SHA1 f23f85256e1bd18c419d12e22c643afa8c43d0cd SHA256 84ca714cba01f06e38b7ebf9b36baea23ece112d530c92846cb34b37a7caabe2
+AUX 0001-dri2-Fix-compatibility-with-old-servers.patch 1687 RMD160 a21a48a34472f6a789dc00fe3384a45761e6227e SHA1 b4536cc537fa430be70d7ba89886a522aaeb7480 SHA256 a86d1dac083906c2f60f0dcd3a7ef8f71e11940398004154ee6487bea8d5d793
AUX 0001-i965-Fix-the-response-len-of-masked-sampler-messages.patch 2137 RMD160 08118ad35fec06fa5aeb7ca828cf763178158fb5 SHA1 40f5a8767d87244880544a26c6b1cdbd02edef22 SHA256 7a9ab83d98fced49ae2668b7e1f9a01a3a865246e0599bba61a4288af5e92773
DIST MesaLib-7.7.1.tar.bz2 4990250 RMD160 2f0dcc017aa97c364538a9fd29d5cdb247ab7880 SHA1 31500d7e3e3bbf9288b3bee4fbddd26a5e0b7782 SHA256 dc44f73e50d2ccdb96e7b72cc71e56024c198a228112c69c5e86dbc610fd4e84
DIST MesaLib-7.8.1.tar.bz2 5137426 RMD160 b7b989342dc80a2a12456c17882e652db7bd86cd SHA1 1c15c62f845ef9b648366aa804410f68f7f79172 SHA256 b0b46e5abfd75db44501e308125fa92bcf1c91d91e97a043a3b1764cfa0907fa
EBUILD mesa-7.7.1.ebuild 6042 RMD160 1a975d055edfae21b0deb19a06a09c1fbc3f4299 SHA1 b6c204b0d760184d9028fe3adc6d86e91d71ed48 SHA256 84deea5a48d4c11981523fe8d2e63defc33b1cfe6ee81d5b447074d4797fc0ca
-EBUILD mesa-7.8.1.ebuild 6023 RMD160 a9b90f7d560e86ce4e962612eb1df687d22f0a41 SHA1 223295dfb743695d342738c3f64964884d7653f6 SHA256 757be823ba399dab165aea8316b359adee6e15cb16073f70b6fd1aa90813f8c0
+EBUILD mesa-7.8.1.ebuild 6021 RMD160 a115f83bc0c8fb79bc42fab59f0e587cf6385cf2 SHA1 cbc0ddb35ed91d6a950137ce745494e42713e507 SHA256 b15ca5d657f870d7bcb8849c572a5968ca5bf0a3850265474ce47493c5e23903
+++ /dev/null
-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
-
--- /dev/null
+From c8327cc115997275f701993a7edbcbf42b08912b Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Fri, 30 Apr 2010 18:14:20 -0400
+Subject: [PATCH v3] dri2: Fix compatibility with old servers.
+
+Commit 61d26bc82e7c4100a ("dri2: Event driven buffer validation.")
+introduced code to handle "old" servers which do not support invalidate
+events (i.e. 1.8.0). However, the compatibility code causes severe
+stuttering on my GM45 with "older" servers that do not support swap
+events (i.e. 1.7.6). It seems that the solution is to only run the
+compatibility code when swap events are supported.
+
+Fixes fdo bug #27277.
+
+Signed-off-by: Nick Bowler <nbowler@draconx.ca>
+---
+ src/glx/dri2_glx.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
+index 6058c72..5516324 100644
+--- a/src/glx/dri2_glx.c
++++ b/src/glx/dri2_glx.c
+@@ -364,7 +364,7 @@ dri2FlushFrontBuffer(__DRIdrawable *driDrawable, void *loaderPrivate)
+ __GLXDRIdisplayPrivate *pdp = (__GLXDRIdisplayPrivate *)priv->dri2Display;
+
+ /* Old servers don't send invalidate events */
+- if (!pdp->invalidateAvailable)
++ if (pdp->swapAvailable && !pdp->invalidateAvailable)
+ dri2InvalidateBuffers(priv->dpy, pdraw->base.drawable);
+
+ dri2WaitGL(loaderPrivate);
+@@ -428,7 +428,7 @@ dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
+ #endif
+
+ /* Old servers don't send invalidate events */
+- if (!pdp->invalidateAvailable)
++ if (pdp->swapAvailable && !pdp->invalidateAvailable)
+ dri2InvalidateBuffers(dpyPriv->dpy, pdraw->drawable);
+
+ /* Old servers can't handle swapbuffers */
+--
+1.6.4.4
+
[[ ${CHOST} == *-freebsd6.* ]] && \
sed -i -e "s/-DHAVE_POSIX_MEMALIGN//" configure.ac
- epatch "${FILESDIR}/0001-dri2-Delete-invalidate-compatibility-code.patch"
+ epatch "${FILESDIR}/0001-dri2-Fix-compatibility-with-old-servers.patch"
eautoreconf
}