c9496ac1e57ea1ffb08140df74b7c453de7baee1
[platform/upstream/glslang.git] / Test / baseResults / hlsl.gs-hs-mix.tesc.out
1 hlsl.gs-hs-mix.tesc
2 Shader version: 500
3 vertices = 3
4 vertex spacing = fractional_odd_spacing
5 triangle order = ccw
6 0:? Sequence
7 0:31  Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
8 0:31    Function Parameters: 
9 0:31      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
10 0:?     Sequence
11 0:32      Sequence
12 0:32        move second child to first child ( temp 3-component vector of float)
13 0:32          'roundedEdgeTessFactor' ( temp 3-component vector of float)
14 0:32          tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
15 0:32            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
16 0:32            Constant:
17 0:32              6 (const uint)
18 0:33      Sequence
19 0:33        move second child to first child ( temp float)
20 0:33          'roundedInsideTessFactor' ( temp float)
21 0:33          Constant:
22 0:33            3.000000
23 0:34      Sequence
24 0:34        move second child to first child ( temp float)
25 0:34          'insideTessFactor' ( temp float)
26 0:34          Constant:
27 0:34            1.000000
28 0:39      move second child to first child ( temp float)
29 0:39        direct index ( temp float)
30 0:39          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
31 0:39            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
32 0:39            Constant:
33 0:39              0 (const int)
34 0:39          Constant:
35 0:39            0 (const int)
36 0:39        direct index ( temp float)
37 0:39          'roundedEdgeTessFactor' ( temp 3-component vector of float)
38 0:39          Constant:
39 0:39            0 (const int)
40 0:40      move second child to first child ( temp float)
41 0:40        direct index ( temp float)
42 0:40          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
43 0:40            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
44 0:40            Constant:
45 0:40              0 (const int)
46 0:40          Constant:
47 0:40            1 (const int)
48 0:40        direct index ( temp float)
49 0:40          'roundedEdgeTessFactor' ( temp 3-component vector of float)
50 0:40          Constant:
51 0:40            1 (const int)
52 0:41      move second child to first child ( temp float)
53 0:41        direct index ( temp float)
54 0:41          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
55 0:41            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
56 0:41            Constant:
57 0:41              0 (const int)
58 0:41          Constant:
59 0:41            2 (const int)
60 0:41        direct index ( temp float)
61 0:41          'roundedEdgeTessFactor' ( temp 3-component vector of float)
62 0:41          Constant:
63 0:41            2 (const int)
64 0:42      move second child to first child ( temp float)
65 0:42        InsideTessFactor: direct index for structure ( temp float)
66 0:42          'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
67 0:42          Constant:
68 0:42            1 (const int)
69 0:42        'roundedInsideTessFactor' ( temp float)
70 0:45      move second child to first child ( temp 3-component vector of float)
71 0:45        direct index ( temp 3-component vector of float)
72 0:45          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
73 0:45            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
74 0:45            Constant:
75 0:45              2 (const int)
76 0:45          Constant:
77 0:45            0 (const int)
78 0:45        NormalWS: direct index for structure ( temp 3-component vector of float)
79 0:45          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
80 0:45            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
81 0:45            Constant:
82 0:45              0 (const int)
83 0:45          Constant:
84 0:45            1 (const int)
85 0:46      move second child to first child ( temp 3-component vector of float)
86 0:46        direct index ( temp 3-component vector of float)
87 0:46          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
88 0:46            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
89 0:46            Constant:
90 0:46              2 (const int)
91 0:46          Constant:
92 0:46            1 (const int)
93 0:46        NormalWS: direct index for structure ( temp 3-component vector of float)
94 0:46          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
95 0:46            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
96 0:46            Constant:
97 0:46              1 (const int)
98 0:46          Constant:
99 0:46            1 (const int)
100 0:47      move second child to first child ( temp 3-component vector of float)
101 0:47        direct index ( temp 3-component vector of float)
102 0:47          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
103 0:47            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
104 0:47            Constant:
105 0:47              2 (const int)
106 0:47          Constant:
107 0:47            2 (const int)
108 0:47        NormalWS: direct index for structure ( temp 3-component vector of float)
109 0:47          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
110 0:47            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
111 0:47            Constant:
112 0:47              2 (const int)
113 0:47          Constant:
114 0:47            1 (const int)
115 0:49      Branch: Return with expression
116 0:49        'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
117 0:61  Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
118 0:61    Function Parameters: 
119 0:61      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
120 0:61      'id' ( in uint)
121 0:?     Sequence
122 0:63      move second child to first child ( temp 3-component vector of float)
123 0:63        PositionWS: direct index for structure ( temp 3-component vector of float)
124 0:63          'output' ( temp structure{ temp 3-component vector of float PositionWS})
125 0:63          Constant:
126 0:63            0 (const int)
127 0:63        PositionWS: direct index for structure ( temp 3-component vector of float)
128 0:63          indirect index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
129 0:63            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
130 0:63            'id' ( in uint)
131 0:63          Constant:
132 0:63            0 (const int)
133 0:64      Branch: Return with expression
134 0:64        'output' ( temp structure{ temp 3-component vector of float PositionWS})
135 0:61  Function Definition: HSMain( ( temp void)
136 0:61    Function Parameters: 
137 0:?     Sequence
138 0:61      Sequence
139 0:61        move second child to first child ( temp 3-component vector of float)
140 0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
141 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
142 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
143 0:61              Constant:
144 0:61                0 (const int)
145 0:61            Constant:
146 0:61              0 (const int)
147 0:61          direct index (layout( location=0) in 3-component vector of float)
148 0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
149 0:61            Constant:
150 0:61              0 (const int)
151 0:61        move second child to first child ( temp 3-component vector of float)
152 0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
153 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
154 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
155 0:61              Constant:
156 0:61                0 (const int)
157 0:61            Constant:
158 0:61              1 (const int)
159 0:61          direct index (layout( location=1) in 3-component vector of float)
160 0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
161 0:61            Constant:
162 0:61              0 (const int)
163 0:61        move second child to first child ( temp 3-component vector of float)
164 0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
165 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
166 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
167 0:61              Constant:
168 0:61                1 (const int)
169 0:61            Constant:
170 0:61              0 (const int)
171 0:61          direct index (layout( location=0) in 3-component vector of float)
172 0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
173 0:61            Constant:
174 0:61              1 (const int)
175 0:61        move second child to first child ( temp 3-component vector of float)
176 0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
177 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
178 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
179 0:61              Constant:
180 0:61                1 (const int)
181 0:61            Constant:
182 0:61              1 (const int)
183 0:61          direct index (layout( location=1) in 3-component vector of float)
184 0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
185 0:61            Constant:
186 0:61              1 (const int)
187 0:61        move second child to first child ( temp 3-component vector of float)
188 0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
189 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
190 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
191 0:61              Constant:
192 0:61                2 (const int)
193 0:61            Constant:
194 0:61              0 (const int)
195 0:61          direct index (layout( location=0) in 3-component vector of float)
196 0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
197 0:61            Constant:
198 0:61              2 (const int)
199 0:61        move second child to first child ( temp 3-component vector of float)
200 0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
201 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
202 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
203 0:61              Constant:
204 0:61                2 (const int)
205 0:61            Constant:
206 0:61              1 (const int)
207 0:61          direct index (layout( location=1) in 3-component vector of float)
208 0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
209 0:61            Constant:
210 0:61              2 (const int)
211 0:61      move second child to first child ( temp uint)
212 0:?         'id' ( temp uint)
213 0:?         'id' ( in uint InvocationID)
214 0:61      Sequence
215 0:61        move second child to first child ( temp 3-component vector of float)
216 0:61          indirect index (layout( location=0) out 3-component vector of float)
217 0:?             '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float)
218 0:?             'id' ( in uint InvocationID)
219 0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
220 0:61            Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
221 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
222 0:?               'id' ( temp uint)
223 0:61            Constant:
224 0:61              0 (const int)
225 0:?       Barrier ( temp void)
226 0:?       Test condition and select ( temp void)
227 0:?         Condition
228 0:?         Compare Equal ( temp bool)
229 0:?           'id' ( in uint InvocationID)
230 0:?           Constant:
231 0:?             0 (const int)
232 0:?         true case
233 0:?         Sequence
234 0:?           move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
235 0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
236 0:?             Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
237 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
238 0:?           Sequence
239 0:?             move second child to first child ( temp float)
240 0:?               direct index ( patch out float TessLevelOuter)
241 0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
242 0:?                 Constant:
243 0:?                   0 (const int)
244 0:?               direct index ( temp float)
245 0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
246 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
247 0:?                   Constant:
248 0:?                     0 (const int)
249 0:?                 Constant:
250 0:?                   0 (const int)
251 0:?             move second child to first child ( temp float)
252 0:?               direct index ( patch out float TessLevelOuter)
253 0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
254 0:?                 Constant:
255 0:?                   1 (const int)
256 0:?               direct index ( temp float)
257 0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
258 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
259 0:?                   Constant:
260 0:?                     0 (const int)
261 0:?                 Constant:
262 0:?                   1 (const int)
263 0:?             move second child to first child ( temp float)
264 0:?               direct index ( patch out float TessLevelOuter)
265 0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
266 0:?                 Constant:
267 0:?                   2 (const int)
268 0:?               direct index ( temp float)
269 0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
270 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
271 0:?                   Constant:
272 0:?                     0 (const int)
273 0:?                 Constant:
274 0:?                   2 (const int)
275 0:?             move second child to first child ( temp float)
276 0:?               direct index ( patch out float TessLevelInner)
277 0:?                 '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
278 0:?                 Constant:
279 0:?                   0 (const int)
280 0:?               InsideTessFactor: direct index for structure ( temp float)
281 0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
282 0:?                 Constant:
283 0:?                   1 (const int)
284 0:?             move second child to first child ( temp 3-component vector of float)
285 0:?               '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float)
286 0:?               direct index ( temp 3-component vector of float)
287 0:?                 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
288 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
289 0:?                   Constant:
290 0:?                     2 (const int)
291 0:?                 Constant:
292 0:?                   0 (const int)
293 0:?             move second child to first child ( temp 3-component vector of float)
294 0:?               '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float)
295 0:?               direct index ( temp 3-component vector of float)
296 0:?                 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
297 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
298 0:?                   Constant:
299 0:?                     2 (const int)
300 0:?                 Constant:
301 0:?                   1 (const int)
302 0:?             move second child to first child ( temp 3-component vector of float)
303 0:?               '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)
304 0:?               direct index ( temp 3-component vector of float)
305 0:?                 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
306 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
307 0:?                   Constant:
308 0:?                     2 (const int)
309 0:?                 Constant:
310 0:?                   2 (const int)
311 0:84  Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void)
312 0:84    Function Parameters: 
313 0:84      'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
314 0:84      'output' ( out structure{ temp 4-component vector of float PositionCS})
315 0:?     Sequence
316 0:86      Sequence
317 0:86        move second child to first child ( temp 3-component vector of float)
318 0:86          'P0' ( temp 3-component vector of float)
319 0:86          vector swizzle ( temp 3-component vector of float)
320 0:86            PositionWS: direct index for structure ( temp 3-component vector of float)
321 0:86              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
322 0:86                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
323 0:86                Constant:
324 0:86                  0 (const int)
325 0:86              Constant:
326 0:86                0 (const int)
327 0:86            Sequence
328 0:86              Constant:
329 0:86                0 (const int)
330 0:86              Constant:
331 0:86                1 (const int)
332 0:86              Constant:
333 0:86                2 (const int)
334 0:87      Sequence
335 0:87        move second child to first child ( temp 3-component vector of float)
336 0:87          'P1' ( temp 3-component vector of float)
337 0:87          vector swizzle ( temp 3-component vector of float)
338 0:87            PositionWS: direct index for structure ( temp 3-component vector of float)
339 0:87              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
340 0:87                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
341 0:87                Constant:
342 0:87                  1 (const int)
343 0:87              Constant:
344 0:87                0 (const int)
345 0:87            Sequence
346 0:87              Constant:
347 0:87                0 (const int)
348 0:87              Constant:
349 0:87                1 (const int)
350 0:87              Constant:
351 0:87                2 (const int)
352 0:88      Sequence
353 0:88        move second child to first child ( temp 3-component vector of float)
354 0:88          'P2' ( temp 3-component vector of float)
355 0:88          vector swizzle ( temp 3-component vector of float)
356 0:88            PositionWS: direct index for structure ( temp 3-component vector of float)
357 0:88              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
358 0:88                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
359 0:88                Constant:
360 0:88                  2 (const int)
361 0:88              Constant:
362 0:88                0 (const int)
363 0:88            Sequence
364 0:88              Constant:
365 0:88                0 (const int)
366 0:88              Constant:
367 0:88                1 (const int)
368 0:88              Constant:
369 0:88                2 (const int)
370 0:92      add second child into first child ( temp float)
371 0:92        direct index ( temp float)
372 0:92          'P0' ( temp 3-component vector of float)
373 0:92          Constant:
374 0:92            2 (const int)
375 0:92        Constant:
376 0:92          0.001000
377 0:93      add second child into first child ( temp float)
378 0:93        direct index ( temp float)
379 0:93          'P1' ( temp 3-component vector of float)
380 0:93          Constant:
381 0:93            2 (const int)
382 0:93        Constant:
383 0:93          0.001000
384 0:94      add second child into first child ( temp float)
385 0:94        direct index ( temp float)
386 0:94          'P2' ( temp 3-component vector of float)
387 0:94          Constant:
388 0:94            2 (const int)
389 0:94        Constant:
390 0:94          0.001000
391 0:95      Sequence
392 0:95        move second child to first child ( temp 4-component vector of float)
393 0:95          'Q0' ( temp 4-component vector of float)
394 0:95          vector-times-matrix ( temp 4-component vector of float)
395 0:95            Construct vec4 ( temp 4-component vector of float)
396 0:95              'P0' ( temp 3-component vector of float)
397 0:95              Constant:
398 0:95                1.000000
399 0:95            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
400 0:95              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
401 0:95              Constant:
402 0:95                1 (const uint)
403 0:96      Sequence
404 0:96        move second child to first child ( temp 4-component vector of float)
405 0:96          'Q1' ( temp 4-component vector of float)
406 0:96          vector-times-matrix ( temp 4-component vector of float)
407 0:96            Construct vec4 ( temp 4-component vector of float)
408 0:96              'P1' ( temp 3-component vector of float)
409 0:96              Constant:
410 0:96                1.000000
411 0:96            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
412 0:96              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
413 0:96              Constant:
414 0:96                1 (const uint)
415 0:97      Sequence
416 0:97        move second child to first child ( temp 4-component vector of float)
417 0:97          'Q2' ( temp 4-component vector of float)
418 0:97          vector-times-matrix ( temp 4-component vector of float)
419 0:97            Construct vec4 ( temp 4-component vector of float)
420 0:97              'P2' ( temp 3-component vector of float)
421 0:97              Constant:
422 0:97                1.000000
423 0:97            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
424 0:97              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
425 0:97              Constant:
426 0:97                1 (const uint)
427 0:100      move second child to first child ( temp 4-component vector of float)
428 0:100        PositionCS: direct index for structure ( temp 4-component vector of float)
429 0:100          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
430 0:100          Constant:
431 0:100            0 (const int)
432 0:100        'Q0' ( temp 4-component vector of float)
433 0:101      Constant:
434 0:101        0.000000
435 0:102      move second child to first child ( temp 4-component vector of float)
436 0:102        PositionCS: direct index for structure ( temp 4-component vector of float)
437 0:102          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
438 0:102          Constant:
439 0:102            0 (const int)
440 0:102        'Q1' ( temp 4-component vector of float)
441 0:103      Constant:
442 0:103        0.000000
443 0:104      Constant:
444 0:104        0.000000
445 0:107      move second child to first child ( temp 4-component vector of float)
446 0:107        PositionCS: direct index for structure ( temp 4-component vector of float)
447 0:107          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
448 0:107          Constant:
449 0:107            0 (const int)
450 0:107        'Q1' ( temp 4-component vector of float)
451 0:108      Constant:
452 0:108        0.000000
453 0:109      move second child to first child ( temp 4-component vector of float)
454 0:109        PositionCS: direct index for structure ( temp 4-component vector of float)
455 0:109          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
456 0:109          Constant:
457 0:109            0 (const int)
458 0:109        'Q2' ( temp 4-component vector of float)
459 0:110      Constant:
460 0:110        0.000000
461 0:111      Constant:
462 0:111        0.000000
463 0:114      move second child to first child ( temp 4-component vector of float)
464 0:114        PositionCS: direct index for structure ( temp 4-component vector of float)
465 0:114          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
466 0:114          Constant:
467 0:114            0 (const int)
468 0:114        'Q2' ( temp 4-component vector of float)
469 0:115      Constant:
470 0:115        0.000000
471 0:116      move second child to first child ( temp 4-component vector of float)
472 0:116        PositionCS: direct index for structure ( temp 4-component vector of float)
473 0:116          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
474 0:116          Constant:
475 0:116            0 (const int)
476 0:116        'Q0' ( temp 4-component vector of float)
477 0:117      Constant:
478 0:117        0.000000
479 0:118      Constant:
480 0:118        0.000000
481 0:?   Linker Objects
482 0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
483 0:?     '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float)
484 0:?     'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
485 0:?     'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
486 0:?     'id' ( in uint InvocationID)
487 0:?     '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
488 0:?     '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
489 0:?     '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float)
490 0:?     '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float)
491 0:?     '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)
492
493
494 Linked tessellation control stage:
495
496
497 Shader version: 500
498 vertices = 3
499 vertex spacing = fractional_odd_spacing
500 triangle order = ccw
501 0:? Sequence
502 0:31  Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
503 0:31    Function Parameters: 
504 0:31      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
505 0:?     Sequence
506 0:32      Sequence
507 0:32        move second child to first child ( temp 3-component vector of float)
508 0:32          'roundedEdgeTessFactor' ( temp 3-component vector of float)
509 0:32          tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
510 0:32            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
511 0:32            Constant:
512 0:32              6 (const uint)
513 0:33      Sequence
514 0:33        move second child to first child ( temp float)
515 0:33          'roundedInsideTessFactor' ( temp float)
516 0:33          Constant:
517 0:33            3.000000
518 0:34      Sequence
519 0:34        move second child to first child ( temp float)
520 0:34          'insideTessFactor' ( temp float)
521 0:34          Constant:
522 0:34            1.000000
523 0:39      move second child to first child ( temp float)
524 0:39        direct index ( temp float)
525 0:39          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
526 0:39            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
527 0:39            Constant:
528 0:39              0 (const int)
529 0:39          Constant:
530 0:39            0 (const int)
531 0:39        direct index ( temp float)
532 0:39          'roundedEdgeTessFactor' ( temp 3-component vector of float)
533 0:39          Constant:
534 0:39            0 (const int)
535 0:40      move second child to first child ( temp float)
536 0:40        direct index ( temp float)
537 0:40          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
538 0:40            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
539 0:40            Constant:
540 0:40              0 (const int)
541 0:40          Constant:
542 0:40            1 (const int)
543 0:40        direct index ( temp float)
544 0:40          'roundedEdgeTessFactor' ( temp 3-component vector of float)
545 0:40          Constant:
546 0:40            1 (const int)
547 0:41      move second child to first child ( temp float)
548 0:41        direct index ( temp float)
549 0:41          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
550 0:41            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
551 0:41            Constant:
552 0:41              0 (const int)
553 0:41          Constant:
554 0:41            2 (const int)
555 0:41        direct index ( temp float)
556 0:41          'roundedEdgeTessFactor' ( temp 3-component vector of float)
557 0:41          Constant:
558 0:41            2 (const int)
559 0:42      move second child to first child ( temp float)
560 0:42        InsideTessFactor: direct index for structure ( temp float)
561 0:42          'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
562 0:42          Constant:
563 0:42            1 (const int)
564 0:42        'roundedInsideTessFactor' ( temp float)
565 0:45      move second child to first child ( temp 3-component vector of float)
566 0:45        direct index ( temp 3-component vector of float)
567 0:45          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
568 0:45            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
569 0:45            Constant:
570 0:45              2 (const int)
571 0:45          Constant:
572 0:45            0 (const int)
573 0:45        NormalWS: direct index for structure ( temp 3-component vector of float)
574 0:45          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
575 0:45            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
576 0:45            Constant:
577 0:45              0 (const int)
578 0:45          Constant:
579 0:45            1 (const int)
580 0:46      move second child to first child ( temp 3-component vector of float)
581 0:46        direct index ( temp 3-component vector of float)
582 0:46          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
583 0:46            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
584 0:46            Constant:
585 0:46              2 (const int)
586 0:46          Constant:
587 0:46            1 (const int)
588 0:46        NormalWS: direct index for structure ( temp 3-component vector of float)
589 0:46          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
590 0:46            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
591 0:46            Constant:
592 0:46              1 (const int)
593 0:46          Constant:
594 0:46            1 (const int)
595 0:47      move second child to first child ( temp 3-component vector of float)
596 0:47        direct index ( temp 3-component vector of float)
597 0:47          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
598 0:47            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
599 0:47            Constant:
600 0:47              2 (const int)
601 0:47          Constant:
602 0:47            2 (const int)
603 0:47        NormalWS: direct index for structure ( temp 3-component vector of float)
604 0:47          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
605 0:47            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
606 0:47            Constant:
607 0:47              2 (const int)
608 0:47          Constant:
609 0:47            1 (const int)
610 0:49      Branch: Return with expression
611 0:49        'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
612 0:61  Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
613 0:61    Function Parameters: 
614 0:61      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
615 0:61      'id' ( in uint)
616 0:?     Sequence
617 0:63      move second child to first child ( temp 3-component vector of float)
618 0:63        PositionWS: direct index for structure ( temp 3-component vector of float)
619 0:63          'output' ( temp structure{ temp 3-component vector of float PositionWS})
620 0:63          Constant:
621 0:63            0 (const int)
622 0:63        PositionWS: direct index for structure ( temp 3-component vector of float)
623 0:63          indirect index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
624 0:63            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
625 0:63            'id' ( in uint)
626 0:63          Constant:
627 0:63            0 (const int)
628 0:64      Branch: Return with expression
629 0:64        'output' ( temp structure{ temp 3-component vector of float PositionWS})
630 0:61  Function Definition: HSMain( ( temp void)
631 0:61    Function Parameters: 
632 0:?     Sequence
633 0:61      Sequence
634 0:61        move second child to first child ( temp 3-component vector of float)
635 0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
636 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
637 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
638 0:61              Constant:
639 0:61                0 (const int)
640 0:61            Constant:
641 0:61              0 (const int)
642 0:61          direct index (layout( location=0) in 3-component vector of float)
643 0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
644 0:61            Constant:
645 0:61              0 (const int)
646 0:61        move second child to first child ( temp 3-component vector of float)
647 0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
648 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
649 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
650 0:61              Constant:
651 0:61                0 (const int)
652 0:61            Constant:
653 0:61              1 (const int)
654 0:61          direct index (layout( location=1) in 3-component vector of float)
655 0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
656 0:61            Constant:
657 0:61              0 (const int)
658 0:61        move second child to first child ( temp 3-component vector of float)
659 0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
660 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
661 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
662 0:61              Constant:
663 0:61                1 (const int)
664 0:61            Constant:
665 0:61              0 (const int)
666 0:61          direct index (layout( location=0) in 3-component vector of float)
667 0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
668 0:61            Constant:
669 0:61              1 (const int)
670 0:61        move second child to first child ( temp 3-component vector of float)
671 0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
672 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
673 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
674 0:61              Constant:
675 0:61                1 (const int)
676 0:61            Constant:
677 0:61              1 (const int)
678 0:61          direct index (layout( location=1) in 3-component vector of float)
679 0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
680 0:61            Constant:
681 0:61              1 (const int)
682 0:61        move second child to first child ( temp 3-component vector of float)
683 0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
684 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
685 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
686 0:61              Constant:
687 0:61                2 (const int)
688 0:61            Constant:
689 0:61              0 (const int)
690 0:61          direct index (layout( location=0) in 3-component vector of float)
691 0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
692 0:61            Constant:
693 0:61              2 (const int)
694 0:61        move second child to first child ( temp 3-component vector of float)
695 0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
696 0:61            direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
697 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
698 0:61              Constant:
699 0:61                2 (const int)
700 0:61            Constant:
701 0:61              1 (const int)
702 0:61          direct index (layout( location=1) in 3-component vector of float)
703 0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
704 0:61            Constant:
705 0:61              2 (const int)
706 0:61      move second child to first child ( temp uint)
707 0:?         'id' ( temp uint)
708 0:?         'id' ( in uint InvocationID)
709 0:61      Sequence
710 0:61        move second child to first child ( temp 3-component vector of float)
711 0:61          indirect index (layout( location=0) out 3-component vector of float)
712 0:?             '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float)
713 0:?             'id' ( in uint InvocationID)
714 0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
715 0:61            Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
716 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
717 0:?               'id' ( temp uint)
718 0:61            Constant:
719 0:61              0 (const int)
720 0:?       Barrier ( temp void)
721 0:?       Test condition and select ( temp void)
722 0:?         Condition
723 0:?         Compare Equal ( temp bool)
724 0:?           'id' ( in uint InvocationID)
725 0:?           Constant:
726 0:?             0 (const int)
727 0:?         true case
728 0:?         Sequence
729 0:?           move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
730 0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
731 0:?             Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
732 0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
733 0:?           Sequence
734 0:?             move second child to first child ( temp float)
735 0:?               direct index ( patch out float TessLevelOuter)
736 0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
737 0:?                 Constant:
738 0:?                   0 (const int)
739 0:?               direct index ( temp float)
740 0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
741 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
742 0:?                   Constant:
743 0:?                     0 (const int)
744 0:?                 Constant:
745 0:?                   0 (const int)
746 0:?             move second child to first child ( temp float)
747 0:?               direct index ( patch out float TessLevelOuter)
748 0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
749 0:?                 Constant:
750 0:?                   1 (const int)
751 0:?               direct index ( temp float)
752 0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
753 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
754 0:?                   Constant:
755 0:?                     0 (const int)
756 0:?                 Constant:
757 0:?                   1 (const int)
758 0:?             move second child to first child ( temp float)
759 0:?               direct index ( patch out float TessLevelOuter)
760 0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
761 0:?                 Constant:
762 0:?                   2 (const int)
763 0:?               direct index ( temp float)
764 0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
765 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
766 0:?                   Constant:
767 0:?                     0 (const int)
768 0:?                 Constant:
769 0:?                   2 (const int)
770 0:?             move second child to first child ( temp float)
771 0:?               direct index ( patch out float TessLevelInner)
772 0:?                 '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
773 0:?                 Constant:
774 0:?                   0 (const int)
775 0:?               InsideTessFactor: direct index for structure ( temp float)
776 0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
777 0:?                 Constant:
778 0:?                   1 (const int)
779 0:?             move second child to first child ( temp 3-component vector of float)
780 0:?               '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float)
781 0:?               direct index ( temp 3-component vector of float)
782 0:?                 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
783 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
784 0:?                   Constant:
785 0:?                     2 (const int)
786 0:?                 Constant:
787 0:?                   0 (const int)
788 0:?             move second child to first child ( temp 3-component vector of float)
789 0:?               '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float)
790 0:?               direct index ( temp 3-component vector of float)
791 0:?                 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
792 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
793 0:?                   Constant:
794 0:?                     2 (const int)
795 0:?                 Constant:
796 0:?                   1 (const int)
797 0:?             move second child to first child ( temp 3-component vector of float)
798 0:?               '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)
799 0:?               direct index ( temp 3-component vector of float)
800 0:?                 NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
801 0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
802 0:?                   Constant:
803 0:?                     2 (const int)
804 0:?                 Constant:
805 0:?                   2 (const int)
806 0:84  Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void)
807 0:84    Function Parameters: 
808 0:84      'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
809 0:84      'output' ( out structure{ temp 4-component vector of float PositionCS})
810 0:?     Sequence
811 0:86      Sequence
812 0:86        move second child to first child ( temp 3-component vector of float)
813 0:86          'P0' ( temp 3-component vector of float)
814 0:86          vector swizzle ( temp 3-component vector of float)
815 0:86            PositionWS: direct index for structure ( temp 3-component vector of float)
816 0:86              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
817 0:86                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
818 0:86                Constant:
819 0:86                  0 (const int)
820 0:86              Constant:
821 0:86                0 (const int)
822 0:86            Sequence
823 0:86              Constant:
824 0:86                0 (const int)
825 0:86              Constant:
826 0:86                1 (const int)
827 0:86              Constant:
828 0:86                2 (const int)
829 0:87      Sequence
830 0:87        move second child to first child ( temp 3-component vector of float)
831 0:87          'P1' ( temp 3-component vector of float)
832 0:87          vector swizzle ( temp 3-component vector of float)
833 0:87            PositionWS: direct index for structure ( temp 3-component vector of float)
834 0:87              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
835 0:87                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
836 0:87                Constant:
837 0:87                  1 (const int)
838 0:87              Constant:
839 0:87                0 (const int)
840 0:87            Sequence
841 0:87              Constant:
842 0:87                0 (const int)
843 0:87              Constant:
844 0:87                1 (const int)
845 0:87              Constant:
846 0:87                2 (const int)
847 0:88      Sequence
848 0:88        move second child to first child ( temp 3-component vector of float)
849 0:88          'P2' ( temp 3-component vector of float)
850 0:88          vector swizzle ( temp 3-component vector of float)
851 0:88            PositionWS: direct index for structure ( temp 3-component vector of float)
852 0:88              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
853 0:88                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
854 0:88                Constant:
855 0:88                  2 (const int)
856 0:88              Constant:
857 0:88                0 (const int)
858 0:88            Sequence
859 0:88              Constant:
860 0:88                0 (const int)
861 0:88              Constant:
862 0:88                1 (const int)
863 0:88              Constant:
864 0:88                2 (const int)
865 0:92      add second child into first child ( temp float)
866 0:92        direct index ( temp float)
867 0:92          'P0' ( temp 3-component vector of float)
868 0:92          Constant:
869 0:92            2 (const int)
870 0:92        Constant:
871 0:92          0.001000
872 0:93      add second child into first child ( temp float)
873 0:93        direct index ( temp float)
874 0:93          'P1' ( temp 3-component vector of float)
875 0:93          Constant:
876 0:93            2 (const int)
877 0:93        Constant:
878 0:93          0.001000
879 0:94      add second child into first child ( temp float)
880 0:94        direct index ( temp float)
881 0:94          'P2' ( temp 3-component vector of float)
882 0:94          Constant:
883 0:94            2 (const int)
884 0:94        Constant:
885 0:94          0.001000
886 0:95      Sequence
887 0:95        move second child to first child ( temp 4-component vector of float)
888 0:95          'Q0' ( temp 4-component vector of float)
889 0:95          vector-times-matrix ( temp 4-component vector of float)
890 0:95            Construct vec4 ( temp 4-component vector of float)
891 0:95              'P0' ( temp 3-component vector of float)
892 0:95              Constant:
893 0:95                1.000000
894 0:95            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
895 0:95              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
896 0:95              Constant:
897 0:95                1 (const uint)
898 0:96      Sequence
899 0:96        move second child to first child ( temp 4-component vector of float)
900 0:96          'Q1' ( temp 4-component vector of float)
901 0:96          vector-times-matrix ( temp 4-component vector of float)
902 0:96            Construct vec4 ( temp 4-component vector of float)
903 0:96              'P1' ( temp 3-component vector of float)
904 0:96              Constant:
905 0:96                1.000000
906 0:96            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
907 0:96              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
908 0:96              Constant:
909 0:96                1 (const uint)
910 0:97      Sequence
911 0:97        move second child to first child ( temp 4-component vector of float)
912 0:97          'Q2' ( temp 4-component vector of float)
913 0:97          vector-times-matrix ( temp 4-component vector of float)
914 0:97            Construct vec4 ( temp 4-component vector of float)
915 0:97              'P2' ( temp 3-component vector of float)
916 0:97              Constant:
917 0:97                1.000000
918 0:97            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
919 0:97              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
920 0:97              Constant:
921 0:97                1 (const uint)
922 0:100      move second child to first child ( temp 4-component vector of float)
923 0:100        PositionCS: direct index for structure ( temp 4-component vector of float)
924 0:100          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
925 0:100          Constant:
926 0:100            0 (const int)
927 0:100        'Q0' ( temp 4-component vector of float)
928 0:101      Constant:
929 0:101        0.000000
930 0:102      move second child to first child ( temp 4-component vector of float)
931 0:102        PositionCS: direct index for structure ( temp 4-component vector of float)
932 0:102          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
933 0:102          Constant:
934 0:102            0 (const int)
935 0:102        'Q1' ( temp 4-component vector of float)
936 0:103      Constant:
937 0:103        0.000000
938 0:104      Constant:
939 0:104        0.000000
940 0:107      move second child to first child ( temp 4-component vector of float)
941 0:107        PositionCS: direct index for structure ( temp 4-component vector of float)
942 0:107          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
943 0:107          Constant:
944 0:107            0 (const int)
945 0:107        'Q1' ( temp 4-component vector of float)
946 0:108      Constant:
947 0:108        0.000000
948 0:109      move second child to first child ( temp 4-component vector of float)
949 0:109        PositionCS: direct index for structure ( temp 4-component vector of float)
950 0:109          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
951 0:109          Constant:
952 0:109            0 (const int)
953 0:109        'Q2' ( temp 4-component vector of float)
954 0:110      Constant:
955 0:110        0.000000
956 0:111      Constant:
957 0:111        0.000000
958 0:114      move second child to first child ( temp 4-component vector of float)
959 0:114        PositionCS: direct index for structure ( temp 4-component vector of float)
960 0:114          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
961 0:114          Constant:
962 0:114            0 (const int)
963 0:114        'Q2' ( temp 4-component vector of float)
964 0:115      Constant:
965 0:115        0.000000
966 0:116      move second child to first child ( temp 4-component vector of float)
967 0:116        PositionCS: direct index for structure ( temp 4-component vector of float)
968 0:116          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
969 0:116          Constant:
970 0:116            0 (const int)
971 0:116        'Q0' ( temp 4-component vector of float)
972 0:117      Constant:
973 0:117        0.000000
974 0:118      Constant:
975 0:118        0.000000
976 0:?   Linker Objects
977 0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
978 0:?     '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float)
979 0:?     'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
980 0:?     'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
981 0:?     'id' ( in uint InvocationID)
982 0:?     '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
983 0:?     '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
984 0:?     '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float)
985 0:?     '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float)
986 0:?     '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)
987
988 // Module Version 10000
989 // Generated by (magic number): 8000a
990 // Id's are bound by 236
991
992                               Capability Tessellation
993                1:             ExtInstImport  "GLSL.std.450"
994                               MemoryModel Logical GLSL450
995                               EntryPoint TessellationControl 4  "HSMain" 97 102 120 123 145 158 162 165 168
996                               ExecutionMode 4 OutputVertices 3
997                               ExecutionMode 4 Triangles
998                               ExecutionMode 4 SpacingFractionalOdd
999                               ExecutionMode 4 VertexOrderCcw
1000                               Source HLSL 500
1001                               Name 4  "HSMain"
1002                               Name 8  "HSInput"
1003                               MemberName 8(HSInput) 0  "PositionWS"
1004                               MemberName 8(HSInput) 1  "NormalWS"
1005                               Name 15  "HSTrianglePatchConstant"
1006                               MemberName 15(HSTrianglePatchConstant) 0  "EdgeTessFactor"
1007                               MemberName 15(HSTrianglePatchConstant) 1  "InsideTessFactor"
1008                               MemberName 15(HSTrianglePatchConstant) 2  "NormalWS"
1009                               Name 18  "HSPatchConstant(struct-HSInput-vf3-vf31[3];"
1010                               Name 17  "patch"
1011                               Name 21  "HSOutput"
1012                               MemberName 21(HSOutput) 0  "PositionWS"
1013                               Name 25  "@HSMain(struct-HSInput-vf3-vf31[3];u1;"
1014                               Name 23  "patch"
1015                               Name 24  "id"
1016                               Name 27  "GSVertexInput"
1017                               MemberName 27(GSVertexInput) 0  "PositionWS"
1018                               MemberName 27(GSVertexInput) 1  "NormalWS"
1019                               Name 31  "GSVertexOutput"
1020                               MemberName 31(GSVertexOutput) 0  "PositionCS"
1021                               Name 36  "GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;"
1022                               Name 34  "input"
1023                               Name 35  "output"
1024                               Name 39  "roundedEdgeTessFactor"
1025                               Name 42  "UniformBlock0"
1026                               MemberName 42(UniformBlock0) 0  "model_view_matrix"
1027                               MemberName 42(UniformBlock0) 1  "proj_matrix"
1028                               MemberName 42(UniformBlock0) 2  "model_view_proj_matrix"
1029                               MemberName 42(UniformBlock0) 3  "normal_matrix"
1030                               MemberName 42(UniformBlock0) 4  "color"
1031                               MemberName 42(UniformBlock0) 5  "view_dir"
1032                               MemberName 42(UniformBlock0) 6  "tess_factor"
1033                               Name 44  ""
1034                               Name 51  "roundedInsideTessFactor"
1035                               Name 53  "insideTessFactor"
1036                               Name 56  "result"
1037                               Name 87  "output"
1038                               Name 95  "patch"
1039                               Name 97  "patch.PositionWS"
1040                               Name 102  "patch.NormalWS"
1041                               Name 118  "id"
1042                               Name 120  "id"
1043                               Name 123  "@entryPointOutput.PositionWS"
1044                               Name 125  "param"
1045                               Name 127  "param"
1046                               Name 139  "@patchConstantResult"
1047                               Name 140  "param"
1048                               Name 145  "@patchConstantOutput.EdgeTessFactor"
1049                               Name 158  "@patchConstantOutput.InsideTessFactor"
1050                               Name 162  "@patchConstantOutput.NormalWS[0]"
1051                               Name 165  "@patchConstantOutput.NormalWS[1]"
1052                               Name 168  "@patchConstantOutput.NormalWS[2]"
1053                               Name 171  "P0"
1054                               Name 174  "P1"
1055                               Name 177  "P2"
1056                               Name 194  "Q0"
1057                               Name 204  "Q1"
1058                               Name 213  "Q2"
1059                               Name 222  "vertex"
1060                               MemberDecorate 42(UniformBlock0) 0 RowMajor
1061                               MemberDecorate 42(UniformBlock0) 0 Offset 0
1062                               MemberDecorate 42(UniformBlock0) 0 MatrixStride 16
1063                               MemberDecorate 42(UniformBlock0) 1 RowMajor
1064                               MemberDecorate 42(UniformBlock0) 1 Offset 64
1065                               MemberDecorate 42(UniformBlock0) 1 MatrixStride 16
1066                               MemberDecorate 42(UniformBlock0) 2 RowMajor
1067                               MemberDecorate 42(UniformBlock0) 2 Offset 128
1068                               MemberDecorate 42(UniformBlock0) 2 MatrixStride 16
1069                               MemberDecorate 42(UniformBlock0) 3 RowMajor
1070                               MemberDecorate 42(UniformBlock0) 3 Offset 192
1071                               MemberDecorate 42(UniformBlock0) 3 MatrixStride 16
1072                               MemberDecorate 42(UniformBlock0) 4 Offset 240
1073                               MemberDecorate 42(UniformBlock0) 5 Offset 256
1074                               MemberDecorate 42(UniformBlock0) 6 Offset 272
1075                               Decorate 42(UniformBlock0) Block
1076                               Decorate 44 DescriptorSet 0
1077                               Decorate 44 Binding 0
1078                               Decorate 97(patch.PositionWS) Location 0
1079                               Decorate 102(patch.NormalWS) Location 1
1080                               Decorate 120(id) BuiltIn InvocationId
1081                               Decorate 123(@entryPointOutput.PositionWS) Location 0
1082                               Decorate 145(@patchConstantOutput.EdgeTessFactor) Patch
1083                               Decorate 145(@patchConstantOutput.EdgeTessFactor) BuiltIn TessLevelOuter
1084                               Decorate 158(@patchConstantOutput.InsideTessFactor) Patch
1085                               Decorate 158(@patchConstantOutput.InsideTessFactor) BuiltIn TessLevelInner
1086                               Decorate 162(@patchConstantOutput.NormalWS[0]) Patch
1087                               Decorate 162(@patchConstantOutput.NormalWS[0]) Location 1
1088                               Decorate 165(@patchConstantOutput.NormalWS[1]) Patch
1089                               Decorate 165(@patchConstantOutput.NormalWS[1]) Location 2
1090                               Decorate 168(@patchConstantOutput.NormalWS[2]) Patch
1091                               Decorate 168(@patchConstantOutput.NormalWS[2]) Location 3
1092                2:             TypeVoid
1093                3:             TypeFunction 2
1094                6:             TypeFloat 32
1095                7:             TypeVector 6(float) 3
1096       8(HSInput):             TypeStruct 7(fvec3) 7(fvec3)
1097                9:             TypeInt 32 0
1098               10:      9(int) Constant 3
1099               11:             TypeArray 8(HSInput) 10
1100               12:             TypePointer Function 11
1101               13:             TypeArray 6(float) 10
1102               14:             TypeArray 7(fvec3) 10
1103 15(HSTrianglePatchConstant):             TypeStruct 13 6(float) 14
1104               16:             TypeFunction 15(HSTrianglePatchConstant) 12(ptr)
1105               20:             TypePointer Function 9(int)
1106     21(HSOutput):             TypeStruct 7(fvec3)
1107               22:             TypeFunction 21(HSOutput) 12(ptr) 20(ptr)
1108 27(GSVertexInput):             TypeStruct 7(fvec3) 7(fvec3)
1109               28:             TypeArray 27(GSVertexInput) 10
1110               29:             TypePointer Function 28
1111               30:             TypeVector 6(float) 4
1112 31(GSVertexOutput):             TypeStruct 30(fvec4)
1113               32:             TypePointer Function 31(GSVertexOutput)
1114               33:             TypeFunction 2 29(ptr) 32(ptr)
1115               38:             TypePointer Function 7(fvec3)
1116               40:             TypeMatrix 30(fvec4) 4
1117               41:             TypeMatrix 7(fvec3) 3
1118 42(UniformBlock0):             TypeStruct 40 40 40 41 7(fvec3) 7(fvec3) 7(fvec3)
1119               43:             TypePointer Uniform 42(UniformBlock0)
1120               44:     43(ptr) Variable Uniform
1121               45:             TypeInt 32 1
1122               46:     45(int) Constant 6
1123               47:             TypePointer Uniform 7(fvec3)
1124               50:             TypePointer Function 6(float)
1125               52:    6(float) Constant 1077936128
1126               54:    6(float) Constant 1065353216
1127               55:             TypePointer Function 15(HSTrianglePatchConstant)
1128               57:     45(int) Constant 0
1129               58:      9(int) Constant 0
1130               62:     45(int) Constant 1
1131               63:      9(int) Constant 1
1132               67:     45(int) Constant 2
1133               68:      9(int) Constant 2
1134               86:             TypePointer Function 21(HSOutput)
1135               96:             TypePointer Input 14
1136 97(patch.PositionWS):     96(ptr) Variable Input
1137               98:             TypePointer Input 7(fvec3)
1138 102(patch.NormalWS):     96(ptr) Variable Input
1139              119:             TypePointer Input 9(int)
1140          120(id):    119(ptr) Variable Input
1141              122:             TypePointer Output 14
1142 123(@entryPointOutput.PositionWS):    122(ptr) Variable Output
1143              131:             TypePointer Output 7(fvec3)
1144              133:      9(int) Constant 4
1145              135:             TypeBool
1146              143:             TypeArray 6(float) 133
1147              144:             TypePointer Output 143
1148 145(@patchConstantOutput.EdgeTessFactor):    144(ptr) Variable Output
1149              148:             TypePointer Output 6(float)
1150              156:             TypeArray 6(float) 68
1151              157:             TypePointer Output 156
1152 158(@patchConstantOutput.InsideTessFactor):    157(ptr) Variable Output
1153 162(@patchConstantOutput.NormalWS[0]):    131(ptr) Variable Output
1154 165(@patchConstantOutput.NormalWS[1]):    131(ptr) Variable Output
1155 168(@patchConstantOutput.NormalWS[2]):    131(ptr) Variable Output
1156              180:    6(float) Constant 981668463
1157              193:             TypePointer Function 30(fvec4)
1158              200:             TypePointer Uniform 40
1159              225:    6(float) Constant 0
1160        4(HSMain):           2 Function None 3
1161                5:             Label
1162        95(patch):     12(ptr) Variable Function
1163          118(id):     20(ptr) Variable Function
1164       125(param):     12(ptr) Variable Function
1165       127(param):     20(ptr) Variable Function
1166 139(@patchConstantResult):     55(ptr) Variable Function
1167       140(param):     12(ptr) Variable Function
1168               99:     98(ptr) AccessChain 97(patch.PositionWS) 57
1169              100:    7(fvec3) Load 99
1170              101:     38(ptr) AccessChain 95(patch) 57 57
1171                               Store 101 100
1172              103:     98(ptr) AccessChain 102(patch.NormalWS) 57
1173              104:    7(fvec3) Load 103
1174              105:     38(ptr) AccessChain 95(patch) 57 62
1175                               Store 105 104
1176              106:     98(ptr) AccessChain 97(patch.PositionWS) 62
1177              107:    7(fvec3) Load 106
1178              108:     38(ptr) AccessChain 95(patch) 62 57
1179                               Store 108 107
1180              109:     98(ptr) AccessChain 102(patch.NormalWS) 62
1181              110:    7(fvec3) Load 109
1182              111:     38(ptr) AccessChain 95(patch) 62 62
1183                               Store 111 110
1184              112:     98(ptr) AccessChain 97(patch.PositionWS) 67
1185              113:    7(fvec3) Load 112
1186              114:     38(ptr) AccessChain 95(patch) 67 57
1187                               Store 114 113
1188              115:     98(ptr) AccessChain 102(patch.NormalWS) 67
1189              116:    7(fvec3) Load 115
1190              117:     38(ptr) AccessChain 95(patch) 67 62
1191                               Store 117 116
1192              121:      9(int) Load 120(id)
1193                               Store 118(id) 121
1194              124:      9(int) Load 120(id)
1195              126:          11 Load 95(patch)
1196                               Store 125(param) 126
1197              128:      9(int) Load 118(id)
1198                               Store 127(param) 128
1199              129:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 125(param) 127(param)
1200              130:    7(fvec3) CompositeExtract 129 0
1201              132:    131(ptr) AccessChain 123(@entryPointOutput.PositionWS) 124
1202                               Store 132 130
1203                               ControlBarrier 68 133 58
1204              134:      9(int) Load 120(id)
1205              136:   135(bool) IEqual 134 57
1206                               SelectionMerge 138 None
1207                               BranchConditional 136 137 138
1208              137:               Label
1209              141:          11   Load 95(patch)
1210                                 Store 140(param) 141
1211              142:15(HSTrianglePatchConstant)   FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 140(param)
1212                                 Store 139(@patchConstantResult) 142
1213              146:     50(ptr)   AccessChain 139(@patchConstantResult) 57 57
1214              147:    6(float)   Load 146
1215              149:    148(ptr)   AccessChain 145(@patchConstantOutput.EdgeTessFactor) 57
1216                                 Store 149 147
1217              150:     50(ptr)   AccessChain 139(@patchConstantResult) 57 62
1218              151:    6(float)   Load 150
1219              152:    148(ptr)   AccessChain 145(@patchConstantOutput.EdgeTessFactor) 62
1220                                 Store 152 151
1221              153:     50(ptr)   AccessChain 139(@patchConstantResult) 57 67
1222              154:    6(float)   Load 153
1223              155:    148(ptr)   AccessChain 145(@patchConstantOutput.EdgeTessFactor) 67
1224                                 Store 155 154
1225              159:     50(ptr)   AccessChain 139(@patchConstantResult) 62
1226              160:    6(float)   Load 159
1227              161:    148(ptr)   AccessChain 158(@patchConstantOutput.InsideTessFactor) 57
1228                                 Store 161 160
1229              163:     38(ptr)   AccessChain 139(@patchConstantResult) 67 57
1230              164:    7(fvec3)   Load 163
1231                                 Store 162(@patchConstantOutput.NormalWS[0]) 164
1232              166:     38(ptr)   AccessChain 139(@patchConstantResult) 67 62
1233              167:    7(fvec3)   Load 166
1234                                 Store 165(@patchConstantOutput.NormalWS[1]) 167
1235              169:     38(ptr)   AccessChain 139(@patchConstantResult) 67 67
1236              170:    7(fvec3)   Load 169
1237                                 Store 168(@patchConstantOutput.NormalWS[2]) 170
1238                                 Branch 138
1239              138:             Label
1240                               Return
1241                               FunctionEnd
1242 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];):15(HSTrianglePatchConstant) Function None 16
1243        17(patch):     12(ptr) FunctionParameter
1244               19:             Label
1245 39(roundedEdgeTessFactor):     38(ptr) Variable Function
1246 51(roundedInsideTessFactor):     50(ptr) Variable Function
1247 53(insideTessFactor):     50(ptr) Variable Function
1248       56(result):     55(ptr) Variable Function
1249               48:     47(ptr) AccessChain 44 46
1250               49:    7(fvec3) Load 48
1251                               Store 39(roundedEdgeTessFactor) 49
1252                               Store 51(roundedInsideTessFactor) 52
1253                               Store 53(insideTessFactor) 54
1254               59:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 58
1255               60:    6(float) Load 59
1256               61:     50(ptr) AccessChain 56(result) 57 57
1257                               Store 61 60
1258               64:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 63
1259               65:    6(float) Load 64
1260               66:     50(ptr) AccessChain 56(result) 57 62
1261                               Store 66 65
1262               69:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 68
1263               70:    6(float) Load 69
1264               71:     50(ptr) AccessChain 56(result) 57 67
1265                               Store 71 70
1266               72:    6(float) Load 51(roundedInsideTessFactor)
1267               73:     50(ptr) AccessChain 56(result) 62
1268                               Store 73 72
1269               74:     38(ptr) AccessChain 17(patch) 57 62
1270               75:    7(fvec3) Load 74
1271               76:     38(ptr) AccessChain 56(result) 67 57
1272                               Store 76 75
1273               77:     38(ptr) AccessChain 17(patch) 62 62
1274               78:    7(fvec3) Load 77
1275               79:     38(ptr) AccessChain 56(result) 67 62
1276                               Store 79 78
1277               80:     38(ptr) AccessChain 17(patch) 67 62
1278               81:    7(fvec3) Load 80
1279               82:     38(ptr) AccessChain 56(result) 67 67
1280                               Store 82 81
1281               83:15(HSTrianglePatchConstant) Load 56(result)
1282                               ReturnValue 83
1283                               FunctionEnd
1284 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;):21(HSOutput) Function None 22
1285        23(patch):     12(ptr) FunctionParameter
1286           24(id):     20(ptr) FunctionParameter
1287               26:             Label
1288       87(output):     86(ptr) Variable Function
1289               88:      9(int) Load 24(id)
1290               89:     38(ptr) AccessChain 23(patch) 88 57
1291               90:    7(fvec3) Load 89
1292               91:     38(ptr) AccessChain 87(output) 57
1293                               Store 91 90
1294               92:21(HSOutput) Load 87(output)
1295                               ReturnValue 92
1296                               FunctionEnd
1297 36(GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;):           2 Function None 33
1298        34(input):     29(ptr) FunctionParameter
1299       35(output):     32(ptr) FunctionParameter
1300               37:             Label
1301          171(P0):     38(ptr) Variable Function
1302          174(P1):     38(ptr) Variable Function
1303          177(P2):     38(ptr) Variable Function
1304          194(Q0):    193(ptr) Variable Function
1305          204(Q1):    193(ptr) Variable Function
1306          213(Q2):    193(ptr) Variable Function
1307      222(vertex):     32(ptr) Variable Function
1308              172:     38(ptr) AccessChain 34(input) 57 57
1309              173:    7(fvec3) Load 172
1310                               Store 171(P0) 173
1311              175:     38(ptr) AccessChain 34(input) 62 57
1312              176:    7(fvec3) Load 175
1313                               Store 174(P1) 176
1314              178:     38(ptr) AccessChain 34(input) 67 57
1315              179:    7(fvec3) Load 178
1316                               Store 177(P2) 179
1317              181:     50(ptr) AccessChain 171(P0) 68
1318              182:    6(float) Load 181
1319              183:    6(float) FAdd 182 180
1320              184:     50(ptr) AccessChain 171(P0) 68
1321                               Store 184 183
1322              185:     50(ptr) AccessChain 174(P1) 68
1323              186:    6(float) Load 185
1324              187:    6(float) FAdd 186 180
1325              188:     50(ptr) AccessChain 174(P1) 68
1326                               Store 188 187
1327              189:     50(ptr) AccessChain 177(P2) 68
1328              190:    6(float) Load 189
1329              191:    6(float) FAdd 190 180
1330              192:     50(ptr) AccessChain 177(P2) 68
1331                               Store 192 191
1332              195:    7(fvec3) Load 171(P0)
1333              196:    6(float) CompositeExtract 195 0
1334              197:    6(float) CompositeExtract 195 1
1335              198:    6(float) CompositeExtract 195 2
1336              199:   30(fvec4) CompositeConstruct 196 197 198 54
1337              201:    200(ptr) AccessChain 44 62
1338              202:          40 Load 201
1339              203:   30(fvec4) VectorTimesMatrix 199 202
1340                               Store 194(Q0) 203
1341              205:    7(fvec3) Load 174(P1)
1342              206:    6(float) CompositeExtract 205 0
1343              207:    6(float) CompositeExtract 205 1
1344              208:    6(float) CompositeExtract 205 2
1345              209:   30(fvec4) CompositeConstruct 206 207 208 54
1346              210:    200(ptr) AccessChain 44 62
1347              211:          40 Load 210
1348              212:   30(fvec4) VectorTimesMatrix 209 211
1349                               Store 204(Q1) 212
1350              214:    7(fvec3) Load 177(P2)
1351              215:    6(float) CompositeExtract 214 0
1352              216:    6(float) CompositeExtract 214 1
1353              217:    6(float) CompositeExtract 214 2
1354              218:   30(fvec4) CompositeConstruct 215 216 217 54
1355              219:    200(ptr) AccessChain 44 62
1356              220:          40 Load 219
1357              221:   30(fvec4) VectorTimesMatrix 218 220
1358                               Store 213(Q2) 221
1359              223:   30(fvec4) Load 194(Q0)
1360              224:    193(ptr) AccessChain 222(vertex) 57
1361                               Store 224 223
1362              226:   30(fvec4) Load 204(Q1)
1363              227:    193(ptr) AccessChain 222(vertex) 57
1364                               Store 227 226
1365              228:   30(fvec4) Load 204(Q1)
1366              229:    193(ptr) AccessChain 222(vertex) 57
1367                               Store 229 228
1368              230:   30(fvec4) Load 213(Q2)
1369              231:    193(ptr) AccessChain 222(vertex) 57
1370                               Store 231 230
1371              232:   30(fvec4) Load 213(Q2)
1372              233:    193(ptr) AccessChain 222(vertex) 57
1373                               Store 233 232
1374              234:   30(fvec4) Load 194(Q0)
1375              235:    193(ptr) AccessChain 222(vertex) 57
1376                               Store 235 234
1377                               Return
1378                               FunctionEnd