From: Samuel Pitoiset Date: Wed, 28 Jun 2017 16:48:14 +0000 (+0200) Subject: radeonsi: only initialize dirty_mask when CE is used X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a5ff4a8e2e5bc1b7107a1d902feaf4d5edb96b3f;p=mesa.git radeonsi: only initialize dirty_mask when CE is used 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 Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 1f6e704b4bc..c26b8291cfb 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; }