[Mesa-dev] [PATCH] radeonsi: Compute correct LDS size for fragment shaders.

Marek Olšák maraeo at gmail.com
Fri May 6 10:02:52 UTC 2016


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

Marek

On Thu, May 5, 2016 at 10:33 PM, Bas Nieuwenhuizen
<bas at basnieuwenhuizen.nl> wrote:
> No sure where the 36 came from, but we clearly need at least
> 48 bytes per attribute per primitive.
>
> Signed-off-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
> ---
>  src/gallium/drivers/radeonsi/si_shader.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
> index 49c498d..211db9f 100644
> --- a/src/gallium/drivers/radeonsi/si_shader.c
> +++ b/src/gallium/drivers/radeonsi/si_shader.c
> @@ -5640,15 +5640,18 @@ static void si_shader_dump_stats(struct si_screen *sscreen,
>
>         /* Compute LDS usage for PS. */
>         if (processor == PIPE_SHADER_FRAGMENT) {
> -               /* The minimum usage per wave is (num_inputs * 36). The maximum
> -                * usage is (num_inputs * 36 * 16).
> +               /* The minimum usage per wave is (num_inputs * 48). The maximum
> +                * usage is (num_inputs * 48 * 16).
>                  * We can get anything in between and it varies between waves.
>                  *
> +                * The 48 bytes per input for a single primitive is equal to
> +                * 4 bytes/component * 4 components/input * 3 points.
> +                *
>                  * Other stages don't know the size at compile time or don't
>                  * allocate LDS per wave, but instead they do it per thread group.
>                  */
>                 lds_per_wave = conf->lds_size * lds_increment +
> -                              align(num_inputs * 36, lds_increment);
> +                              align(num_inputs * 48, lds_increment);
>         }
>
>         /* Compute the per-SIMD wave counts. */
> --
> 2.8.2
>
> _______________________________________________
> 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