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.pitoi...@gmail.com>
Reviewed-by: Marek Olšák <marek.ol...@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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to