Merge pull request #2892 from greg-lunarg/mb
[platform/upstream/glslang.git] / Test / spv.structDeref.frag
1 #version 140\r
2 \r
3 uniform sampler2D samp2D;\r
4 in vec2 coord;\r
5 \r
6 struct s0 {\r
7     int i;\r
8 };\r
9 \r
10 struct s00 {\r
11     s0 s0_0;\r
12 };\r
13 \r
14 struct s1 {\r
15     int i;\r
16     float f;\r
17     s0 s0_1;\r
18 };\r
19 \r
20 struct s2 {\r
21     int i;\r
22     float f;\r
23     s1 s1_1;\r
24 };\r
25 \r
26 struct s3 {\r
27     s2[12] s2_1;\r
28     int i;\r
29     float f;\r
30     s1 s1_1;\r
31 };\r
32 \r
33 \r
34 s0 foo0;\r
35 s1 foo1;\r
36 s2 foo2;\r
37 s3 foo3;\r
38 \r
39 s00 foo00;\r
40 \r
41 void main()\r
42 {\r
43     s0 locals0;\r
44     s2 locals2;\r
45     s00 locals00;\r
46 \r
47     float[6] fArray;\r
48 \r
49     s1[10] locals1Array;\r
50 \r
51     if (foo3.s2_1[9].i > 0) {\r
52         locals2.f = 1.0;\r
53         locals2.s1_1 = s1(0, 1.0, s0(0));\r
54         fArray = float[6]( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);\r
55         locals1Array[6] = foo1;\r
56         locals0 = s0(0);\r
57         locals00 = s00(s0(0));\r
58     } else {\r
59         locals2.f = coord.x;\r
60         locals2.s1_1 = s1(1, coord.y, foo0);\r
61         fArray = float[6]( 0.0, 1.0, 2.0, 3.0, 4.0, 5.0);\r
62         locals1Array[6] = locals2.s1_1;\r
63         locals0 = foo1.s0_1;\r
64         locals00 = foo00;\r
65     }\r
66 \r
67     if (locals0.i > 5)\r
68         locals0 = locals00.s0_0;\r
69 \r
70     gl_FragColor = (float(locals0.i) + locals1Array[6].f + fArray[3] + locals2.s1_1.f) * texture(samp2D, coord);\r
71 }\r