From 443950c6aa1188964b4d8d5f6c7499c3a93a88b2 Mon Sep 17 00:00:00 2001 From: Roland Scheidegger Date: Thu, 18 Apr 2013 17:18:15 +0200 Subject: [PATCH] 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 --- 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 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 -- 2.30.2