Mesa (master): r300-gallium: Ensure that no dirty state goes unemitted.

Corbin Simpson csimpson at kemper.freedesktop.org
Sat Jun 27 04:33:19 UTC 2009


Module: Mesa
Branch: master
Commit: f80b7f46835f42065d2489f2e1f501187ee026b6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f80b7f46835f42065d2489f2e1f501187ee026b6

Author: Corbin Simpson <MostAwesomeDude at gmail.com>
Date:   Mon Jun  8 23:52:43 2009 -0700

r300-gallium: Ensure that no dirty state goes unemitted.

---

 src/gallium/drivers/r300/r300_emit.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c
index 1d297e8..1cf6ec2 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -597,10 +597,10 @@ validate:
         for (i = 0; i < r300->sampler_count; i++) {
             if (r300->dirty_state & (R300_NEW_SAMPLER << i)) {
                 r300_emit_sampler(r300, r300->sampler_states[i], i);
-                r300->dirty_state &= ~(R300_NEW_SAMPLER << i);
                 dirty_tex++;
             }
         }
+        r300->dirty_state &= ~R300_ANY_NEW_SAMPLERS;
     }
 
     if (r300->dirty_state & R300_NEW_SCISSOR) {
@@ -612,10 +612,10 @@ validate:
         for (i = 0; i < r300->texture_count; i++) {
             if (r300->dirty_state & (R300_NEW_TEXTURE << i)) {
                 r300_emit_texture(r300, r300->textures[i], i);
-                r300->dirty_state &= ~(R300_NEW_TEXTURE << i);
                 dirty_tex++;
             }
         }
+        r300->dirty_state &= ~R300_ANY_NEW_TEXTURES;
     }
 
     if (r300->dirty_state & R300_NEW_VIEWPORT) {
@@ -637,6 +637,8 @@ validate:
         r300->dirty_state &= ~R300_NEW_VERTEX_SHADER;
     }
 
+    assert(r300->dirty_state == 0);
+
     /* Finally, emit the VBO. */
     r300_emit_vertex_buffer(r300);
 




More information about the mesa-commit mailing list