X-Git-Url: http://git.draconx.ca/gitweb/gentoo-draconx.git/blobdiff_plain/73d50c5364837c05b6aa553c462d6a11a806a7a4..c36ba22b1e80982ba2d89ac9ef68c383f0ae1968:/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 index 0000000..f185a92 --- /dev/null +++ b/media-libs/mesa/files/0001-dri2-Delete-invalidate-compatibility-code.patch @@ -0,0 +1,64 @@ +From 792e1d05c04a65d8cdabde131e28c5fbb700a609 Mon Sep 17 00:00:00 2001 +From: Nick Bowler +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 +--- + 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 +