summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/glslang/src/Test/spv.switch.frag
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/glslang/src/Test/spv.switch.frag')
-rw-r--r--chromium/third_party/glslang/src/Test/spv.switch.frag142
1 files changed, 142 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/spv.switch.frag b/chromium/third_party/glslang/src/Test/spv.switch.frag
new file mode 100644
index 00000000000..c01a3ef0d70
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.switch.frag
@@ -0,0 +1,142 @@
+#version 310 es
+precision mediump float;
+flat in int c, d;
+in float x;
+out float color;
+in vec4 v;
+
+vec4 foo1(vec4 v1, vec4 v2, int i1)
+{
+ switch (i1)
+ {
+ case 0:
+ return v1;
+ case 2:
+ case 1:
+ return v2;
+ case 3:
+ return v1 * v2;
+ }
+
+ return vec4(0.0);
+}
+
+vec4 foo2(vec4 v1, vec4 v2, int i1)
+{
+ switch (i1)
+ {
+ case 0:
+ return v1;
+ case 2:
+ return vec4(1.0);
+ case 1:
+ return v2;
+ case 3:
+ return v1 * v2;
+ }
+
+ return vec4(0.0);
+}
+
+void main()
+{
+ float f;
+ int a[2];
+ int local = c;
+
+ switch(++local)
+ {
+ }
+
+ switch (c) {
+ case 1:
+ f = sin(x);
+ break;
+ case 2:
+ f = cos(x);
+ break;
+ default:
+ f = tan(x);
+ }
+
+ switch (c) {
+ case 1:
+ f += sin(x);
+ case 2:
+ f += cos(x);
+ break;
+ default:
+ f += tan(x);
+ }
+
+ switch (c) {
+ case 1:
+ f += sin(x);
+ break;
+ case 2:
+ f += cos(x);
+ break;
+ }
+
+ switch (c) {
+ case 1:
+ f += sin(x);
+ break;
+ case 2:
+ switch (d) {
+ case 1:
+ f += x * x * x;
+ break;
+ case 2:
+ f += x * x;
+ break;
+ }
+ break;
+ default:
+ f += tan(x);
+ }
+
+ for (int i = 0; i < 10; ++i) {
+ switch (c) {
+ case 1:
+ f += sin(x);
+ for (int j = 20; j < 30; ++j) {
+ ++f;
+ if (f < 100.2)
+ break;
+ }
+ break;
+ case 2:
+ f += cos(x);
+ break;
+ break;
+ default:
+ f += tan(x);
+ }
+
+ if (f < 3.43)
+ break;
+ }
+
+ switch (c) {
+ case 1:
+ f += sin(x);
+ break;
+ case 2:
+ // test no statements at end
+ }
+
+ color = f + float(local);
+
+ color += foo1(v,v,c).y;
+ color += foo2(v,v,c).z;
+
+ switch (c) {
+ case 0: break;
+ default:
+ }
+
+ switch (c) {
+ default:
+ }
+}