Mesa (master): r300g: Two dirty state optimizations.

Corbin Simpson csimpson at kemper.freedesktop.org
Wed Jan 13 09:46:23 UTC 2010


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

Author: Corbin Simpson <MostAwesomeDude at gmail.com>
Date:   Wed Jan 13 01:07:49 2010 -0800

r300g: Two dirty state optimizations.

---

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

diff --git a/src/gallium/drivers/r300/r300_emit.c b/src/gallium/drivers/r300/r300_emit.c
index f1acdfc..ba04bd0 100644
--- a/src/gallium/drivers/r300/r300_emit.c
+++ b/src/gallium/drivers/r300/r300_emit.c
@@ -1003,10 +1003,6 @@ void r300_emit_dirty_state(struct r300_context* r300)
         r300->context.flush(&r300->context, 0, NULL);
     }
 
-    if (!(r300->dirty_state)) {
-        return;
-    }
-
     /* Clean out BOs. */
     r300->winsys->reset_bos(r300->winsys);
 
@@ -1043,10 +1039,12 @@ validate:
         }
     }
     /* ...occlusion query buffer... */
-    if (!r300->winsys->add_buffer(r300->winsys, r300->oqbo,
-                0, RADEON_GEM_DOMAIN_GTT)) {
-        r300->context.flush(&r300->context, 0, NULL);
-        goto validate;
+    if (r300->dirty_state & R300_NEW_QUERY) {
+        if (!r300->winsys->add_buffer(r300->winsys, r300->oqbo,
+                    0, RADEON_GEM_DOMAIN_GTT)) {
+            r300->context.flush(&r300->context, 0, NULL);
+            goto validate;
+        }
     }
     /* ...and vertex buffer. */
     if (r300->vbo) {




More information about the mesa-commit mailing list