1hlsl.struct.split.assign.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:7  Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
60:7    Function Parameters:
70:7      'i' ( in int)
80:7      'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
90:?     Sequence
100:9      move second child to first child ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
110:9        'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
120:9        'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
130:11      Branch: Return with expression
140:11        pos: direct index for structure ( temp 4-component vector of float)
150:11          direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
160:11            'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
170:11            Constant:
180:11              1 (const int)
190:11          Constant:
200:11            1 (const int)
210:7  Function Definition: main( ( temp void)
220:7    Function Parameters:
230:?     Sequence
240:7      move second child to first child ( temp int)
250:?         'i' ( temp int)
260:?         'i' (layout( location=0) flat in int)
270:7      Sequence
280:7        move second child to first child ( temp float)
290:7          f: direct index for structure ( temp float)
300:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
310:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
320:7              Constant:
330:7                0 (const int)
340:7            Constant:
350:7              0 (const int)
360:?           'input[0].f' (layout( location=1) in float)
370:7        move second child to first child ( temp 4-component vector of float)
380:7          pos: direct index for structure ( temp 4-component vector of float)
390:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
400:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
410:7              Constant:
420:7                0 (const int)
430:7            Constant:
440:7              1 (const int)
450:7          direct index ( in 4-component vector of float FragCoord)
460:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
470:7            Constant:
480:7              0 (const int)
490:7        move second child to first child ( temp float)
500:7          f: direct index for structure ( temp float)
510:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
520:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
530:7              Constant:
540:7                1 (const int)
550:7            Constant:
560:7              0 (const int)
570:?           'input[1].f' (layout( location=2) in float)
580:7        move second child to first child ( temp 4-component vector of float)
590:7          pos: direct index for structure ( temp 4-component vector of float)
600:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
610:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
620:7              Constant:
630:7                1 (const int)
640:7            Constant:
650:7              1 (const int)
660:7          direct index ( in 4-component vector of float FragCoord)
670:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
680:7            Constant:
690:7              1 (const int)
700:7        move second child to first child ( temp float)
710:7          f: direct index for structure ( temp float)
720:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
730:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
740:7              Constant:
750:7                2 (const int)
760:7            Constant:
770:7              0 (const int)
780:?           'input[2].f' (layout( location=3) in float)
790:7        move second child to first child ( temp 4-component vector of float)
800:7          pos: direct index for structure ( temp 4-component vector of float)
810:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
820:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
830:7              Constant:
840:7                2 (const int)
850:7            Constant:
860:7              1 (const int)
870:7          direct index ( in 4-component vector of float FragCoord)
880:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
890:7            Constant:
900:7              2 (const int)
910:7      move second child to first child ( temp 4-component vector of float)
920:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
930:7        Function Call: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
940:?           'i' ( temp int)
950:?           'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
960:?   Linker Objects
970:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
980:?     'i' (layout( location=0) flat in int)
990:?     'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
1000:?     'input[0].f' (layout( location=1) in float)
1010:?     'input[1].f' (layout( location=2) in float)
1020:?     'input[2].f' (layout( location=3) in float)
103
104
105Linked fragment stage:
106
107
108Shader version: 500
109gl_FragCoord origin is upper left
1100:? Sequence
1110:7  Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
1120:7    Function Parameters:
1130:7      'i' ( in int)
1140:7      'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1150:?     Sequence
1160:9      move second child to first child ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1170:9        'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1180:9        'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1190:11      Branch: Return with expression
1200:11        pos: direct index for structure ( temp 4-component vector of float)
1210:11          direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
1220:11            'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1230:11            Constant:
1240:11              1 (const int)
1250:11          Constant:
1260:11            1 (const int)
1270:7  Function Definition: main( ( temp void)
1280:7    Function Parameters:
1290:?     Sequence
1300:7      move second child to first child ( temp int)
1310:?         'i' ( temp int)
1320:?         'i' (layout( location=0) flat in int)
1330:7      Sequence
1340:7        move second child to first child ( temp float)
1350:7          f: direct index for structure ( temp float)
1360:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
1370:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1380:7              Constant:
1390:7                0 (const int)
1400:7            Constant:
1410:7              0 (const int)
1420:?           'input[0].f' (layout( location=1) in float)
1430:7        move second child to first child ( temp 4-component vector of float)
1440:7          pos: direct index for structure ( temp 4-component vector of float)
1450:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
1460:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1470:7              Constant:
1480:7                0 (const int)
1490:7            Constant:
1500:7              1 (const int)
1510:7          direct index ( in 4-component vector of float FragCoord)
1520:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
1530:7            Constant:
1540:7              0 (const int)
1550:7        move second child to first child ( temp float)
1560:7          f: direct index for structure ( temp float)
1570:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
1580:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1590:7              Constant:
1600:7                1 (const int)
1610:7            Constant:
1620:7              0 (const int)
1630:?           'input[1].f' (layout( location=2) in float)
1640:7        move second child to first child ( temp 4-component vector of float)
1650:7          pos: direct index for structure ( temp 4-component vector of float)
1660:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
1670:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1680:7              Constant:
1690:7                1 (const int)
1700:7            Constant:
1710:7              1 (const int)
1720:7          direct index ( in 4-component vector of float FragCoord)
1730:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
1740:7            Constant:
1750:7              1 (const int)
1760:7        move second child to first child ( temp float)
1770:7          f: direct index for structure ( temp float)
1780:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
1790:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1800:7              Constant:
1810:7                2 (const int)
1820:7            Constant:
1830:7              0 (const int)
1840:?           'input[2].f' (layout( location=3) in float)
1850:7        move second child to first child ( temp 4-component vector of float)
1860:7          pos: direct index for structure ( temp 4-component vector of float)
1870:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
1880:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
1890:7              Constant:
1900:7                2 (const int)
1910:7            Constant:
1920:7              1 (const int)
1930:7          direct index ( in 4-component vector of float FragCoord)
1940:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
1950:7            Constant:
1960:7              2 (const int)
1970:7      move second child to first child ( temp 4-component vector of float)
1980:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1990:7        Function Call: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
2000:?           'i' ( temp int)
2010:?           'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
2020:?   Linker Objects
2030:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
2040:?     'i' (layout( location=0) flat in int)
2050:?     'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
2060:?     'input[0].f' (layout( location=1) in float)
2070:?     'input[1].f' (layout( location=2) in float)
2080:?     'input[2].f' (layout( location=3) in float)
209
210// Module Version 10000
211// Generated by (magic number): 80007
212// Id's are bound by 66
213
214                              Capability Shader
215               1:             ExtInstImport  "GLSL.std.450"
216                              MemoryModel Logical GLSL450
217                              EntryPoint Fragment 4  "main" 30 35 41 46 53 60
218                              ExecutionMode 4 OriginUpperLeft
219                              Source HLSL 500
220                              Name 4  "main"
221                              Name 10  "S"
222                              MemberName 10(S) 0  "f"
223                              MemberName 10(S) 1  "pos"
224                              Name 18  "@main(i1;struct-S-f1-vf41[3];"
225                              Name 16  "i"
226                              Name 17  "input"
227                              Name 20  "a"
228                              Name 28  "i"
229                              Name 30  "i"
230                              Name 32  "input"
231                              Name 35  "input[0].f"
232                              Name 41  "input.pos"
233                              Name 46  "input[1].f"
234                              Name 53  "input[2].f"
235                              Name 60  "@entryPointOutput"
236                              Name 61  "param"
237                              Name 63  "param"
238                              Decorate 30(i) Flat
239                              Decorate 30(i) Location 0
240                              Decorate 35(input[0].f) Location 1
241                              Decorate 41(input.pos) BuiltIn FragCoord
242                              Decorate 46(input[1].f) Location 2
243                              Decorate 53(input[2].f) Location 3
244                              Decorate 60(@entryPointOutput) Location 0
245               2:             TypeVoid
246               3:             TypeFunction 2
247               6:             TypeInt 32 1
248               7:             TypePointer Function 6(int)
249               8:             TypeFloat 32
250               9:             TypeVector 8(float) 4
251           10(S):             TypeStruct 8(float) 9(fvec4)
252              11:             TypeInt 32 0
253              12:     11(int) Constant 3
254              13:             TypeArray 10(S) 12
255              14:             TypePointer Function 13
256              15:             TypeFunction 9(fvec4) 7(ptr) 14(ptr)
257              22:      6(int) Constant 1
258              23:             TypePointer Function 9(fvec4)
259              29:             TypePointer Input 6(int)
260           30(i):     29(ptr) Variable Input
261              33:      6(int) Constant 0
262              34:             TypePointer Input 8(float)
263  35(input[0].f):     34(ptr) Variable Input
264              37:             TypePointer Function 8(float)
265              39:             TypeArray 9(fvec4) 12
266              40:             TypePointer Input 39
267   41(input.pos):     40(ptr) Variable Input
268              42:             TypePointer Input 9(fvec4)
269  46(input[1].f):     34(ptr) Variable Input
270              52:      6(int) Constant 2
271  53(input[2].f):     34(ptr) Variable Input
272              59:             TypePointer Output 9(fvec4)
27360(@entryPointOutput):     59(ptr) Variable Output
274         4(main):           2 Function None 3
275               5:             Label
276           28(i):      7(ptr) Variable Function
277       32(input):     14(ptr) Variable Function
278       61(param):      7(ptr) Variable Function
279       63(param):     14(ptr) Variable Function
280              31:      6(int) Load 30(i)
281                              Store 28(i) 31
282              36:    8(float) Load 35(input[0].f)
283              38:     37(ptr) AccessChain 32(input) 33 33
284                              Store 38 36
285              43:     42(ptr) AccessChain 41(input.pos) 33
286              44:    9(fvec4) Load 43
287              45:     23(ptr) AccessChain 32(input) 33 22
288                              Store 45 44
289              47:    8(float) Load 46(input[1].f)
290              48:     37(ptr) AccessChain 32(input) 22 33
291                              Store 48 47
292              49:     42(ptr) AccessChain 41(input.pos) 22
293              50:    9(fvec4) Load 49
294              51:     23(ptr) AccessChain 32(input) 22 22
295                              Store 51 50
296              54:    8(float) Load 53(input[2].f)
297              55:     37(ptr) AccessChain 32(input) 52 33
298                              Store 55 54
299              56:     42(ptr) AccessChain 41(input.pos) 52
300              57:    9(fvec4) Load 56
301              58:     23(ptr) AccessChain 32(input) 52 22
302                              Store 58 57
303              62:      6(int) Load 28(i)
304                              Store 61(param) 62
305              64:          13 Load 32(input)
306                              Store 63(param) 64
307              65:    9(fvec4) FunctionCall 18(@main(i1;struct-S-f1-vf41[3];) 61(param) 63(param)
308                              Store 60(@entryPointOutput) 65
309                              Return
310                              FunctionEnd
31118(@main(i1;struct-S-f1-vf41[3];):    9(fvec4) Function None 15
312           16(i):      7(ptr) FunctionParameter
313       17(input):     14(ptr) FunctionParameter
314              19:             Label
315           20(a):     14(ptr) Variable Function
316              21:          13 Load 20(a)
317                              Store 17(input) 21
318              24:     23(ptr) AccessChain 20(a) 22 22
319              25:    9(fvec4) Load 24
320                              ReturnValue 25
321                              FunctionEnd
322