diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/120.vert')
-rw-r--r-- | 3rdparty/bgfx/3rdparty/glslang/Test/120.vert | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/120.vert b/3rdparty/bgfx/3rdparty/glslang/Test/120.vert new file mode 100644 index 00000000000..d2765571e5b --- /dev/null +++ b/3rdparty/bgfx/3rdparty/glslang/Test/120.vert @@ -0,0 +1,203 @@ +#version 120 + +in vec4 i; // ERROR +out vec4 o; // ERROR + +attribute vec2 attv2; +attribute vec4 attv4; +uniform sampler2D s2D; +invariant varying vec2 centTexCoord; +invariant gl_Position; +centroid gl_Position; // ERROR +centroid centroid foo; // ERROR +invariant gl_Position, gl_PointSize; + +void main() +{ + centTexCoord = attv2; + gl_Position = attv4; + + gl_ClipVertex = attv4; + gl_ClipDistance[1] = 0.2; // ERROR + + vec3[12] a; + vec4[a.length()] b; + gl_Position = b[b.length()-1]; + + float f[]; + int a1 = f.length(); // ERROR + float f[7]; + int aa = f.length(); + int a2 = f.length; // ERROR + int a3 = f.length(a); // ERROR + int a4 = f.flizbit; // ERROR + int a4 = f.flizbit(); // ERROR + float md[2][4]; // ERROR + float[2] md2[4]; // ERROR + float[2][4] md3; // ERROR + float md5, md6[2][3]; // ERROR + float[2] md4, md7[4]; // ERROR + float md9[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR + float md10, md11[2][3] = float[2][3](1, 2, 3, 4, 5, 6); // ERROR + + gl_PointSize = 3.8; +} + +uniform float initted = 3.4; // okay + +const float concall = sin(0.3); + +int[2][3] foo( // ERROR + float[2][3] a, // ERROR + float[2] b[3], // ERROR + float c[2][3]); // ERROR + +int overloadA(in float f); +int overloadA(out float f); // ERROR, different qualifiers +float overloadA(float); // ERROR, different return value for same signature +float overloadA(out float f, int); +float overloadA(int i); + +void overloadB(float, const in float) { } + +vec2 overloadC(int, int); +vec2 overloadC(const in int, float); +vec2 overloadC(float, int); +vec2 overloadC(vec2, vec2); + +vec3 overloadD(int, float); +vec3 overloadD(float, in int); + +vec3 overloadE(float[2]); +vec3 overloadE(mat2 m); +vec3 overloadE(vec2 v); + +vec3 overloadF(int); +vec3 overloadF(float); + +void foo() +{ + float f; + int i; + + overloadB(f, f); + overloadB(f, 2); + overloadB(1, i); + + overloadC(1); // ERROR + overloadC(1, i); + overloadC(vec2(1), vec2(2)); + overloadC(f, 3.0); // ERROR, no way + overloadC(ivec2(1), vec2(2)); + + overloadD(i, f); + overloadD(f, i); + overloadD(i, i); // ERROR, ambiguous + + int overloadB; // hiding + overloadB(1, i); // ERROR + + sin(1); + texture2D(s2D, ivec2(0)); + clamp(attv4, 0, 1); + clamp(ivec4(attv4), 0, 1); + + int a[2]; + overloadC(a, 3); // ERROR + overloadE(a); // ERROR + overloadE(3.3); // ERROR + overloadE(vec2(3.3)); + overloadE(mat2(0.5)); + overloadE(ivec4(1)); // ERROR + overloadE(ivec2(1)); + + float b[2]; + overloadE(b); + + overloadF(1, 1); // ERROR + overloadF(1); +} + +varying vec4 gl_TexCoord[35]; // ERROR, size too big + +// tests for output conversions +void outFun(in float, out ivec2, in int, out float); +int outFunRet(in float, out int, const in int, out ivec4); +ivec2 outFunRet(in float, out ivec4, in int, out ivec4); + +void foo2() +{ + vec2 v2; + vec4 v4; + float f; + int i; + + outFun(i, v2, i, f); + outFunRet(i, f, i, v4); + float ret = outFunRet(i, f, i, v4); + vec2 ret2 = outFunRet(i, v4, i, v4); + bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in +} + +void noise()
+{
+ float f1 = noise1(1.0);
+ vec2 f2 = noise2(vec2(1.0));
+ vec3 f3 = noise3(vec3(1.0));
+ vec4 f4 = noise4(vec4(1.0));
+} + +// version 130 features + +uniform int c; + +attribute ivec2 x; +attribute vec2 v2a; +attribute float c1D; +attribute vec2 c2D; +attribute vec3 c3D; + +uniform vec4 v4; + +void foo213() +{ + float f = 3; + switch (c) { // ERRORs... + case 1: + f = sin(f); + break; + case 2: + f = f * f; + default: + f = 3.0; + } + + int i; + i << 3 | 0x8A >> 1 & 0xFF; // ERRORs... + + vec3 modfOut, modfIn; + vec3 v11 = modf(modfIn, modfOut); // ERRORS... + float t = trunc(f); + vec2 v12 = round(v2a); + vec2 v13 = roundEven(v2a); + bvec2 b10 = isnan(v2a); + bvec4 b11 = isinf(v4); + + sinh(c1D) + // ERRORS... + cosh(c1D) * tanh(c2D); + asinh(c4D) + acosh(c4D); + atanh(c3D); + + int id = gl_VertexID; // ERROR + gl_ClipDistance[1] = 0.3; // ERROR +} + +int gl_ModelViewMatrix[] = 0; + +// token pasting (ERRORS...) + +#define mac abc##def +int mac; + +#define macr(A,B) A ## B +int macr(qrs,tuv); |