aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorZhenyao Mo <zmo@chromium.org>2014-07-11 10:45:44 -0700
committerZhenyao Mo <zmo@chromium.org>2014-07-16 19:51:00 +0000
commitcd68fe7989afb5e5a9b1ae92ae1dae1478a9d1f6 (patch)
tree3ec3e9e698bb58e805484d691066d073c676f966 /include
parentfc43d273cbbbed105fa05c71741b479403d2290c (diff)
downloadangle-cd68fe7989afb5e5a9b1ae92ae1dae1478a9d1f6.tar.gz
Add a compiler option to rewrite vec/mat constructors
If one of the parameters is a vec/mat, expand it into scalars. This is to work around Linux NVIDIA/AMD and Mac NVIDIA driver bugs. BUG=angle:695 TEST=webgl conformance test Change-Id: I35e1e25167d99f873dcb03bfb57a30e84b1aeed5 Reviewed-on: https://chromium-review.googlesource.com/207479 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Zhenyao Mo <zmo@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/GLSLANG/ShaderLang.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h
index 87f66b23..769a34a2 100644
--- a/include/GLSLANG/ShaderLang.h
+++ b/include/GLSLANG/ShaderLang.h
@@ -185,6 +185,10 @@ typedef enum {
// It is intended as a workaround for drivers which incorrectly optimize
// out such varyings and cause a link failure.
SH_INIT_VARYINGS_WITHOUT_STATIC_USE = 0x20000,
+
+ // This flag scalarizes vec/ivec/bvec/mat constructor args.
+ // It is intended as a workaround for Linux/Mac driver bugs.
+ SH_SCALARIZE_VEC_AND_MAT_CONSTRUCTOR_ARGS = 0x40000,
} ShCompileOptions;
// Defines alternate strategies for implementing array index clamping.