[Mesa-dev] [PATCH 2/3] radv: make use of nir_move_out_const_to_consumer()

Samuel Pitoiset samuel.pitoiset at gmail.com
Wed Nov 7 08:41:30 UTC 2018



On 11/7/18 5:20 AM, Timothy Arceri wrote:
> vkpipeline-db results:
> 
> Totals from affected shaders:
> SGPRS: 28400 -> 28576 (0.62 %)
> VGPRS: 27916 -> 27692 (-0.80 %)
> Spilled SGPRs: 140 -> 138 (-1.43 %)
> Spilled VGPRs: 0 -> 0 (0.00 %)
> Private memory VGPRs: 0 -> 0 (0.00 %)
> Scratch size: 0 -> 0 (0.00 %) dwords per thread
> Code Size: 1534456 -> 1520560 (-0.91 %) bytes
> LDS: 0 -> 0 (0.00 %) blocks
> Max Waves: 3541 -> 3582 (1.16 %)
> Wait states: 0 -> 0 (0.00 %)

Also, I guess DOW3 is affected? It was with my experimental pass, at least.

> ---
>   src/amd/vulkan/radv_pipeline.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
> index bced19573c1..12e7f43bde7 100644
> --- a/src/amd/vulkan/radv_pipeline.c
> +++ b/src/amd/vulkan/radv_pipeline.c
> @@ -1814,6 +1814,10 @@ radv_link_shaders(struct radv_pipeline *pipeline, nir_shader **shaders)
>   		nir_lower_io_arrays_to_elements(ordered_shaders[i],
>   						ordered_shaders[i - 1]);
>   
> +		if (nir_move_out_const_to_consumer(ordered_shaders[i],
> +					           ordered_shaders[i - 1]))
> +			radv_optimize_nir(ordered_shaders[i - 1], false, false);
> +
>   		nir_remove_dead_variables(ordered_shaders[i],
>   					  nir_var_shader_out);
>   		nir_remove_dead_variables(ordered_shaders[i - 1],
> 


More information about the mesa-dev mailing list