diff --git a/src/mesa/drivers/dri/r300/radeon_context.c b/src/mesa/drivers/dri/r300/radeon_context.c index d66f1dc49e8..66d1b153b3c 100644 --- a/src/mesa/drivers/dri/r300/radeon_context.c +++ b/src/mesa/drivers/dri/r300/radeon_context.c @@ -273,15 +273,15 @@ GLboolean radeonMakeCurrent(__DRIcontextPrivate * driContextPriv, &radeon->vbl_seq); } - if (radeon->dri.drawable != driDrawPriv || - radeon->dri.readable != driReadPriv) { - radeon->dri.drawable = driDrawPriv; - radeon->dri.readable = driReadPriv; + radeon->dri.readable = driReadPriv; - r300UpdateWindow(radeon->glCtx); - r300UpdateViewportOffset(radeon->glCtx); + if (radeon->dri.drawable != driDrawPriv || + radeon->lastStamp != driDrawPriv->lastStamp) { + radeon->dri.drawable = driDrawPriv; radeonSetCliprects(radeon); + r300UpdateWindow(radeon->glCtx); + r300UpdateViewportOffset(radeon->glCtx); } _mesa_make_current(radeon->glCtx,