Merge pull request #2976 from jeremy-lunarg/hayes-fix-2975
[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 buffer ArrayedBind {\r
24     float a;\r
25     float b;\r
26 } buffers[3];\r
27 \r
28 uniform UBO {\r
29     VertexInfo verts[2];\r
30     float flt[8];\r
31     uvec4 unused;\r
32     float uniform_multi[4][3][2];\r
33 } ubo;\r
34 \r
35 uniform float uniform_multi[4][3][2];\r
36 \r
37 struct OutputStruct {\r
38     float val;\r
39     vec3 a;\r
40     vec2 b[4];\r
41     mat2x2 c;\r
42 };\r
43 \r
44 out OutputStruct outval;\r
45 out float outarr[3];\r
46 \r
47 void main()\r
48 {\r
49     float f;\r
50     f += t[0].v[0].position[0];\r
51     f += t[gl_InstanceID].v[gl_InstanceID].position[gl_InstanceID];\r
52     f += t[gl_InstanceID].v[gl_InstanceID].normal[gl_InstanceID];\r
53     f += multiarray.tri[gl_InstanceID].v[0].position[0];\r
54     f += multiarray.vert[gl_InstanceID].position[0];\r
55     f += multiarray.f[gl_InstanceID];\r
56     f += ubo.verts[gl_InstanceID].position[0];\r
57     f += ubo.flt[gl_InstanceID];\r
58     f += ubo.uniform_multi[0][0][0];\r
59     f += uniform_multi[gl_InstanceID][gl_InstanceID][gl_InstanceID];\r
60     f += buffers[gl_InstanceID].b;\r
61     TriangleInfo tlocal[5] = t;\r
62     outval.val = f;\r
63     outarr[2] = f;\r
64 }\r