From ab780bccb737e0dc25a55b5e54faad9c4a790ac0 Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Fri, 21 May 2010 11:51:33 -0400 Subject: 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. --- src/glx/dri2_glx.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index ba546a6bc1..d4747388e3 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, -- cgit v1.2.3