summaryrefslogtreecommitdiffstats
path: root/src/glsl/Makefile
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2011-07-11 10:46:01 -0700
committerIan Romanick <[email protected]>2011-07-20 18:20:59 -0700
commit02c5ae1b3fef75d5c0a715313a69e6b95ebd5b95 (patch)
tree25b08fc7dd9d6dd68b32d0847f95d18ad4b19d0d /src/glsl/Makefile
parent1ad3ba4ad954b86751bd5b6ad0a431920bff9958 (diff)
glsl: Reject shaders that contain static recursion
The GLSL 1.20 and later specs say: "Recursion is not allowed, not even statically. Static recursion is present if the static function call graph of the program contains cycles." Recursion is detected and rejected both a compile-time and at link-time. The complie-time check happens to detect some cases that may be removed by various optimization passes. The spec doesn't seem to allow this, but other vendors (e.g., NVIDIA) appear to only check at link-time after all optimizations. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33885 Reviewed-by: Paul Berry <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/glsl/Makefile')
-rw-r--r--src/glsl/Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/glsl/Makefile b/src/glsl/Makefile
index e0776c1b55d..d1422c2a4d6 100644
--- a/src/glsl/Makefile
+++ b/src/glsl/Makefile
@@ -39,6 +39,7 @@ CXX_SOURCES = \
ir.cpp \
ir_expression_flattening.cpp \
ir_function_can_inline.cpp \
+ ir_function_detect_recursion.cpp \
ir_function.cpp \
ir_hierarchical_visitor.cpp \
ir_hv_accept.cpp \