diff options
author | Zhenyao Mo <zmo@chromium.org> | 2014-07-11 10:45:44 -0700 |
---|---|---|
committer | Zhenyao Mo <zmo@chromium.org> | 2014-07-16 19:51:00 +0000 |
commit | cd68fe7989afb5e5a9b1ae92ae1dae1478a9d1f6 (patch) | |
tree | 3ec3e9e698bb58e805484d691066d073c676f966 /include | |
parent | fc43d273cbbbed105fa05c71741b479403d2290c (diff) | |
download | angle-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.h | 4 |
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. |