diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/constErrors.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/constErrors.frag | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/constErrors.frag b/chromium/third_party/glslang/src/Test/constErrors.frag new file mode 100644 index 00000000000..0067af1180d --- /dev/null +++ b/chromium/third_party/glslang/src/Test/constErrors.frag @@ -0,0 +1,35 @@ +#version 330 + +in vec4 inVar; +out vec4 outVar; + +const int constInt = 3; + +uniform int uniformInt; + +void main() +{ + const int a1 = 2; // okay + const int a2 = constInt; // okay + const int a3 = uniformInt; // error + + vec4 c[constInt]; // okay + vec4 d[uniformInt]; // error + vec4 e[constInt + uniformInt]; // error + vec4 f[uniformInt + constInt]; // error + + vec4 g[int(sin(0.3)) + 1]; // okay +} + +const struct S { + vec3 v3; + ivec2 iv2; +} s = S(vec3(3.0), ivec2(3, constInt + uniformInt)); // ERROR, non-const y componenent + +const struct S2 { + vec3 v3; + ivec2 iv2; + mat2x4 m; +} s2 = S2(vec3(3.0), ivec2(3, constInt), mat2x4(1.0, 2.0, 3.0, inVar.x, 5.0, 6.0, 7.0, 8.0)); // ERROR, non-constant matrix + +const float f = 3; // okay, type conversion |