OSDN Git Service

i965: Micro-optimise check_state
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 20 Feb 2011 15:36:52 +0000 (15:36 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 21 Feb 2011 12:59:37 +0000 (12:59 +0000)
Replace the intermediate tests due to the logical or with the bitwise
or.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
src/mesa/drivers/dri/i965/brw_state_upload.c

index 8bb92fe..2d6fb37 100644 (file)
@@ -181,11 +181,11 @@ void brw_destroy_state( struct brw_context *brw )
 /***********************************************************************
  */
 
-static GLboolean check_state( const struct brw_state_flags *a,
-                             const struct brw_state_flags *b )
+static GLuint check_state( const struct brw_state_flags *a,
+                          const struct brw_state_flags *b )
 {
-   return ((a->mesa & b->mesa) ||
-          (a->brw & b->brw) ||
+   return ((a->mesa & b->mesa) |
+          (a->brw & b->brw) |
           (a->cache & b->cache));
 }
 
@@ -377,9 +377,7 @@ void brw_validate_state( struct brw_context *brw )
       brw->state.dirty.brw |= BRW_NEW_VERTEX_PROGRAM;
    }
 
-   if (state->mesa == 0 &&
-       state->cache == 0 &&
-       state->brw == 0)
+   if ((state->mesa | state->cache | state->brw) == 0)
       return;
 
    brw->intel.Fallback = GL_FALSE; /* boolean, not bitfield */