aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2013-04-18 17:18:15 +0200
committerRoland Scheidegger <[email protected]>2013-04-20 02:27:53 +0200
commit443950c6aa1188964b4d8d5f6c7499c3a93a88b2 (patch)
treefc2c48c86dc82fb1e39dd83af6d96cc0c3195474 /src/gallium
parent12eab7cc564a6928197f9b87ded9e368e56976f0 (diff)
gallivm: increase nesting limit to 66
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). Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_limits.h6
1 files 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 29bb9e3974f..5675e367c4e 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