summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/300operations.frag
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/300operations.frag')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/300operations.frag135
1 files changed, 135 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/300operations.frag b/3rdparty/bgfx/3rdparty/glslang/Test/300operations.frag
new file mode 100644
index 00000000000..5992987aa51
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/300operations.frag
@@ -0,0 +1,135 @@
+#version 300 es
+
+uniform block {
+ mediump float f;
+} instanceName;
+
+struct S {
+ int i;
+} s;
+
+float a[5];
+
+void main()
+{
+ bool b;
+ float f;
+ int i;
+ uint u;
+ bvec3 b3;
+ vec3 v3;
+ ivec3 iv3;
+ uvec3 uv3;
+ vec4 v4;
+ ivec4 iv4;
+ uvec4 uv4;
+ mat2 m2;
+ mat4 m4;
+
+ // These are all errors:
+ instanceName + instanceName;
+ s + s;
+ i + f;
+ u + f;
+ u + i;
+ iv3 *= iv4;
+ iv4 / uv4;
+ i - v3;
+ iv3 + uv3;
+ a * a;
+ b / b;
+
+ f % f;
+ i % f;
+ f % u;
+ instanceName++;
+ ++s;
+ a--;
+ ++b3;
+
+ iv3 < uv3;
+ m2 > m2;
+ m2 != m4;
+ i >= u;
+ a <= a;
+ b > b;
+
+ b && b3;
+ b3 ^^ b3;
+ b3 || b;
+ i && i;
+ u || u;
+ m2 ^^ m2;
+
+ !u;
+ !i;
+ !m2;
+ !v3;
+ !a;
+
+ ~f;
+ ~m4;
+ ~v3;
+ ~a;
+ ~instanceName;
+
+ i << iv3;
+ u << uv3;
+ i >> f;
+ f >> i;
+ m4 >> i;
+ a >> u;
+ iv3 >> iv4;
+
+ i & u;
+ u &= uv3;
+ i | uv3;
+ u & f;
+ m2 | m2;
+ s ^ s;
+ (f = f) = f;
+
+ // These are all okay:
+ f * v4;
+ u + u;
+ uv4 / u;
+ iv3 -= iv3;
+
+ i %= 3;
+ uv3 % 4u;
+ --m2;
+ iv4++;
+
+ m4 != m4;
+ m2 == m2;
+ i <= i;
+ a == a;
+ s != s;
+
+ b && b;
+ b || b;
+ b ^^ b;
+
+ !b, uv3;
+
+ ~i;
+ ~u;
+ ~uv3;
+ ~iv3;
+
+ uv3 <<= i;
+ i >> i;
+ u << u;
+ iv3 >> iv3;
+
+ i & i;
+ u | u;
+ iv3 ^ iv3;
+ u & uv3;
+ uv3 | u;
+ uv3 &= u;
+ int arr[0x222 & 0xf];
+ arr[1]; // size 2
+ int arr2[(uvec2(0, 0x2) | 0x1u).y];
+ arr2[2]; // size 3
+}