On 08/18/2013 09:34 AM, Paul Berry wrote:
We are getting close to the maximum number of BRW_NEW_* bits that can
be stored in brw->state.dirty.brw without overflowing 32 bits, and
geometry shaders are going to add more.  Add a STATIC_ASSERT so that
we will be alerted when we need to switch to 64 bits.

Good call.

Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>

---
  src/mesa/drivers/dri/i965/brw_context.c | 5 +++++
  src/mesa/drivers/dri/i965/brw_context.h | 1 +
  2 files changed, 6 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_context.c 
b/src/mesa/drivers/dri/i965/brw_context.c
index 11d438b..44a35d1 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -448,6 +448,11 @@ brwCreateContext(int api,
     brw->state.dirty.mesa = ~0;
     brw->state.dirty.brw = ~0;

+   /* Make sure that brw->state.dirty.brw has enough bits to hold all possible
+    * dirty flags.
+    */
+   STATIC_ASSERT(BRW_NUM_STATE_BITS <= 8 * sizeof(brw->state.dirty.brw));
+
     brw->emit_state_always = 0;

     brw->batch.need_workaround_flush = true;
diff --git a/src/mesa/drivers/dri/i965/brw_context.h 
b/src/mesa/drivers/dri/i965/brw_context.h
index 74e38f1..dbad507 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -155,6 +155,7 @@ enum brw_state_id {
     BRW_STATE_UNIFORM_BUFFER,
     BRW_STATE_META_IN_PROGRESS,
     BRW_STATE_INTERPOLATION_MAP,
+   BRW_NUM_STATE_BITS
  };

  #define BRW_NEW_URB_FENCE               (1 << BRW_STATE_URB_FENCE)


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to