summaryrefslogtreecommitdiff
path: root/src/glx/x11
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2009-06-22 16:33:29 -0700
committerEric Anholt <eric@anholt.net>2009-06-23 19:31:12 -0700
commit5ca800e1006555ea1c5dcbbc56c35838c9f04994 (patch)
tree5249705f8fc5ed1b62ea5969be49d9cb8ca4c56b /src/glx/x11
parent9c0ba017c8ff7caafc3ff94da3c035e687231596 (diff)
dri2: Refresh the fake front contents after glXSwapBuffers().
Bug #19177. Reviewed by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glx/x11')
-rw-r--r--src/glx/x11/dri2_glx.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/glx/x11/dri2_glx.c b/src/glx/x11/dri2_glx.c
index fb31898db2d..f4865aecb1c 100644
--- a/src/glx/x11/dri2_glx.c
+++ b/src/glx/x11/dri2_glx.c
@@ -80,6 +80,8 @@ struct __GLXDRIdrawablePrivateRec {
int have_fake_front;
};
+static void dri2WaitX(__GLXDRIdrawable *pdraw);
+
static void dri2DestroyContext(__GLXDRIcontext *context,
__GLXscreenConfigs *psc, Display *dpy)
{
@@ -215,6 +217,11 @@ static void dri2CopySubBuffer(__GLXDRIdrawable *pdraw,
DRI2CopyRegion(pdraw->psc->dpy, pdraw->drawable, region,
DRI2BufferFrontLeft, DRI2BufferBackLeft);
XFixesDestroyRegion(pdraw->psc->dpy, region);
+
+ /* Refresh the fake front (if present) after we just damaged the real
+ * front.
+ */
+ dri2WaitX(pdraw);
}
static void dri2SwapBuffers(__GLXDRIdrawable *pdraw)