r300g: Use a dirty test to bring framerate back up.
authorCorbin Simpson <MostAwesomeDude@gmail.com>
Sun, 18 Oct 2009 03:47:45 +0000 (20:47 -0700)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Sun, 18 Oct 2009 03:47:45 +0000 (20:47 -0700)
This is just split out from the next commit, that's all.

src/gallium/drivers/r300/r300_state_derived.c

index da8c366f304b7b5569d23fcdad4c3a69f5f9fa62..c59d446e931199f43c08cd3bc8946dd13d04573f 100644 (file)
@@ -447,7 +447,7 @@ static void r300_update_rs_block(struct r300_context* r300,
 }
 
 /* Update the vertex format. */
-static void r300_update_vertex_format(struct r300_context* r300)
+static void r300_update_derived_shader_state(struct r300_context* r300)
 {
     struct r300_shader_key* key;
     struct r300_vertex_format* vformat;
@@ -526,7 +526,10 @@ static void r300_update_ztop(struct r300_context* r300)
 
 void r300_update_derived_state(struct r300_context* r300)
 {
-    r300_update_vertex_format(r300);
+    if (r300->dirty_state &
+        (R300_NEW_FRAGMENT_SHADER | R300_NEW_VERTEX_SHADER)) {
+        r300_update_derived_shader_state(r300);
+    }
 
     if (r300->dirty_state &
             (R300_NEW_DSA | R300_NEW_FRAGMENT_SHADER | R300_NEW_QUERY)) {