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

Marek Olšák maraeo at gmail.com
Tue Aug 1 16:40:38 UTC 2017


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Wed, Jul 26, 2017 at 4:21 PM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> 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
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list