1hlsl.entry-out.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:7  Function Definition: fun(struct-OutParam-vf2-vi21; ( temp void)
60:7    Function Parameters:
70:7      'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
80:?     Sequence
90:8      move second child to first child ( temp 2-component vector of float)
100:8        v: direct index for structure ( temp 2-component vector of float)
110:8          'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
120:8          Constant:
130:8            0 (const int)
140:8        Constant:
150:8          0.400000
160:8          0.400000
170:9      move second child to first child ( temp 2-component vector of int)
180:9        i: direct index for structure ( temp 2-component vector of int)
190:9          'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
200:9          Constant:
210:9            1 (const int)
220:9        Constant:
230:9          7 (const int)
240:9          7 (const int)
250:13  Function Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float)
260:13    Function Parameters:
270:13      'input' ( in 4-component vector of float)
280:13      'out1' ( out 4-component vector of float)
290:13      'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
300:13      'out3' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
310:?     Sequence
320:14      move second child to first child ( temp 4-component vector of float)
330:14        'out1' ( out 4-component vector of float)
340:14        'input' ( in 4-component vector of float)
350:15      move second child to first child ( temp 2-component vector of float)
360:15        v: direct index for structure ( temp 2-component vector of float)
370:15          'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
380:15          Constant:
390:15            0 (const int)
400:15        Constant:
410:15          2.000000
420:15          2.000000
430:16      move second child to first child ( temp 2-component vector of int)
440:16        i: direct index for structure ( temp 2-component vector of int)
450:16          'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
460:16          Constant:
470:16            1 (const int)
480:16        Constant:
490:16          3 (const int)
500:16          3 (const int)
510:18      move second child to first child ( temp 2-component vector of float)
520:18        v: direct index for structure ( temp 2-component vector of float)
530:18          'local' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
540:18          Constant:
550:18            0 (const int)
560:18        Constant:
570:18          12.000000
580:18          12.000000
590:19      move second child to first child ( temp 2-component vector of int)
600:19        i: direct index for structure ( temp 2-component vector of int)
610:19          'local' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
620:19          Constant:
630:19            1 (const int)
640:19        Constant:
650:19          13 (const int)
660:19          13 (const int)
670:20      Function Call: fun(struct-OutParam-vf2-vi21; ( temp void)
680:20        'out3' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
690:22      Branch: Return with expression
700:22        'out1' ( out 4-component vector of float)
710:13  Function Definition: PixelShaderFunction( ( temp void)
720:13    Function Parameters:
730:?     Sequence
740:13      move second child to first child ( temp 4-component vector of float)
750:?         'input' ( temp 4-component vector of float)
760:?         'input' (layout( location=0) in 4-component vector of float)
770:13      move second child to first child ( temp 4-component vector of float)
780:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
790:13        Function Call: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float)
800:?           'input' ( temp 4-component vector of float)
810:?           'out1' ( temp 4-component vector of float)
820:?           'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
830:?           'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
840:13      move second child to first child ( temp 4-component vector of float)
850:?         'out1' (layout( location=1) out 4-component vector of float)
860:?         'out1' ( temp 4-component vector of float)
870:13      Sequence
880:13        move second child to first child ( temp 2-component vector of float)
890:?           'out2.v' (layout( location=2) out 2-component vector of float)
900:13          v: direct index for structure ( temp 2-component vector of float)
910:?             'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
920:13            Constant:
930:13              0 (const int)
940:13        move second child to first child ( temp 2-component vector of int)
950:?           'out2.i' (layout( location=3) out 2-component vector of int)
960:13          i: direct index for structure ( temp 2-component vector of int)
970:?             'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
980:13            Constant:
990:13              1 (const int)
1000:13      Sequence
1010:13        move second child to first child ( temp 2-component vector of float)
1020:?           'out3.v' (layout( location=4) out 2-component vector of float)
1030:13          v: direct index for structure ( temp 2-component vector of float)
1040:?             'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1050:13            Constant:
1060:13              0 (const int)
1070:13        move second child to first child ( temp 2-component vector of int)
1080:?           'out3.i' (layout( location=5) out 2-component vector of int)
1090:13          i: direct index for structure ( temp 2-component vector of int)
1100:?             'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1110:13            Constant:
1120:13              1 (const int)
1130:?   Linker Objects
1140:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1150:?     'input' (layout( location=0) in 4-component vector of float)
1160:?     'out1' (layout( location=1) out 4-component vector of float)
1170:?     'out2.v' (layout( location=2) out 2-component vector of float)
1180:?     'out2.i' (layout( location=3) out 2-component vector of int)
1190:?     'out3.v' (layout( location=4) out 2-component vector of float)
1200:?     'out3.i' (layout( location=5) out 2-component vector of int)
121
122
123Linked fragment stage:
124
125
126Shader version: 500
127gl_FragCoord origin is upper left
1280:? Sequence
1290:7  Function Definition: fun(struct-OutParam-vf2-vi21; ( temp void)
1300:7    Function Parameters:
1310:7      'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1320:?     Sequence
1330:8      move second child to first child ( temp 2-component vector of float)
1340:8        v: direct index for structure ( temp 2-component vector of float)
1350:8          'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1360:8          Constant:
1370:8            0 (const int)
1380:8        Constant:
1390:8          0.400000
1400:8          0.400000
1410:9      move second child to first child ( temp 2-component vector of int)
1420:9        i: direct index for structure ( temp 2-component vector of int)
1430:9          'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1440:9          Constant:
1450:9            1 (const int)
1460:9        Constant:
1470:9          7 (const int)
1480:9          7 (const int)
1490:13  Function Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float)
1500:13    Function Parameters:
1510:13      'input' ( in 4-component vector of float)
1520:13      'out1' ( out 4-component vector of float)
1530:13      'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1540:13      'out3' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1550:?     Sequence
1560:14      move second child to first child ( temp 4-component vector of float)
1570:14        'out1' ( out 4-component vector of float)
1580:14        'input' ( in 4-component vector of float)
1590:15      move second child to first child ( temp 2-component vector of float)
1600:15        v: direct index for structure ( temp 2-component vector of float)
1610:15          'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1620:15          Constant:
1630:15            0 (const int)
1640:15        Constant:
1650:15          2.000000
1660:15          2.000000
1670:16      move second child to first child ( temp 2-component vector of int)
1680:16        i: direct index for structure ( temp 2-component vector of int)
1690:16          'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1700:16          Constant:
1710:16            1 (const int)
1720:16        Constant:
1730:16          3 (const int)
1740:16          3 (const int)
1750:18      move second child to first child ( temp 2-component vector of float)
1760:18        v: direct index for structure ( temp 2-component vector of float)
1770:18          'local' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1780:18          Constant:
1790:18            0 (const int)
1800:18        Constant:
1810:18          12.000000
1820:18          12.000000
1830:19      move second child to first child ( temp 2-component vector of int)
1840:19        i: direct index for structure ( temp 2-component vector of int)
1850:19          'local' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1860:19          Constant:
1870:19            1 (const int)
1880:19        Constant:
1890:19          13 (const int)
1900:19          13 (const int)
1910:20      Function Call: fun(struct-OutParam-vf2-vi21; ( temp void)
1920:20        'out3' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
1930:22      Branch: Return with expression
1940:22        'out1' ( out 4-component vector of float)
1950:13  Function Definition: PixelShaderFunction( ( temp void)
1960:13    Function Parameters:
1970:?     Sequence
1980:13      move second child to first child ( temp 4-component vector of float)
1990:?         'input' ( temp 4-component vector of float)
2000:?         'input' (layout( location=0) in 4-component vector of float)
2010:13      move second child to first child ( temp 4-component vector of float)
2020:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
2030:13        Function Call: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float)
2040:?           'input' ( temp 4-component vector of float)
2050:?           'out1' ( temp 4-component vector of float)
2060:?           'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
2070:?           'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
2080:13      move second child to first child ( temp 4-component vector of float)
2090:?         'out1' (layout( location=1) out 4-component vector of float)
2100:?         'out1' ( temp 4-component vector of float)
2110:13      Sequence
2120:13        move second child to first child ( temp 2-component vector of float)
2130:?           'out2.v' (layout( location=2) out 2-component vector of float)
2140:13          v: direct index for structure ( temp 2-component vector of float)
2150:?             'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
2160:13            Constant:
2170:13              0 (const int)
2180:13        move second child to first child ( temp 2-component vector of int)
2190:?           'out2.i' (layout( location=3) out 2-component vector of int)
2200:13          i: direct index for structure ( temp 2-component vector of int)
2210:?             'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
2220:13            Constant:
2230:13              1 (const int)
2240:13      Sequence
2250:13        move second child to first child ( temp 2-component vector of float)
2260:?           'out3.v' (layout( location=4) out 2-component vector of float)
2270:13          v: direct index for structure ( temp 2-component vector of float)
2280:?             'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
2290:13            Constant:
2300:13              0 (const int)
2310:13        move second child to first child ( temp 2-component vector of int)
2320:?           'out3.i' (layout( location=5) out 2-component vector of int)
2330:13          i: direct index for structure ( temp 2-component vector of int)
2340:?             'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
2350:13            Constant:
2360:13              1 (const int)
2370:?   Linker Objects
2380:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
2390:?     'input' (layout( location=0) in 4-component vector of float)
2400:?     'out1' (layout( location=1) out 4-component vector of float)
2410:?     'out2.v' (layout( location=2) out 2-component vector of float)
2420:?     'out2.i' (layout( location=3) out 2-component vector of int)
2430:?     'out3.v' (layout( location=4) out 2-component vector of float)
2440:?     'out3.i' (layout( location=5) out 2-component vector of int)
245
246// Module Version 10000
247// Generated by (magic number): 80007
248// Id's are bound by 89
249
250                              Capability Shader
251               1:             ExtInstImport  "GLSL.std.450"
252                              MemoryModel Logical GLSL450
253                              EntryPoint Fragment 4  "PixelShaderFunction" 57 60 73 76 80 83 86
254                              ExecutionMode 4 OriginUpperLeft
255                              Source HLSL 500
256                              Name 4  "PixelShaderFunction"
257                              Name 10  "OutParam"
258                              MemberName 10(OutParam) 0  "v"
259                              MemberName 10(OutParam) 1  "i"
260                              Name 14  "fun(struct-OutParam-vf2-vi21;"
261                              Name 13  "op"
262                              Name 23  "@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;"
263                              Name 19  "input"
264                              Name 20  "out1"
265                              Name 21  "out2"
266                              Name 22  "out3"
267                              Name 42  "local"
268                              Name 49  "param"
269                              Name 55  "input"
270                              Name 57  "input"
271                              Name 60  "@entryPointOutput"
272                              Name 61  "out1"
273                              Name 62  "out2"
274                              Name 63  "out3"
275                              Name 64  "param"
276                              Name 66  "param"
277                              Name 67  "param"
278                              Name 68  "param"
279                              Name 73  "out1"
280                              Name 76  "out2.v"
281                              Name 80  "out2.i"
282                              Name 83  "out3.v"
283                              Name 86  "out3.i"
284                              Decorate 57(input) Location 0
285                              Decorate 60(@entryPointOutput) Location 0
286                              Decorate 73(out1) Location 1
287                              Decorate 76(out2.v) Location 2
288                              Decorate 80(out2.i) Location 3
289                              Decorate 83(out3.v) Location 4
290                              Decorate 86(out3.i) Location 5
291               2:             TypeVoid
292               3:             TypeFunction 2
293               6:             TypeFloat 32
294               7:             TypeVector 6(float) 2
295               8:             TypeInt 32 1
296               9:             TypeVector 8(int) 2
297    10(OutParam):             TypeStruct 7(fvec2) 9(ivec2)
298              11:             TypePointer Function 10(OutParam)
299              12:             TypeFunction 2 11(ptr)
300              16:             TypeVector 6(float) 4
301              17:             TypePointer Function 16(fvec4)
302              18:             TypeFunction 16(fvec4) 17(ptr) 17(ptr) 11(ptr) 11(ptr)
303              25:      8(int) Constant 0
304              26:    6(float) Constant 1053609165
305              27:    7(fvec2) ConstantComposite 26 26
306              28:             TypePointer Function 7(fvec2)
307              30:      8(int) Constant 1
308              31:      8(int) Constant 7
309              32:    9(ivec2) ConstantComposite 31 31
310              33:             TypePointer Function 9(ivec2)
311              36:    6(float) Constant 1073741824
312              37:    7(fvec2) ConstantComposite 36 36
313              39:      8(int) Constant 3
314              40:    9(ivec2) ConstantComposite 39 39
315              43:    6(float) Constant 1094713344
316              44:    7(fvec2) ConstantComposite 43 43
317              46:      8(int) Constant 13
318              47:    9(ivec2) ConstantComposite 46 46
319              56:             TypePointer Input 16(fvec4)
320       57(input):     56(ptr) Variable Input
321              59:             TypePointer Output 16(fvec4)
32260(@entryPointOutput):     59(ptr) Variable Output
323        73(out1):     59(ptr) Variable Output
324              75:             TypePointer Output 7(fvec2)
325      76(out2.v):     75(ptr) Variable Output
326              79:             TypePointer Output 9(ivec2)
327      80(out2.i):     79(ptr) Variable Output
328      83(out3.v):     75(ptr) Variable Output
329      86(out3.i):     79(ptr) Variable Output
3304(PixelShaderFunction):           2 Function None 3
331               5:             Label
332       55(input):     17(ptr) Variable Function
333        61(out1):     17(ptr) Variable Function
334        62(out2):     11(ptr) Variable Function
335        63(out3):     11(ptr) Variable Function
336       64(param):     17(ptr) Variable Function
337       66(param):     17(ptr) Variable Function
338       67(param):     11(ptr) Variable Function
339       68(param):     11(ptr) Variable Function
340              58:   16(fvec4) Load 57(input)
341                              Store 55(input) 58
342              65:   16(fvec4) Load 55(input)
343                              Store 64(param) 65
344              69:   16(fvec4) FunctionCall 23(@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;) 64(param) 66(param) 67(param) 68(param)
345              70:   16(fvec4) Load 66(param)
346                              Store 61(out1) 70
347              71:10(OutParam) Load 67(param)
348                              Store 62(out2) 71
349              72:10(OutParam) Load 68(param)
350                              Store 63(out3) 72
351                              Store 60(@entryPointOutput) 69
352              74:   16(fvec4) Load 61(out1)
353                              Store 73(out1) 74
354              77:     28(ptr) AccessChain 62(out2) 25
355              78:    7(fvec2) Load 77
356                              Store 76(out2.v) 78
357              81:     33(ptr) AccessChain 62(out2) 30
358              82:    9(ivec2) Load 81
359                              Store 80(out2.i) 82
360              84:     28(ptr) AccessChain 63(out3) 25
361              85:    7(fvec2) Load 84
362                              Store 83(out3.v) 85
363              87:     33(ptr) AccessChain 63(out3) 30
364              88:    9(ivec2) Load 87
365                              Store 86(out3.i) 88
366                              Return
367                              FunctionEnd
36814(fun(struct-OutParam-vf2-vi21;):           2 Function None 12
369          13(op):     11(ptr) FunctionParameter
370              15:             Label
371              29:     28(ptr) AccessChain 13(op) 25
372                              Store 29 27
373              34:     33(ptr) AccessChain 13(op) 30
374                              Store 34 32
375                              Return
376                              FunctionEnd
37723(@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;):   16(fvec4) Function None 18
378       19(input):     17(ptr) FunctionParameter
379        20(out1):     17(ptr) FunctionParameter
380        21(out2):     11(ptr) FunctionParameter
381        22(out3):     11(ptr) FunctionParameter
382              24:             Label
383       42(local):     11(ptr) Variable Function
384       49(param):     11(ptr) Variable Function
385              35:   16(fvec4) Load 19(input)
386                              Store 20(out1) 35
387              38:     28(ptr) AccessChain 21(out2) 25
388                              Store 38 37
389              41:     33(ptr) AccessChain 21(out2) 30
390                              Store 41 40
391              45:     28(ptr) AccessChain 42(local) 25
392                              Store 45 44
393              48:     33(ptr) AccessChain 42(local) 30
394                              Store 48 47
395              50:           2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 49(param)
396              51:10(OutParam) Load 49(param)
397                              Store 22(out3) 51
398              52:   16(fvec4) Load 20(out1)
399                              ReturnValue 52
400                              FunctionEnd
401