From: Kristian Høgsberg Date: Fri, 21 May 2010 15:51:33 +0000 (-0400) Subject: glx: Invalidate drawable in glXBindTexImageEXT() if we don't get events X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ab780bccb737e0dc25a55b5e54faad9c4a790ac0;p=mesa.git 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. --- 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,