[Mesa-dev] [PATCH 1/4] radeonsi: correct maximum wave count per SIMD

Nicolai Hähnle nhaehnle at gmail.com
Thu Aug 24 08:17:25 UTC 2017


On 23.08.2017 22:44, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> ---
>   src/gallium/drivers/radeonsi/si_shader.c | 17 ++++++++++++++++-
>   1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
> index f02fc9e..186a3dd 100644
> --- a/src/gallium/drivers/radeonsi/si_shader.c
> +++ b/src/gallium/drivers/radeonsi/si_shader.c
> @@ -5029,21 +5029,36 @@ static void si_shader_dump_stats(struct si_screen *sscreen,
>   			         struct pipe_debug_callback *debug,
>   			         unsigned processor,
>   				 FILE *file,
>   				 bool check_debug_option)
>   {
>   	const struct si_shader_config *conf = &shader->config;
>   	unsigned num_inputs = shader->selector ? shader->selector->info.num_inputs : 0;
>   	unsigned code_size = si_get_shader_binary_size(shader);
>   	unsigned lds_increment = sscreen->b.chip_class >= CIK ? 512 : 256;
>   	unsigned lds_per_wave = 0;
> -	unsigned max_simd_waves = 10;
> +	unsigned max_simd_waves;
> +
> +	switch (sscreen->b.family) {
> +	/* SGPR initialization bug workaround on Tonga and Iceland reduces
> +	 * the wave count to 8. */
> +	case CHIP_TONGA:
> +	case CHIP_ICELAND:
> +	/* These always have 8 waves: */
> +	case CHIP_POLARIS10:
> +	case CHIP_POLARIS11:
> +	case CHIP_POLARIS12:
> +		max_simd_waves = 8;

This should be implied by the num_sgprs set by LLVM, though.

Cheers,
Nicolai


> +		break;
> +	default:
> +		max_simd_waves = 10;
> +	}
>   
>   	/* Compute LDS usage for PS. */
>   	switch (processor) {
>   	case PIPE_SHADER_FRAGMENT:
>   		/* 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.
> 


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list