From 5105f9a7ae66001537e8dbf6acf40faf736430e5 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 26 Sep 2014 10:29:25 -0700 Subject: [PATCH] i965: Fix INTEL_DEBUG=state to work with 64-bit dirty bits. 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 Reviewed-by: Matt Turner Reviewed-by: Ian Romanick Reviewed-by: Chris Forbes --- src/mesa/drivers/dri/i965/brw_state_upload.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) 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.7.4