summaryrefslogtreecommitdiffstats
path: root/src/glx
diff options
context:
space:
mode:
authorKristian Høgsberg <[email protected]>2010-05-21 11:51:33 -0400
committerKristian Høgsberg <[email protected]>2010-05-21 23:24:37 -0400
commitab780bccb737e0dc25a55b5e54faad9c4a790ac0 (patch)
tree5b11a2d40190aedb80655c364f48721951d3a414 /src/glx
parent643b2af0203764cb9f0a5b9e082937ab3f243523 (diff)
glx: Invalidate drawable in glXBindTexImageEXT() if we don't get events
When we don't get invalidate events, we need to invalidate a drawable before using it for tfp to make sure we have uptodate buffers.
Diffstat (limited to 'src/glx')
-rw-r--r--src/glx/dri2_glx.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index ba546a6bc1c..d4747388e30 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -570,8 +570,17 @@ dri2_bind_tex_image(Display * dpy,
{
GLXContext gc = __glXGetCurrentContext();
__GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL);
+ __GLXdisplayPrivate *dpyPriv = __glXInitialize(dpy);
+ __GLXDRIdisplayPrivate *pdp =
+ (__GLXDRIdisplayPrivate *) dpyPriv->dri2Display;
if (pdraw != NULL) {
+
+#if __DRI2_FLUSH_VERSION >= 3
+ if (!pdp->invalidateAvailable && pdraw->psc->f)
+ pdraw->psc->f->invalidate(pdraw->driDrawable);
+#endif
+
if (pdraw->psc->texBuffer->base.version >= 2 &&
pdraw->psc->texBuffer->setTexBuffer2 != NULL) {
(*pdraw->psc->texBuffer->setTexBuffer2) (gc->__driContext,