OSDN Git Service

r300-gallium: Emit invariant state, no matter what.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Tue, 17 Mar 2009 20:10:41 +0000 (13:10 -0700)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Tue, 17 Mar 2009 20:14:03 +0000 (13:14 -0700)
It's called "invariant" for a reason. :3

src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_flush.c
src/gallium/drivers/r300/r300_surface.c

index df7f85b..5797de7 100644 (file)
@@ -138,6 +138,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen,
 
     r300_init_state_functions(r300);
 
+    r300_emit_invariant_state(r300);
     r300->dirty_state = R300_NEW_KITCHEN_SINK;
     r300->dirty_hw++;
 
index 3766f0a..20ca690 100644 (file)
@@ -31,6 +31,7 @@ static void r300_flush(struct pipe_context* pipe,
 
     if (r300->dirty_hw) {
         FLUSH_CS;
+        r300_emit_invariant_state(r300);
         r300->dirty_state = R300_NEW_KITCHEN_SINK;
         r300->dirty_hw = 0;
     }
index db7cc02..f825fad 100644 (file)
@@ -53,8 +53,6 @@ static void r300_surface_fill(struct pipe_context* pipe,
         return;
     }
 
-    r300_emit_invariant_state(r300);
-
     r300_emit_blend_state(r300, &blend_clear_state);
     r300_emit_blend_color_state(r300, &blend_color_clear_state);
     r300_emit_dsa_state(r300, &dsa_clear_state);