mesa: Branch 'master'

Michel Daenzer daenzer at kemper.freedesktop.org
Fri Mar 9 13:45:45 UTC 2007


 src/mesa/drivers/dri/r300/radeon_context.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

New commits:
diff-tree 4d9901a1cab8e0d55b1b2309cf3ffec235e53149 (from d85667950f6797f63fa0863e6882390c2adaaf2b)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Fri Mar 9 09:43:17 2007 +0100

    r300: Also update window state when it's already bound but its stamp changed.
    
    And set new cliprects before deriving other state from them. This ensures
    cliprects aren't accessed after having been freed.
    
    Thanks to Panagiotis Papadakos for testing various iterations of this.

diff --git a/src/mesa/drivers/dri/r300/radeon_context.c b/src/mesa/drivers/dri/r300/radeon_context.c
index d66f1dc..66d1b15 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(__DRIcontext
 					      &radeon->vbl_seq);
 		}
 
+		radeon->dri.readable = driReadPriv;
+
 		if (radeon->dri.drawable != driDrawPriv ||
-		    radeon->dri.readable != driReadPriv) {
+		    radeon->lastStamp != driDrawPriv->lastStamp) {
 			radeon->dri.drawable = driDrawPriv;
-			radeon->dri.readable = driReadPriv;
 
+			radeonSetCliprects(radeon);
 			r300UpdateWindow(radeon->glCtx);
 			r300UpdateViewportOffset(radeon->glCtx);
-
-			radeonSetCliprects(radeon);
 		}
 
 		_mesa_make_current(radeon->glCtx,



More information about the mesa-commit mailing list