OSDN Git Service

gallivm: increase nesting limit to 66
authorRoland Scheidegger <sroland@vmware.com>
Thu, 18 Apr 2013 15:18:15 +0000 (17:18 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Sat, 20 Apr 2013 00:27:53 +0000 (02:27 +0200)
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 <jfonseca@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_limits.h

index 29bb9e3..5675e36 100644 (file)
 /**
  * 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