summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/dri
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom-at-vmware-dot-com>2009-04-28 14:43:41 +0200
committerThomas Hellstrom <thellstrom-at-vmware-dot-com>2009-04-28 14:45:30 +0200
commit2c994ad3cb91288966bdc028b0afa9935a51a971 (patch)
treee5daf16d9e95898b31e21b15fa307331856269d7 /src/gallium/state_trackers/dri
parent8cfa6546c9aa25edad3e7bc3cf6f1a9399052b79 (diff)
gallium dri st: Propagate the drawable info when we bind to new drawables.
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
Diffstat (limited to 'src/gallium/state_trackers/dri')
-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 54d2a563565..45eaec4ed39 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);