summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/dri/dri_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/dri/dri_context.c')
-rw-r--r--src/gallium/state_trackers/dri/dri_context.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/gallium/state_trackers/dri/dri_context.c b/src/gallium/state_trackers/dri/dri_context.c
index 54d2a56..45eaec4 100644
--- a/src/gallium/state_trackers/dri/dri_context.c
+++ b/src/gallium/state_trackers/dri/dri_context.c
@@ -158,9 +158,14 @@ dri_make_current(__DRIcontextPrivate * cPriv,
*/
screen->dummyContext = ctx;
- /* used in dri_flush_frontbuffer */
- ctx->dPriv = driDrawPriv;
- ctx->rPriv = driReadPriv;
+ if (ctx->dPriv != driDrawPriv) {
+ ctx->dPriv = driDrawPriv;
+ ctx->d_stamp = driDrawPriv->lastStamp - 1;
+ }
+ if (ctx->rPriv != driReadPriv) {
+ ctx->rPriv = driReadPriv;
+ ctx->r_stamp = driReadPriv->lastStamp - 1;
+ }
st_make_current(ctx->st, draw->stfb, read->stfb);