summaryrefslogtreecommitdiff
path: root/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag')
-rw-r--r--chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag49
1 files changed, 49 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag b/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag
new file mode 100644
index 00000000000..ab52f548e8d
--- /dev/null
+++ b/chromium/third_party/glslang/src/Test/spv.variableArrayIndex.frag
@@ -0,0 +1,49 @@
+#version 400
+
+uniform sampler2D samp2D;
+in vec2 coord;
+
+struct lunarStruct1 {
+ int i;
+ float f;
+};
+
+struct lunarStruct2 {
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+struct lunarStruct3 {
+ lunarStruct2 s2_1[3];
+ int i;
+ float f;
+ lunarStruct1 s1_1;
+};
+
+
+flat in lunarStruct1 foo;
+flat in lunarStruct2 foo2[5];
+flat in lunarStruct3 foo3;
+flat in int Count;
+
+void main()
+{
+ float scale;
+ int iLocal = Count;
+
+ if (foo3.s2_1[1].i > 0)
+ scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f;
+ else
+ scale = foo3.s2_1[0].s1_1.f;
+
+ //for (int i = 0; i < iLocal; ++i) {
+ // scale += foo2[i].f;
+ //}
+
+ gl_FragColor = scale * texture(samp2D, coord);
+
+ vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0));
+ gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]);
+}
+