[Mesa-dev] [PATCH v2 3/6] radeonsi: only initialize dirty_mask when CE is used

Samuel Pitoiset samuel.pitoiset at gmail.com
Wed Jul 26 14:21:53 UTC 2017


Looks like it's useless to initialize that field when CE is
unused. This will also allow to declare more than 64 elements
for the array of bindless descriptors.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
 src/gallium/drivers/radeonsi/si_descriptors.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
index 18b070ba3a..91204f0102 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -120,19 +120,20 @@ static void si_init_descriptors(struct si_context *sctx,
 				unsigned num_ce_slots,
 				unsigned *ce_offset)
 {
-	assert(num_elements <= sizeof(desc->dirty_mask)*8);
-
 	desc->list = CALLOC(num_elements, element_dw_size * 4);
 	desc->element_dw_size = element_dw_size;
 	desc->num_elements = num_elements;
 	desc->first_ce_slot = sctx->ce_ib ? first_ce_slot : 0;
 	desc->num_ce_slots = sctx->ce_ib ? num_ce_slots : 0;
-	desc->dirty_mask = u_bit_consecutive64(0, num_elements);
+	desc->dirty_mask = 0;
 	desc->shader_userdata_offset = shader_userdata_index * 4;
 
 	if (desc->num_ce_slots) {
+		assert(num_elements <= sizeof(desc->dirty_mask)*8);
+
 		desc->uses_ce = true;
 		desc->ce_offset = *ce_offset;
+		desc->dirty_mask = u_bit_consecutive64(0, num_elements);
 
 		*ce_offset += element_dw_size * desc->num_ce_slots * 4;
 	}
-- 
2.13.3



More information about the mesa-dev mailing list