i915g: Don't dirty dynamic state if it hasn't changed
authorJakob Bornecrantz <wallbraker@gmail.com>
Sat, 3 Jul 2010 11:47:49 +0000 (12:47 +0100)
committerJakob Bornecrantz <wallbraker@gmail.com>
Sun, 4 Jul 2010 12:32:01 +0000 (13:32 +0100)
src/gallium/drivers/i915/i915_state_dynamic.c

index d964483..d61a8c3 100644 (file)
@@ -30,7 +30,7 @@
 #include "i915_context.h"
 #include "i915_reg.h"
 #include "i915_state.h"
-#include "util/u_math.h"
+
 #include "util/u_memory.h"
 #include "util/u_pack_color.h"
 
@@ -53,6 +53,9 @@ static INLINE void set_dynamic_indirect(struct i915_context *i915,
 {
    unsigned i;
 
+   if (!memcmp(src, &i915->current.dynamic[offset], dwords * 4))
+      return;
+
    for (i = 0; i < dwords; i++)
       i915->current.dynamic[offset + i] = src[i];