e3c0a3e665d0cc72f01c4f28f6c6e0cb011129e7
[platform/upstream/glslang.git] / Test / baseResults / hlsl.color.hull.tesc.out
1 hlsl.color.hull.tesc
2 Shader version: 500
3 vertices = 3
4 vertex spacing = equal_spacing
5 triangle order = cw
6 0:? Sequence
7 0:37  Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
8 0:37    Function Parameters: 
9 0:37      'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
10 0:37      'patchId' ( in uint)
11 0:?     Sequence
12 0:42      move second child to first child ( temp float)
13 0:42        direct index ( temp float)
14 0:42          edges: direct index for structure ( temp 3-element array of float)
15 0:42            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
16 0:42            Constant:
17 0:42              0 (const int)
18 0:42          Constant:
19 0:42            0 (const int)
20 0:42        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
21 0:42          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
22 0:42          Constant:
23 0:42            0 (const uint)
24 0:43      move second child to first child ( temp float)
25 0:43        direct index ( temp float)
26 0:43          edges: direct index for structure ( temp 3-element array of float)
27 0:43            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
28 0:43            Constant:
29 0:43              0 (const int)
30 0:43          Constant:
31 0:43            1 (const int)
32 0:43        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
33 0:43          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
34 0:43          Constant:
35 0:43            0 (const uint)
36 0:44      move second child to first child ( temp float)
37 0:44        direct index ( temp float)
38 0:44          edges: direct index for structure ( temp 3-element array of float)
39 0:44            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
40 0:44            Constant:
41 0:44              0 (const int)
42 0:44          Constant:
43 0:44            2 (const int)
44 0:44        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
45 0:44          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
46 0:44          Constant:
47 0:44            0 (const uint)
48 0:47      move second child to first child ( temp float)
49 0:47        inside: direct index for structure ( temp float)
50 0:47          'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
51 0:47          Constant:
52 0:47            1 (const int)
53 0:47        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
54 0:47          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
55 0:47          Constant:
56 0:47            0 (const uint)
57 0:49      Branch: Return with expression
58 0:49        'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
59 0:63  Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
60 0:63    Function Parameters: 
61 0:63      'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
62 0:63      'pointId' ( in uint)
63 0:63      'patchId' ( in uint)
64 0:?     Sequence
65 0:67      move second child to first child ( temp 3-component vector of float)
66 0:67        position: direct index for structure ( temp 3-component vector of float)
67 0:67          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
68 0:67          Constant:
69 0:67            0 (const int)
70 0:67        position: direct index for structure ( temp 3-component vector of float)
71 0:67          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
72 0:67            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
73 0:67            'pointId' ( in uint)
74 0:67          Constant:
75 0:67            0 (const int)
76 0:70      move second child to first child ( temp 4-component vector of float)
77 0:70        color: direct index for structure ( temp 4-component vector of float)
78 0:70          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
79 0:70          Constant:
80 0:70            1 (const int)
81 0:70        color: direct index for structure ( temp 4-component vector of float)
82 0:70          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
83 0:70            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
84 0:70            'pointId' ( in uint)
85 0:70          Constant:
86 0:70            1 (const int)
87 0:72      Branch: Return with expression
88 0:72        'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
89 0:63  Function Definition: main( ( temp void)
90 0:63    Function Parameters: 
91 0:?     Sequence
92 0:63      Sequence
93 0:63        move second child to first child ( temp 3-component vector of float)
94 0:63          position: direct index for structure ( temp 3-component vector of float)
95 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
96 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
97 0:63              Constant:
98 0:63                0 (const int)
99 0:63            Constant:
100 0:63              0 (const int)
101 0:63          direct index (layout( location=0) in 3-component vector of float)
102 0:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
103 0:63            Constant:
104 0:63              0 (const int)
105 0:63        move second child to first child ( temp 4-component vector of float)
106 0:63          color: direct index for structure ( temp 4-component vector of float)
107 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
108 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
109 0:63              Constant:
110 0:63                0 (const int)
111 0:63            Constant:
112 0:63              1 (const int)
113 0:63          direct index (layout( location=1) in 4-component vector of float)
114 0:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
115 0:63            Constant:
116 0:63              0 (const int)
117 0:63        move second child to first child ( temp 3-component vector of float)
118 0:63          position: direct index for structure ( temp 3-component vector of float)
119 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
120 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
121 0:63              Constant:
122 0:63                1 (const int)
123 0:63            Constant:
124 0:63              0 (const int)
125 0:63          direct index (layout( location=0) in 3-component vector of float)
126 0:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
127 0:63            Constant:
128 0:63              1 (const int)
129 0:63        move second child to first child ( temp 4-component vector of float)
130 0:63          color: direct index for structure ( temp 4-component vector of float)
131 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
132 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
133 0:63              Constant:
134 0:63                1 (const int)
135 0:63            Constant:
136 0:63              1 (const int)
137 0:63          direct index (layout( location=1) in 4-component vector of float)
138 0:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
139 0:63            Constant:
140 0:63              1 (const int)
141 0:63        move second child to first child ( temp 3-component vector of float)
142 0:63          position: direct index for structure ( temp 3-component vector of float)
143 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
144 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
145 0:63              Constant:
146 0:63                2 (const int)
147 0:63            Constant:
148 0:63              0 (const int)
149 0:63          direct index (layout( location=0) in 3-component vector of float)
150 0:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
151 0:63            Constant:
152 0:63              2 (const int)
153 0:63        move second child to first child ( temp 4-component vector of float)
154 0:63          color: direct index for structure ( temp 4-component vector of float)
155 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
156 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
157 0:63              Constant:
158 0:63                2 (const int)
159 0:63            Constant:
160 0:63              1 (const int)
161 0:63          direct index (layout( location=1) in 4-component vector of float)
162 0:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
163 0:63            Constant:
164 0:63              2 (const int)
165 0:63      move second child to first child ( temp uint)
166 0:?         'pointId' ( temp uint)
167 0:?         'pointId' ( in uint InvocationID)
168 0:63      move second child to first child ( temp uint)
169 0:?         'patchId' ( temp uint)
170 0:?         'patchId' ( in uint PrimitiveID)
171 0:63      Sequence
172 0:63        move second child to first child ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
173 0:63          'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
174 0:63          Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
175 0:?             'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
176 0:?             'pointId' ( temp uint)
177 0:?             'patchId' ( temp uint)
178 0:63        move second child to first child ( temp 3-component vector of float)
179 0:63          indirect index (layout( location=0) out 3-component vector of float)
180 0:?             '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float)
181 0:?             'pointId' ( in uint InvocationID)
182 0:63          position: direct index for structure ( temp 3-component vector of float)
183 0:63            'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
184 0:63            Constant:
185 0:63              0 (const int)
186 0:63        move second child to first child ( temp 4-component vector of float)
187 0:63          indirect index (layout( location=1) out 4-component vector of float)
188 0:?             '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float)
189 0:?             'pointId' ( in uint InvocationID)
190 0:63          color: direct index for structure ( temp 4-component vector of float)
191 0:63            'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
192 0:63            Constant:
193 0:63              1 (const int)
194 0:?       Barrier ( temp void)
195 0:?       Test condition and select ( temp void)
196 0:?         Condition
197 0:?         Compare Equal ( temp bool)
198 0:?           'pointId' ( in uint InvocationID)
199 0:?           Constant:
200 0:?             0 (const int)
201 0:?         true case
202 0:?         Sequence
203 0:?           move second child to first child ( temp structure{ temp 3-element array of float edges,  temp float inside})
204 0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
205 0:?             Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
206 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
207 0:?               'patchId' ( in uint PrimitiveID)
208 0:?           Sequence
209 0:?             move second child to first child ( temp float)
210 0:?               direct index ( patch out float TessLevelOuter)
211 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
212 0:?                 Constant:
213 0:?                   0 (const int)
214 0:?               direct index ( temp float)
215 0:?                 edges: direct index for structure ( temp 3-element array of float)
216 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
217 0:?                   Constant:
218 0:?                     0 (const int)
219 0:?                 Constant:
220 0:?                   0 (const int)
221 0:?             move second child to first child ( temp float)
222 0:?               direct index ( patch out float TessLevelOuter)
223 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
224 0:?                 Constant:
225 0:?                   1 (const int)
226 0:?               direct index ( temp float)
227 0:?                 edges: direct index for structure ( temp 3-element array of float)
228 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
229 0:?                   Constant:
230 0:?                     0 (const int)
231 0:?                 Constant:
232 0:?                   1 (const int)
233 0:?             move second child to first child ( temp float)
234 0:?               direct index ( patch out float TessLevelOuter)
235 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
236 0:?                 Constant:
237 0:?                   2 (const int)
238 0:?               direct index ( temp float)
239 0:?                 edges: direct index for structure ( temp 3-element array of float)
240 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
241 0:?                   Constant:
242 0:?                     0 (const int)
243 0:?                 Constant:
244 0:?                   2 (const int)
245 0:?             move second child to first child ( temp float)
246 0:?               direct index ( patch out float TessLevelInner)
247 0:?                 '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
248 0:?                 Constant:
249 0:?                   0 (const int)
250 0:?               inside: direct index for structure ( temp float)
251 0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
252 0:?                 Constant:
253 0:?                   1 (const int)
254 0:?   Linker Objects
255 0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
256 0:?     '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float)
257 0:?     '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float)
258 0:?     'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
259 0:?     'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
260 0:?     'pointId' ( in uint InvocationID)
261 0:?     'patchId' ( in uint PrimitiveID)
262 0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
263 0:?     '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
264
265
266 Linked tessellation control stage:
267
268
269 Shader version: 500
270 vertices = 3
271 vertex spacing = equal_spacing
272 triangle order = cw
273 0:? Sequence
274 0:37  Function Definition: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
275 0:37    Function Parameters: 
276 0:37      'inputPatch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
277 0:37      'patchId' ( in uint)
278 0:?     Sequence
279 0:42      move second child to first child ( temp float)
280 0:42        direct index ( temp float)
281 0:42          edges: direct index for structure ( temp 3-element array of float)
282 0:42            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
283 0:42            Constant:
284 0:42              0 (const int)
285 0:42          Constant:
286 0:42            0 (const int)
287 0:42        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
288 0:42          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
289 0:42          Constant:
290 0:42            0 (const uint)
291 0:43      move second child to first child ( temp float)
292 0:43        direct index ( temp float)
293 0:43          edges: direct index for structure ( temp 3-element array of float)
294 0:43            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
295 0:43            Constant:
296 0:43              0 (const int)
297 0:43          Constant:
298 0:43            1 (const int)
299 0:43        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
300 0:43          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
301 0:43          Constant:
302 0:43            0 (const uint)
303 0:44      move second child to first child ( temp float)
304 0:44        direct index ( temp float)
305 0:44          edges: direct index for structure ( temp 3-element array of float)
306 0:44            'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
307 0:44            Constant:
308 0:44              0 (const int)
309 0:44          Constant:
310 0:44            2 (const int)
311 0:44        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
312 0:44          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
313 0:44          Constant:
314 0:44            0 (const uint)
315 0:47      move second child to first child ( temp float)
316 0:47        inside: direct index for structure ( temp float)
317 0:47          'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
318 0:47          Constant:
319 0:47            1 (const int)
320 0:47        tessellationAmount: direct index for structure (layout( row_major std140) uniform float)
321 0:47          'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
322 0:47          Constant:
323 0:47            0 (const uint)
324 0:49      Branch: Return with expression
325 0:49        'output' ( temp structure{ temp 3-element array of float edges,  temp float inside})
326 0:63  Function Definition: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
327 0:63    Function Parameters: 
328 0:63      'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
329 0:63      'pointId' ( in uint)
330 0:63      'patchId' ( in uint)
331 0:?     Sequence
332 0:67      move second child to first child ( temp 3-component vector of float)
333 0:67        position: direct index for structure ( temp 3-component vector of float)
334 0:67          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
335 0:67          Constant:
336 0:67            0 (const int)
337 0:67        position: direct index for structure ( temp 3-component vector of float)
338 0:67          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
339 0:67            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
340 0:67            'pointId' ( in uint)
341 0:67          Constant:
342 0:67            0 (const int)
343 0:70      move second child to first child ( temp 4-component vector of float)
344 0:70        color: direct index for structure ( temp 4-component vector of float)
345 0:70          'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
346 0:70          Constant:
347 0:70            1 (const int)
348 0:70        color: direct index for structure ( temp 4-component vector of float)
349 0:70          indirect index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
350 0:70            'patch' ( in 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
351 0:70            'pointId' ( in uint)
352 0:70          Constant:
353 0:70            1 (const int)
354 0:72      Branch: Return with expression
355 0:72        'output' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
356 0:63  Function Definition: main( ( temp void)
357 0:63    Function Parameters: 
358 0:?     Sequence
359 0:63      Sequence
360 0:63        move second child to first child ( temp 3-component vector of float)
361 0:63          position: direct index for structure ( temp 3-component vector of float)
362 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
363 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
364 0:63              Constant:
365 0:63                0 (const int)
366 0:63            Constant:
367 0:63              0 (const int)
368 0:63          direct index (layout( location=0) in 3-component vector of float)
369 0:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
370 0:63            Constant:
371 0:63              0 (const int)
372 0:63        move second child to first child ( temp 4-component vector of float)
373 0:63          color: direct index for structure ( temp 4-component vector of float)
374 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
375 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
376 0:63              Constant:
377 0:63                0 (const int)
378 0:63            Constant:
379 0:63              1 (const int)
380 0:63          direct index (layout( location=1) in 4-component vector of float)
381 0:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
382 0:63            Constant:
383 0:63              0 (const int)
384 0:63        move second child to first child ( temp 3-component vector of float)
385 0:63          position: direct index for structure ( temp 3-component vector of float)
386 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
387 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
388 0:63              Constant:
389 0:63                1 (const int)
390 0:63            Constant:
391 0:63              0 (const int)
392 0:63          direct index (layout( location=0) in 3-component vector of float)
393 0:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
394 0:63            Constant:
395 0:63              1 (const int)
396 0:63        move second child to first child ( temp 4-component vector of float)
397 0:63          color: direct index for structure ( temp 4-component vector of float)
398 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
399 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
400 0:63              Constant:
401 0:63                1 (const int)
402 0:63            Constant:
403 0:63              1 (const int)
404 0:63          direct index (layout( location=1) in 4-component vector of float)
405 0:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
406 0:63            Constant:
407 0:63              1 (const int)
408 0:63        move second child to first child ( temp 3-component vector of float)
409 0:63          position: direct index for structure ( temp 3-component vector of float)
410 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
411 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
412 0:63              Constant:
413 0:63                2 (const int)
414 0:63            Constant:
415 0:63              0 (const int)
416 0:63          direct index (layout( location=0) in 3-component vector of float)
417 0:?             'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
418 0:63            Constant:
419 0:63              2 (const int)
420 0:63        move second child to first child ( temp 4-component vector of float)
421 0:63          color: direct index for structure ( temp 4-component vector of float)
422 0:63            direct index ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
423 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
424 0:63              Constant:
425 0:63                2 (const int)
426 0:63            Constant:
427 0:63              1 (const int)
428 0:63          direct index (layout( location=1) in 4-component vector of float)
429 0:?             'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
430 0:63            Constant:
431 0:63              2 (const int)
432 0:63      move second child to first child ( temp uint)
433 0:?         'pointId' ( temp uint)
434 0:?         'pointId' ( in uint InvocationID)
435 0:63      move second child to first child ( temp uint)
436 0:?         'patchId' ( temp uint)
437 0:?         'patchId' ( in uint PrimitiveID)
438 0:63      Sequence
439 0:63        move second child to first child ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
440 0:63          'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
441 0:63          Function Call: @main(struct-HullInputType-vf3-vf41[3];u1;u1; ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
442 0:?             'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
443 0:?             'pointId' ( temp uint)
444 0:?             'patchId' ( temp uint)
445 0:63        move second child to first child ( temp 3-component vector of float)
446 0:63          indirect index (layout( location=0) out 3-component vector of float)
447 0:?             '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float)
448 0:?             'pointId' ( in uint InvocationID)
449 0:63          position: direct index for structure ( temp 3-component vector of float)
450 0:63            'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
451 0:63            Constant:
452 0:63              0 (const int)
453 0:63        move second child to first child ( temp 4-component vector of float)
454 0:63          indirect index (layout( location=1) out 4-component vector of float)
455 0:?             '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float)
456 0:?             'pointId' ( in uint InvocationID)
457 0:63          color: direct index for structure ( temp 4-component vector of float)
458 0:63            'flattenTemp' ( temp structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
459 0:63            Constant:
460 0:63              1 (const int)
461 0:?       Barrier ( temp void)
462 0:?       Test condition and select ( temp void)
463 0:?         Condition
464 0:?         Compare Equal ( temp bool)
465 0:?           'pointId' ( in uint InvocationID)
466 0:?           Constant:
467 0:?             0 (const int)
468 0:?         true case
469 0:?         Sequence
470 0:?           move second child to first child ( temp structure{ temp 3-element array of float edges,  temp float inside})
471 0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
472 0:?             Function Call: ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1; ( temp structure{ temp 3-element array of float edges,  temp float inside})
473 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float position,  temp 4-component vector of float color})
474 0:?               'patchId' ( in uint PrimitiveID)
475 0:?           Sequence
476 0:?             move second child to first child ( temp float)
477 0:?               direct index ( patch out float TessLevelOuter)
478 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
479 0:?                 Constant:
480 0:?                   0 (const int)
481 0:?               direct index ( temp float)
482 0:?                 edges: direct index for structure ( temp 3-element array of float)
483 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
484 0:?                   Constant:
485 0:?                     0 (const int)
486 0:?                 Constant:
487 0:?                   0 (const int)
488 0:?             move second child to first child ( temp float)
489 0:?               direct index ( patch out float TessLevelOuter)
490 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
491 0:?                 Constant:
492 0:?                   1 (const int)
493 0:?               direct index ( temp float)
494 0:?                 edges: direct index for structure ( temp 3-element array of float)
495 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
496 0:?                   Constant:
497 0:?                     0 (const int)
498 0:?                 Constant:
499 0:?                   1 (const int)
500 0:?             move second child to first child ( temp float)
501 0:?               direct index ( patch out float TessLevelOuter)
502 0:?                 '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
503 0:?                 Constant:
504 0:?                   2 (const int)
505 0:?               direct index ( temp float)
506 0:?                 edges: direct index for structure ( temp 3-element array of float)
507 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
508 0:?                   Constant:
509 0:?                     0 (const int)
510 0:?                 Constant:
511 0:?                   2 (const int)
512 0:?             move second child to first child ( temp float)
513 0:?               direct index ( patch out float TessLevelInner)
514 0:?                 '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
515 0:?                 Constant:
516 0:?                   0 (const int)
517 0:?               inside: direct index for structure ( temp float)
518 0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float edges,  temp float inside})
519 0:?                 Constant:
520 0:?                   1 (const int)
521 0:?   Linker Objects
522 0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform float tessellationAmount, layout( row_major std140) uniform 3-component vector of float padding})
523 0:?     '@entryPointOutput.position' (layout( location=0) out 3-element array of 3-component vector of float)
524 0:?     '@entryPointOutput.color' (layout( location=1) out 3-element array of 4-component vector of float)
525 0:?     'patch.position' (layout( location=0) in 3-element array of 3-component vector of float)
526 0:?     'patch.color' (layout( location=1) in 3-element array of 4-component vector of float)
527 0:?     'pointId' ( in uint InvocationID)
528 0:?     'patchId' ( in uint PrimitiveID)
529 0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
530 0:?     '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
531
532 // Module Version 10000
533 // Generated by (magic number): 8000a
534 // Id's are bound by 159
535
536                               Capability Tessellation
537                1:             ExtInstImport  "GLSL.std.450"
538                               MemoryModel Logical GLSL450
539                               EntryPoint TessellationControl 4  "main" 73 80 99 102 113 120 142 155
540                               ExecutionMode 4 OutputVertices 3
541                               ExecutionMode 4 Triangles
542                               ExecutionMode 4 SpacingEqual
543                               ExecutionMode 4 VertexOrderCw
544                               Source HLSL 500
545                               Name 4  "main"
546                               Name 9  "HullInputType"
547                               MemberName 9(HullInputType) 0  "position"
548                               MemberName 9(HullInputType) 1  "color"
549                               Name 16  "ConstantOutputType"
550                               MemberName 16(ConstantOutputType) 0  "edges"
551                               MemberName 16(ConstantOutputType) 1  "inside"
552                               Name 20  "ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;"
553                               Name 18  "inputPatch"
554                               Name 19  "patchId"
555                               Name 22  "HullOutputType"
556                               MemberName 22(HullOutputType) 0  "position"
557                               MemberName 22(HullOutputType) 1  "color"
558                               Name 27  "@main(struct-HullInputType-vf3-vf41[3];u1;u1;"
559                               Name 24  "patch"
560                               Name 25  "pointId"
561                               Name 26  "patchId"
562                               Name 30  "output"
563                               Name 33  "TessellationBuffer"
564                               MemberName 33(TessellationBuffer) 0  "tessellationAmount"
565                               MemberName 33(TessellationBuffer) 1  "padding"
566                               Name 35  ""
567                               Name 56  "output"
568                               Name 70  "patch"
569                               Name 73  "patch.position"
570                               Name 80  "patch.color"
571                               Name 97  "pointId"
572                               Name 99  "pointId"
573                               Name 101  "patchId"
574                               Name 102  "patchId"
575                               Name 104  "flattenTemp"
576                               Name 105  "param"
577                               Name 107  "param"
578                               Name 109  "param"
579                               Name 113  "@entryPointOutput.position"
580                               Name 120  "@entryPointOutput.color"
581                               Name 134  "@patchConstantResult"
582                               Name 135  "param"
583                               Name 137  "param"
584                               Name 142  "@patchConstantOutput.edges"
585                               Name 155  "@patchConstantOutput.inside"
586                               MemberDecorate 33(TessellationBuffer) 0 Offset 0
587                               MemberDecorate 33(TessellationBuffer) 1 Offset 4
588                               Decorate 33(TessellationBuffer) Block
589                               Decorate 35 DescriptorSet 0
590                               Decorate 35 Binding 0
591                               Decorate 73(patch.position) Location 0
592                               Decorate 80(patch.color) Location 1
593                               Decorate 99(pointId) BuiltIn InvocationId
594                               Decorate 102(patchId) BuiltIn PrimitiveId
595                               Decorate 113(@entryPointOutput.position) Location 0
596                               Decorate 120(@entryPointOutput.color) Location 1
597                               Decorate 142(@patchConstantOutput.edges) Patch
598                               Decorate 142(@patchConstantOutput.edges) BuiltIn TessLevelOuter
599                               Decorate 155(@patchConstantOutput.inside) Patch
600                               Decorate 155(@patchConstantOutput.inside) BuiltIn TessLevelInner
601                2:             TypeVoid
602                3:             TypeFunction 2
603                6:             TypeFloat 32
604                7:             TypeVector 6(float) 3
605                8:             TypeVector 6(float) 4
606 9(HullInputType):             TypeStruct 7(fvec3) 8(fvec4)
607               10:             TypeInt 32 0
608               11:     10(int) Constant 3
609               12:             TypeArray 9(HullInputType) 11
610               13:             TypePointer Function 12
611               14:             TypePointer Function 10(int)
612               15:             TypeArray 6(float) 11
613 16(ConstantOutputType):             TypeStruct 15 6(float)
614               17:             TypeFunction 16(ConstantOutputType) 13(ptr) 14(ptr)
615 22(HullOutputType):             TypeStruct 7(fvec3) 8(fvec4)
616               23:             TypeFunction 22(HullOutputType) 13(ptr) 14(ptr) 14(ptr)
617               29:             TypePointer Function 16(ConstantOutputType)
618               31:             TypeInt 32 1
619               32:     31(int) Constant 0
620 33(TessellationBuffer):             TypeStruct 6(float) 7(fvec3)
621               34:             TypePointer Uniform 33(TessellationBuffer)
622               35:     34(ptr) Variable Uniform
623               36:             TypePointer Uniform 6(float)
624               39:             TypePointer Function 6(float)
625               41:     31(int) Constant 1
626               45:     31(int) Constant 2
627               55:             TypePointer Function 22(HullOutputType)
628               58:             TypePointer Function 7(fvec3)
629               63:             TypePointer Function 8(fvec4)
630               71:             TypeArray 7(fvec3) 11
631               72:             TypePointer Input 71
632 73(patch.position):     72(ptr) Variable Input
633               74:             TypePointer Input 7(fvec3)
634               78:             TypeArray 8(fvec4) 11
635               79:             TypePointer Input 78
636  80(patch.color):     79(ptr) Variable Input
637               81:             TypePointer Input 8(fvec4)
638               98:             TypePointer Input 10(int)
639      99(pointId):     98(ptr) Variable Input
640     102(patchId):     98(ptr) Variable Input
641              112:             TypePointer Output 71
642 113(@entryPointOutput.position):    112(ptr) Variable Output
643              117:             TypePointer Output 7(fvec3)
644              119:             TypePointer Output 78
645 120(@entryPointOutput.color):    119(ptr) Variable Output
646              124:             TypePointer Output 8(fvec4)
647              126:     10(int) Constant 2
648              127:     10(int) Constant 4
649              128:     10(int) Constant 0
650              130:             TypeBool
651              140:             TypeArray 6(float) 127
652              141:             TypePointer Output 140
653 142(@patchConstantOutput.edges):    141(ptr) Variable Output
654              145:             TypePointer Output 6(float)
655              153:             TypeArray 6(float) 126
656              154:             TypePointer Output 153
657 155(@patchConstantOutput.inside):    154(ptr) Variable Output
658          4(main):           2 Function None 3
659                5:             Label
660        70(patch):     13(ptr) Variable Function
661      97(pointId):     14(ptr) Variable Function
662     101(patchId):     14(ptr) Variable Function
663 104(flattenTemp):     55(ptr) Variable Function
664       105(param):     13(ptr) Variable Function
665       107(param):     14(ptr) Variable Function
666       109(param):     14(ptr) Variable Function
667 134(@patchConstantResult):     29(ptr) Variable Function
668       135(param):     13(ptr) Variable Function
669       137(param):     14(ptr) Variable Function
670               75:     74(ptr) AccessChain 73(patch.position) 32
671               76:    7(fvec3) Load 75
672               77:     58(ptr) AccessChain 70(patch) 32 32
673                               Store 77 76
674               82:     81(ptr) AccessChain 80(patch.color) 32
675               83:    8(fvec4) Load 82
676               84:     63(ptr) AccessChain 70(patch) 32 41
677                               Store 84 83
678               85:     74(ptr) AccessChain 73(patch.position) 41
679               86:    7(fvec3) Load 85
680               87:     58(ptr) AccessChain 70(patch) 41 32
681                               Store 87 86
682               88:     81(ptr) AccessChain 80(patch.color) 41
683               89:    8(fvec4) Load 88
684               90:     63(ptr) AccessChain 70(patch) 41 41
685                               Store 90 89
686               91:     74(ptr) AccessChain 73(patch.position) 45
687               92:    7(fvec3) Load 91
688               93:     58(ptr) AccessChain 70(patch) 45 32
689                               Store 93 92
690               94:     81(ptr) AccessChain 80(patch.color) 45
691               95:    8(fvec4) Load 94
692               96:     63(ptr) AccessChain 70(patch) 45 41
693                               Store 96 95
694              100:     10(int) Load 99(pointId)
695                               Store 97(pointId) 100
696              103:     10(int) Load 102(patchId)
697                               Store 101(patchId) 103
698              106:          12 Load 70(patch)
699                               Store 105(param) 106
700              108:     10(int) Load 97(pointId)
701                               Store 107(param) 108
702              110:     10(int) Load 101(patchId)
703                               Store 109(param) 110
704              111:22(HullOutputType) FunctionCall 27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;) 105(param) 107(param) 109(param)
705                               Store 104(flattenTemp) 111
706              114:     10(int) Load 99(pointId)
707              115:     58(ptr) AccessChain 104(flattenTemp) 32
708              116:    7(fvec3) Load 115
709              118:    117(ptr) AccessChain 113(@entryPointOutput.position) 114
710                               Store 118 116
711              121:     10(int) Load 99(pointId)
712              122:     63(ptr) AccessChain 104(flattenTemp) 41
713              123:    8(fvec4) Load 122
714              125:    124(ptr) AccessChain 120(@entryPointOutput.color) 121
715                               Store 125 123
716                               ControlBarrier 126 127 128
717              129:     10(int) Load 99(pointId)
718              131:   130(bool) IEqual 129 32
719                               SelectionMerge 133 None
720                               BranchConditional 131 132 133
721              132:               Label
722              136:          12   Load 70(patch)
723                                 Store 135(param) 136
724              138:     10(int)   Load 102(patchId)
725                                 Store 137(param) 138
726              139:16(ConstantOutputType)   FunctionCall 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;) 135(param) 137(param)
727                                 Store 134(@patchConstantResult) 139
728              143:     39(ptr)   AccessChain 134(@patchConstantResult) 32 32
729              144:    6(float)   Load 143
730              146:    145(ptr)   AccessChain 142(@patchConstantOutput.edges) 32
731                                 Store 146 144
732              147:     39(ptr)   AccessChain 134(@patchConstantResult) 32 41
733              148:    6(float)   Load 147
734              149:    145(ptr)   AccessChain 142(@patchConstantOutput.edges) 41
735                                 Store 149 148
736              150:     39(ptr)   AccessChain 134(@patchConstantResult) 32 45
737              151:    6(float)   Load 150
738              152:    145(ptr)   AccessChain 142(@patchConstantOutput.edges) 45
739                                 Store 152 151
740              156:     39(ptr)   AccessChain 134(@patchConstantResult) 41
741              157:    6(float)   Load 156
742              158:    145(ptr)   AccessChain 155(@patchConstantOutput.inside) 32
743                                 Store 158 157
744                                 Branch 133
745              133:             Label
746                               Return
747                               FunctionEnd
748 20(ColorPatchConstantFunction(struct-HullInputType-vf3-vf41[3];u1;):16(ConstantOutputType) Function None 17
749   18(inputPatch):     13(ptr) FunctionParameter
750      19(patchId):     14(ptr) FunctionParameter
751               21:             Label
752       30(output):     29(ptr) Variable Function
753               37:     36(ptr) AccessChain 35 32
754               38:    6(float) Load 37
755               40:     39(ptr) AccessChain 30(output) 32 32
756                               Store 40 38
757               42:     36(ptr) AccessChain 35 32
758               43:    6(float) Load 42
759               44:     39(ptr) AccessChain 30(output) 32 41
760                               Store 44 43
761               46:     36(ptr) AccessChain 35 32
762               47:    6(float) Load 46
763               48:     39(ptr) AccessChain 30(output) 32 45
764                               Store 48 47
765               49:     36(ptr) AccessChain 35 32
766               50:    6(float) Load 49
767               51:     39(ptr) AccessChain 30(output) 41
768                               Store 51 50
769               52:16(ConstantOutputType) Load 30(output)
770                               ReturnValue 52
771                               FunctionEnd
772 27(@main(struct-HullInputType-vf3-vf41[3];u1;u1;):22(HullOutputType) Function None 23
773        24(patch):     13(ptr) FunctionParameter
774      25(pointId):     14(ptr) FunctionParameter
775      26(patchId):     14(ptr) FunctionParameter
776               28:             Label
777       56(output):     55(ptr) Variable Function
778               57:     10(int) Load 25(pointId)
779               59:     58(ptr) AccessChain 24(patch) 57 32
780               60:    7(fvec3) Load 59
781               61:     58(ptr) AccessChain 56(output) 32
782                               Store 61 60
783               62:     10(int) Load 25(pointId)
784               64:     63(ptr) AccessChain 24(patch) 62 41
785               65:    8(fvec4) Load 64
786               66:     63(ptr) AccessChain 56(output) 41
787                               Store 66 65
788               67:22(HullOutputType) Load 56(output)
789                               ReturnValue 67
790                               FunctionEnd