summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/conversion.frag
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/conversion.frag')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/conversion.frag112
1 files changed, 112 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/conversion.frag b/3rdparty/bgfx/3rdparty/glslang/Test/conversion.frag
new file mode 100644
index 00000000000..f17293b89dc
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/conversion.frag
@@ -0,0 +1,112 @@
+#version 130
+
+uniform bool u_b;
+uniform bvec2 u_b2;
+uniform bvec3 u_b3;
+uniform bvec4 u_b4;
+
+uniform int u_i;
+uniform ivec2 u_i2;
+uniform ivec3 u_i3;
+uniform ivec4 u_i4;
+
+uniform float u_f;
+uniform vec2 u_f2;
+uniform vec3 u_f3;
+uniform vec4 u_f4;
+
+uniform bool i_b;
+uniform bvec2 i_b2;
+uniform bvec3 i_b3;
+uniform bvec4 i_b4;
+
+flat in int i_i;
+flat in ivec2 i_i2;
+flat in ivec3 i_i3;
+flat in ivec4 i_i4;
+
+in float i_f;
+in vec2 i_f2;
+in vec3 i_f3;
+in vec4 i_f4;
+
+void main()
+{
+ bool b = bool(u_i) ^^ bool(u_f);
+ bvec2 b2 = bvec2(u_i, u_f);
+ bvec3 b3 = bvec3(u_i, u_f, i_i);
+ bvec4 b4 = bvec4(u_i, u_f, i_i, i_f);
+
+ int i = int(u_f) + int(b);
+ ivec2 i2 = ivec2(u_f2) + ivec2(b2);
+ ivec3 i3 = ivec3(u_f3) + ivec3(b3);
+ ivec4 i4 = ivec4(u_f4) + ivec4(b4);
+
+ float f = i;
+ vec2 f2 = i2;
+ vec3 f3 = i3;
+ vec4 f4 = i4;
+
+ f += (float(i) + float(b));
+ f2 -= vec2(i2) + vec2(b2);
+ f3 /= vec3(i3) + vec3(b3);
+ f4 += vec4(i4) + vec4(b4);
+
+ f4 += vec4(bvec4(i_i4));
+ f4 += vec4(bvec4(u_f4));
+
+ f += f - i;
+ f2 += vec2(f, i) + i2;
+ f3 += i3 + vec3(f, i, f);
+ f4 += vec4(b, i, f, i) + i4;
+
+ f2 += vec2(f, i) * i;
+ f3 += vec3(f, i, f) + i;
+ f4 += i - vec4(b, i, f, i);
+
+ i2 += ivec2(f, i);
+ i3 += ivec3(f, i, f);
+ i4 += ivec4(b, i, f, i);
+
+ if (f < i || i < f ||
+ f2 == i2 ||
+ i3 != f3)
+ f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y);
+
+ gl_FragColor =
+ b ||
+ b2.x ||
+ b2.y ||
+ b3.x ||
+ b3.y ||
+ b3.z ||
+ b4.x ||
+ b4.y ||
+ b4.z ||
+ b4.w ? vec4(
+ i +
+ i2.x +
+ i2.y +
+ i3.x +
+ i3.y +
+ i3.z +
+ i4.x +
+ i4.y +
+ i4.z +
+ i4.w +
+ f +
+ f2.x +
+ f2.y +
+ f3.x +
+ f3.y +
+ f3.z +
+ f4.x +
+ f4.y +
+ f4.z +
+ f4.w) : vec4(1.0);
+
+ // with constants...
+ ivec4 cv2 = ivec4(1.0);
+ bvec4 cv5 = bvec4(cv2);
+ gl_FragColor += float(cv5);
+}