From: Thomas Hellstrom Date: Wed, 18 Mar 2009 11:28:31 +0000 (+0100) Subject: stw: Fix makeCurrent. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=caf99be99976166f92d90203966a2dd42634e2af;p=mesa.git stw: Fix makeCurrent. Flush if we change current context. Signed-off-by: Thomas Hellstrom --- diff --git a/src/gallium/state_trackers/wgl/shared/stw_context.c b/src/gallium/state_trackers/wgl/shared/stw_context.c index 708acad1939..d77daac39cd 100644 --- a/src/gallium/state_trackers/wgl/shared/stw_context.c +++ b/src/gallium/state_trackers/wgl/shared/stw_context.c @@ -283,6 +283,7 @@ stw_make_current( struct stw_framebuffer *fb; GLuint width = 0; GLuint height = 0; + struct stw_context *curctx; if (!stw_dev) return FALSE; @@ -297,6 +298,13 @@ stw_make_current( current_hdc = hdc; current_hglrc = hglrc; + if (glcurctx != NULL) { + curctx = (struct stw_context *) glcurctx->DriverCtx; + + if (curctx != ctx) + st_flush(glcurctx->st, PIPE_FLUSH_RENDER_CACHE, NULL); + } + if (hdc == NULL || hglrc == 0) { st_make_current( NULL, NULL, NULL ); return TRUE; @@ -305,8 +313,6 @@ stw_make_current( /* Return if already current. */ if (glcurctx != NULL) { - struct stw_context *curctx = (struct stw_context *) glcurctx->DriverCtx; - if (curctx != NULL && curctx == ctx && ctx->hdc == hdc) return TRUE; }