[Mesa-dev] [PATCH] i965: STATIC_ASSERT that there aren't too many BRW_NEW_* flags.

Ian Romanick idr at freedesktop.org
Sun Aug 18 09:58:29 PDT 2013


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.romanick at 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)
>



More information about the mesa-dev mailing list