Mesa (master): Revert "st/mesa: set MaxUnrollIterations = 255"

Marek Olšák mareko at kemper.freedesktop.org
Tue Oct 28 22:41:25 UTC 2014


Module: Mesa
Branch: master
Commit: 6fcb5520b78cdf1e5013c125501932315a069955
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6fcb5520b78cdf1e5013c125501932315a069955

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue Oct 28 19:49:44 2014 +0100

Revert "st/mesa: set MaxUnrollIterations = 255"

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>
Reviewed-by: Brian Paul <brianp at vmware.com>

---

 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;
    }
 




More information about the mesa-commit mailing list