[Mesa-dev] [PATCH] Revert "st/mesa: set MaxUnrollIterations = 255"

Brian Paul brianp at vmware.com
Tue Oct 28 14:44:57 PDT 2014


On 10/28/2014 01:08 PM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> This reverts commit 20836c81851e0df29a8ee9c86e5e5388738c840b.
>
> 255 is a huge number. If you have a loop with 255 iterations, unrolling it
> will exceed the SM3 instruction limit. Let's use the default again.
>
> The comment about a SM3 limit doesn't make sense. For SM3, we generally
> want 32 (default) or a lower number due to the SM3 instruction limit, which
> is 512 instructions. For SM4, we can try higher numbers if needed, but
> some shaders can end up being pretty huge and shader compilation can take
> more time.
>
> This fixes a shader compile failure on R500/SM3. Reported on IRC.
>
> Cc: 10.2 10.3 <mesa-stable at lists.freedesktop.org>
> ---
>   src/mesa/state_tracker/st_extensions.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index aff3dde..bdfab8b 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -241,8 +241,7 @@ void st_init_limits(struct pipe_screen *screen,
>
>         if (options->EmitNoLoops)
>            options->MaxUnrollIterations = MIN2(screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_INSTRUCTIONS), 65536);
> -      else
> -         options->MaxUnrollIterations = 255; /* SM3 limit */
> +
>         options->LowerClipDistance = true;
>      }
>
>

OK by me.  I'll try to retest the oZone test someday and see if it's 
still an issue.

Reviewed-by: Brian Paul <brianp at vmware.com>




More information about the mesa-dev mailing list