[Mesa-dev] [PATCH] Revert "nir: bump loop unroll limit to 96."

Timothy Arceri tarceri at itsqueeze.com
Tue Mar 6 03:59:12 UTC 2018


On 06/03/18 14:48, Timothy Arceri wrote:
> This reverts commit 2d36efdb7f18f061c519dbb93f6058bf161aad33.
> 
> This raised limit turns out to harmful for more complex shaders,
> it causes excessive spilling in some Bioshock Infinite shaders.

While not as bad as Bioshock (which went from 0 -> 268 in three shaders) 
Dirt Showdown VGPR spilling went from 40 -> 67 and 0 -> 17 in a couple 
of shaders also as a result of loop unrolling.


> 
> The fps for the ssao demo on radv remains unchanged when reverting
> this.
> 
> Cc: Dave Airlie <airlied at gmail.com>
> ---
>   src/compiler/nir/nir_opt_loop_unroll.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/src/compiler/nir/nir_opt_loop_unroll.c b/src/compiler/nir/nir_opt_loop_unroll.c
> index dae5bfc902..79d04f978b 100644
> --- a/src/compiler/nir/nir_opt_loop_unroll.c
> +++ b/src/compiler/nir/nir_opt_loop_unroll.c
> @@ -33,10 +33,8 @@
>    * to give about the same results. Around 5 instructions per node.  But some
>    * loops that would unroll with GLSL IR fail to unroll if we set this to 25 so
>    * we set it to 26.
> - * This was bumped to 96 because it unrolled more loops with a positive
> - * effect (vulkan ssao demo).
>    */
> -#define LOOP_UNROLL_LIMIT 96
> +#define LOOP_UNROLL_LIMIT 26
>   
>   /* Prepare this loop for unrolling by first converting to lcssa and then
>    * converting the phis from the loops first block and the block that follows
> 


More information about the mesa-dev mailing list