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

Samuel Pitoiset samuel.pitoiset at gmail.com
Tue Aug 8 16:57:29 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>
Reviewed-by: Marek Olšák <marek.olsak at amd.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 1e0c422fb4..586310c168 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -125,19 +125,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.14.0



More information about the mesa-dev mailing list