Merge pull request #3031 from rg3igalia/sub-group-size-arb-flat-fix
[platform/upstream/glslang.git] / Test / spv.variableArrayIndex.frag
1 #version 400\r
2 \r
3 uniform sampler2D samp2D;\r
4 in vec2 coord;\r
5 \r
6 struct lunarStruct1 {\r
7     int i;\r
8     float f;\r
9 };\r
10 \r
11 struct lunarStruct2 {\r
12     int i;\r
13     float f;\r
14     lunarStruct1 s1_1;\r
15 };\r
16 \r
17 struct lunarStruct3 {\r
18     lunarStruct2 s2_1[3];\r
19     int i;\r
20     float f;\r
21     lunarStruct1 s1_1;\r
22 };\r
23 \r
24 \r
25 flat in lunarStruct1 foo;\r
26 flat in lunarStruct2 foo2[5];\r
27 flat in lunarStruct3 foo3;\r
28 flat in int Count;\r
29 \r
30 void main()\r
31 {\r
32     float scale;\r
33     int iLocal = Count;\r
34 \r
35     if (foo3.s2_1[1].i > 0)\r
36         scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f;\r
37     else\r
38         scale = foo3.s2_1[0].s1_1.f;\r
39 \r
40     //for (int i = 0; i < iLocal; ++i) {\r
41     //  scale += foo2[i].f;\r
42     //}\r
43 \r
44     gl_FragColor =  scale * texture(samp2D, coord);\r
45 \r
46     vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0));\r
47     gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]);\r
48 }\r
49 \r