For the series: Reviewed-by: Chris Forbes <chr...@ijw.co.nz>
On Sat, Sep 27, 2014 at 11:09 AM, Kenneth Graunke <kenn...@whitecape.org> wrote: > This will keep INTEL_DEBUG=state working when we add BRW_NEW_* bits > beyond 1 << 31. We missed doing this when widening the driver flags > from uint32_t to uint64_t. > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/brw_state_upload.c | 23 +++++++---------------- > 1 file changed, 7 insertions(+), 16 deletions(-) > > NAK on "i965: Update dirty_bit_map::bit to be a uint64_t." > It wasn't sufficient to keep this working. I've now actually created > bits 32 and 33, and verified that they are counted and printed correctly. > > diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c > b/src/mesa/drivers/dri/i965/brw_state_upload.c > index f4b0475..e124ce4 100644 > --- a/src/mesa/drivers/dri/i965/brw_state_upload.c > +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c > @@ -438,7 +438,7 @@ static void xor_states( struct brw_state_flags *result, > } > > struct dirty_bit_map { > - uint32_t bit; > + uint64_t bit; > char *name; > uint32_t count; > }; > @@ -475,7 +475,8 @@ static struct dirty_bit_map mesa_bits[] = { > DEFINE_BIT(_NEW_PROGRAM_CONSTANTS), > DEFINE_BIT(_NEW_BUFFER_OBJECT), > DEFINE_BIT(_NEW_FRAG_CLAMP), > - DEFINE_BIT(_NEW_VARYING_VP_INPUTS), > + /* Avoid sign extension problems. */ > + {(unsigned) _NEW_VARYING_VP_INPUTS, "_NEW_VARYING_VP_INPUTS", 0}, > {0, 0, 0} > }; > > @@ -538,14 +539,9 @@ static struct dirty_bit_map cache_bits[] = { > > > static void > -brw_update_dirty_count(struct dirty_bit_map *bit_map, int32_t bits) > +brw_update_dirty_count(struct dirty_bit_map *bit_map, uint64_t bits) > { > - int i; > - > - for (i = 0; i < 32; i++) { > - if (bit_map[i].bit == 0) > - return; > - > + for (int i = 0; bit_map[i].bit != 0; i++) { > if (bit_map[i].bit & bits) > bit_map[i].count++; > } > @@ -554,13 +550,8 @@ brw_update_dirty_count(struct dirty_bit_map *bit_map, > int32_t bits) > static void > brw_print_dirty_count(struct dirty_bit_map *bit_map) > { > - int i; > - > - for (i = 0; i < 32; i++) { > - if (bit_map[i].bit == 0) > - return; > - > - fprintf(stderr, "0x%08x: %12d (%s)\n", > + for (int i = 0; bit_map[i].bit != 0; i++) { > + fprintf(stderr, "0x%016lx: %12d (%s)\n", > bit_map[i].bit, bit_map[i].count, bit_map[i].name); > } > } > -- > 2.1.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev