Basically something we thought was constant is getting clobbered on mode changes. This is a bit heavy handed, but does the trick.

It's neither of the two likely candidates in this packet of state. This change will just emit the whole packet on any 'lost_context' event.

Keith
Index: r200_state_init.c
===================================================================
RCS file: /cvsroot/dri/xc/xc/lib/GL/mesa/src/drv/r200/r200_state_init.c,v
retrieving revision 1.6
diff -u -r1.6 r200_state_init.c
--- r200_state_init.c   2 Dec 2002 10:44:18 -0000       1.6
+++ r200_state_init.c   20 Jan 2003 22:28:42 -0000
@@ -130,13 +129,6 @@
 }
 
 
-static GLboolean check_firsttime( GLcontext *ctx, int idx )    
-{
-   static int firsttime = 1;
-   int i = firsttime;
-   firsttime = 0;
-   return i;
-}
 
 CHECK( always, GL_TRUE )
 CHECK( tex_any, ctx->Texture._EnabledUnits )
@@ -247,7 +239,7 @@
    ALLOC_STATE( vap, always, VAP_STATE_SIZE, "VAP/vap", 0 );
    ALLOC_STATE( vte, always, VTE_STATE_SIZE, "VTE/vte", 0 );
    ALLOC_STATE( msc, always, MSC_STATE_SIZE, "MSC/misc", 0 );
-   ALLOC_STATE( cst, firsttime, CST_STATE_SIZE, "CST/constant", 0 );
+   ALLOC_STATE( cst, always, CST_STATE_SIZE, "CST/constant", 0 );
    ALLOC_STATE( zbs, always, ZBS_STATE_SIZE, "ZBS/zbias", 0 );
    ALLOC_STATE( tam, tex_any, TAM_STATE_SIZE, "TAM/tam", 0 );
    ALLOC_STATE( tf, tex_any, TF_STATE_SIZE, "TF/tfactor", 0 );


Reply via email to