Mesa (master): progs/glsl: Add workarounds for Apple GLSL compiler crash.
Vinson Lee
vlee at kemper.freedesktop.org
Mon Mar 29 22:00:01 UTC 2010
Module: Mesa
Branch: master
Commit: 90075f34e24a6d6c16198c5b99fb25d713910e8a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=90075f34e24a6d6c16198c5b99fb25d713910e8a
Author: Vinson Lee <vlee at vmware.com>
Date: Mon Mar 29 14:56:12 2010 -0700
progs/glsl: Add workarounds for Apple GLSL compiler crash.
fsraytrace and vsraytrace were crashing on Mac OS X 10.6.3 in the Apple
GLSL compiler function TPPStreamCompiler::assignOperands. Removing some
const qualifers made the crashes go away.
---
progs/glsl/fsraytrace.c | 7 +++++++
progs/glsl/vsraytrace.c | 7 +++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/progs/glsl/fsraytrace.c b/progs/glsl/fsraytrace.c
index dcfc194..af72a99 100644
--- a/progs/glsl/fsraytrace.c
+++ b/progs/glsl/fsraytrace.c
@@ -76,10 +76,17 @@ static const char* fsSource =
" vec3 n; \n"
"}; \n"
" \n"
+#ifdef __APPLE__
+ "Sphere spheres0 = Sphere( vec3(0.0,0.0,-1.0), 0.5 ); \n"
+ "Sphere spheres1 = Sphere( vec3(-3.0,0.0,-1.0), 1.5 ); \n"
+ "Sphere spheres2 = Sphere( vec3(0.0,3.0,-1.0), 0.5 ); \n"
+ "Sphere spheres3 = Sphere( vec3(2.0,0.0,-1.0), 1.0 ); \n"
+#else
"const Sphere spheres0 = Sphere( vec3(0.0,0.0,-1.0), 0.5 ); \n"
"const Sphere spheres1 = Sphere( vec3(-3.0,0.0,-1.0), 1.5 ); \n"
"const Sphere spheres2 = Sphere( vec3(0.0,3.0,-1.0), 0.5 ); \n"
"const Sphere spheres3 = Sphere( vec3(2.0,0.0,-1.0), 1.0 ); \n"
+#endif
" \n"
"// Mesa intel gen4 generates \"unsupported IR in fragment shader 13\" for\n"
"// sqrt, let's work around. \n"
diff --git a/progs/glsl/vsraytrace.c b/progs/glsl/vsraytrace.c
index 67832b8..64d9288 100644
--- a/progs/glsl/vsraytrace.c
+++ b/progs/glsl/vsraytrace.c
@@ -64,10 +64,17 @@ static const char* vsSource =
" vec3 n; \n"
"}; \n"
" \n"
+#ifdef __APPLE__
+ "Sphere spheres0 = Sphere( vec3(0.0,0.0,-1.0), 0.5 ); \n"
+ "Sphere spheres1 = Sphere( vec3(-3.0,0.0,-1.0), 1.5 ); \n"
+ "Sphere spheres2 = Sphere( vec3(0.0,3.0,-1.0), 0.5 ); \n"
+ "Sphere spheres3 = Sphere( vec3(2.0,0.0,-1.0), 1.0 ); \n"
+#else
"const Sphere spheres0 = Sphere( vec3(0.0,0.0,-1.0), 0.5 ); \n"
"const Sphere spheres1 = Sphere( vec3(-3.0,0.0,-1.0), 1.5 ); \n"
"const Sphere spheres2 = Sphere( vec3(0.0,3.0,-1.0), 0.5 ); \n"
"const Sphere spheres3 = Sphere( vec3(2.0,0.0,-1.0), 1.0 ); \n"
+#endif
" \n"
"// Mesa intel gen4 generates \"unsupported IR in fragment shader 13\" for\n"
"// sqrt, let's work around. \n"
More information about the mesa-commit
mailing list