Merge pull request #3031 from rg3igalia/sub-group-size-arb-flat-fix
[platform/upstream/glslang.git] / Test / spv.localAggregates.frag
1 #version 400\r
2 \r
3 uniform sampler2D samp2D;\r
4 in vec2 coord;\r
5 in vec4 color;\r
6 \r
7 struct s1 {\r
8     int i;\r
9     float f;\r
10 };\r
11 \r
12 struct s2 {\r
13     int i;\r
14     float f;\r
15         s1 s1_1;\r
16         vec4 bleh;\r
17 };\r
18 \r
19 struct s3 {\r
20         s2 s2_1;\r
21     int i;\r
22     float f;\r
23         s1 s1_1;\r
24 };\r
25 \r
26 \r
27 flat in s1 foo;\r
28 flat in s2 foo2;\r
29 flat in s3 foo3;\r
30 \r
31 \r
32 flat in int condition;\r
33 \r
34 void main()\r
35 {\r
36         s2 locals2;\r
37         s3 locals3;\r
38         float localFArray[16];\r
39         int localIArray[8];\r
40 \r
41         locals2 = foo3.s2_1;\r
42 \r
43         if (foo3.s2_1.i > 0) {\r
44                 locals2.s1_1.f = 1.0;\r
45                 localFArray[4] = coord.x;\r
46                 localIArray[2] = foo3.s2_1.i;\r
47         } else {\r
48                 locals2.s1_1.f = coord.x;\r
49                 localFArray[4] = 1.0;\r
50                 localIArray[2] = 0;\r
51         }\r
52 \r
53         if (localIArray[2] == 0)\r
54                 ++localFArray[4];\r
55 \r
56         float localArray[16];\r
57         int x = 5;\r
58         localArray[x] = coord.x;\r
59 \r
60         float[16] a;\r
61 \r
62         for (int i = 0; i < 16; i++)\r
63                 a[i] = 0.0;\r
64         \r
65         if (condition == 1)\r
66                 a = localArray;\r
67         \r
68         locals2.bleh = color;\r
69         locals2.bleh.z = coord.y;\r
70 \r
71         gl_FragColor = locals2.bleh * (localFArray[4] + locals2.s1_1.f + localArray[x] + a[x]) * texture(samp2D, coord);\r
72 }\r