[Mesa-dev] [PATCH 1/5] gallivm: increase nesting limit to 66

sroland at vmware.com sroland at vmware.com
Thu Apr 18 19:13:54 PDT 2013


From: Roland Scheidegger <sroland at vmware.com>

This is still not really correct, since at least for sm 4.0
the nesting limit is 64 per subroutine, and subroutine nesting itself
has a limit of 32, so since we have a flat stack we'd need 32*64.
But this should probably be better fixed with per-subroutine stacks,
since otherwise these structures get really big (like 100kB for the
lp_exec_mask).
---
 src/gallium/auxiliary/gallivm/lp_bld_limits.h |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_limits.h b/src/gallium/auxiliary/gallivm/lp_bld_limits.h
index 29bb9e3..5675e36 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_limits.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_limits.h
@@ -57,9 +57,11 @@
 /**
  * Maximum control flow nesting
  *
- * SM3.0 requires 24
+ * SM4.0 requires 64 (per subroutine actually, subroutine nesting itself is 32)
+ * SM3.0 requires 24 (most likely per subroutine too)
+ * add 2 more (some translation could add one more)
  */
-#define LP_MAX_TGSI_NESTING 32
+#define LP_MAX_TGSI_NESTING 66
 
 /**
  * Maximum iterations before loop termination
-- 
1.7.9.5


More information about the mesa-dev mailing list