summaryrefslogtreecommitdiff
path: root/src/glx/dri3_glx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/glx/dri3_glx.c')
-rw-r--r--src/glx/dri3_glx.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c
index d07968e3c5e..63474d0dca2 100644
--- a/src/glx/dri3_glx.c
+++ b/src/glx/dri3_glx.c
@@ -235,6 +235,11 @@ dri3_bind_context(struct glx_context *context, struct glx_context *old,
if (!(*psc->core->bindContext) (pcp->driContext, dri_draw, dri_read))
return GLXBadContext;
+ if (dri_draw)
+ (*psc->f->invalidate)(dri_draw);
+ if (dri_read && dri_read != dri_draw)
+ (*psc->f->invalidate)(dri_read);
+
return Success;
}
@@ -493,6 +498,7 @@ dri3_flush_front_buffer(__DRIdrawable *driDrawable, void *loaderPrivate)
loader_dri3_flush(draw, __DRI2_FLUSH_DRAWABLE, __DRI2_THROTTLE_FLUSHFRONT);
+ (*psc->f->invalidate)(driDrawable);
loader_dri3_wait_gl(draw);
}