Fix treatment of array input/output variables in reflection
[platform/upstream/glslang.git] / Test / reflection.options.vert
1 #version 440 core\r
2 \r
3 struct VertexInfo {\r
4     float position[3];\r
5     float normal[3];\r
6 };\r
7 \r
8 struct TriangleInfo {\r
9     VertexInfo v[3];\r
10 };\r
11 \r
12 buffer VertexCollection {\r
13     TriangleInfo t[5];\r
14     uint padding[10];\r
15 };\r
16 \r
17 buffer MultipleArrays {\r
18     TriangleInfo tri[5];\r
19     VertexInfo vert[5];\r
20     float f[5];\r
21 } multiarray;\r
22 \r
23 uniform UBO {\r
24     VertexInfo verts[2];\r
25     float flt[8];\r
26     uvec4 unused;\r
27 } ubo;\r
28 \r
29 struct OutputStruct {\r
30     float val;\r
31     vec3 a;\r
32     vec2 b[4];\r
33     mat2x2 c;\r
34 };\r
35 \r
36 out OutputStruct outval;\r
37 out float outarr[3];\r
38 \r
39 void main()\r
40 {\r
41     float f;\r
42     f += t[0].v[0].position[0];\r
43     f += t[gl_InstanceID].v[gl_InstanceID].position[gl_InstanceID];\r
44     f += t[gl_InstanceID].v[gl_InstanceID].normal[gl_InstanceID];\r
45     f += multiarray.tri[gl_InstanceID].v[0].position[0];\r
46     f += multiarray.vert[gl_InstanceID].position[0];\r
47     f += multiarray.f[gl_InstanceID];\r
48     f += ubo.verts[gl_InstanceID].position[0];\r
49     f += ubo.flt[gl_InstanceID];\r
50     TriangleInfo tlocal[5] = t;\r
51     outval.val = f;\r
52     outarr[2] = f;\r
53 }\r