glslang/Test/baseResults/hlsl.entry-out.frag.out
John Kessenich 02467d8d94 HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.
This needs some render testing, but is destined to be part of master.

This also leads to a variety of other simplifications.
 - IO are global symbols, so only need one list of linkage nodes (deferred)
 - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized
 - several parts of splitting/flattening are now localized
2017-02-06 22:58:32 -07:00

400 lines
21 KiB
Plaintext
Executable File

hlsl.entry-out.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: fun(struct-OutParam-vf2-vi21; (temp void)
0:7 Function Parameters:
0:7 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:8 move second child to first child (temp 2-component vector of float)
0:8 v: direct index for structure (temp 2-component vector of float)
0:8 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
0:8 0.400000
0:8 0.400000
0:9 move second child to first child (temp 2-component vector of int)
0:9 i: direct index for structure (temp 2-component vector of int)
0:9 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:9 Constant:
0:9 1 (const int)
0:9 Constant:
0:9 7 (const int)
0:9 7 (const int)
0:13 Function Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float)
0:13 Function Parameters:
0:13 'input' (in 4-component vector of float)
0:13 'out1' (out 4-component vector of float)
0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:14 move second child to first child (temp 4-component vector of float)
0:14 'out1' (out 4-component vector of float)
0:14 'input' (in 4-component vector of float)
0:15 move second child to first child (temp 2-component vector of float)
0:15 v: direct index for structure (temp 2-component vector of float)
0:15 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:15 Constant:
0:15 0 (const int)
0:15 Constant:
0:15 2.000000
0:15 2.000000
0:16 move second child to first child (temp 2-component vector of int)
0:16 i: direct index for structure (temp 2-component vector of int)
0:16 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:16 Constant:
0:16 1 (const int)
0:16 Constant:
0:16 3 (const int)
0:16 3 (const int)
0:18 move second child to first child (temp 2-component vector of float)
0:18 v: direct index for structure (temp 2-component vector of float)
0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:18 Constant:
0:18 0 (const int)
0:18 Constant:
0:18 12.000000
0:18 12.000000
0:19 move second child to first child (temp 2-component vector of int)
0:19 i: direct index for structure (temp 2-component vector of int)
0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:19 Constant:
0:19 1 (const int)
0:19 Constant:
0:19 13 (const int)
0:19 13 (const int)
0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void)
0:20 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:22 Branch: Return with expression
0:22 'out1' (out 4-component vector of float)
0:13 Function Definition: PixelShaderFunction( (temp void)
0:13 Function Parameters:
0:? Sequence
0:13 move second child to first child (temp 4-component vector of float)
0:? 'input' (temp 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:13 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:13 Function Call: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float)
0:? 'input' (temp 4-component vector of float)
0:? 'out1' (temp 4-component vector of float)
0:? 'out2' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? 'out3' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 move second child to first child (temp 4-component vector of float)
0:? 'out1' (layout(location=1 ) out 4-component vector of float)
0:? 'out1' (temp 4-component vector of float)
0:13 Sequence
0:13 move second child to first child (temp 2-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
0:13 v: direct index for structure (temp 2-component vector of float)
0:? 'out2' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 Constant:
0:13 0 (const int)
0:13 move second child to first child (temp 2-component vector of int)
0:? 'i' (layout(location=3 ) out 2-component vector of int)
0:13 i: direct index for structure (temp 2-component vector of int)
0:? 'out2' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 Constant:
0:13 1 (const int)
0:13 Sequence
0:13 move second child to first child (temp 2-component vector of float)
0:? 'v' (layout(location=4 ) out 2-component vector of float)
0:13 v: direct index for structure (temp 2-component vector of float)
0:? 'out3' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 Constant:
0:13 0 (const int)
0:13 move second child to first child (temp 2-component vector of int)
0:? 'i' (layout(location=5 ) out 2-component vector of int)
0:13 i: direct index for structure (temp 2-component vector of int)
0:? 'out3' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 Constant:
0:13 1 (const int)
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'out1' (layout(location=1 ) out 4-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
0:? 'i' (layout(location=3 ) out 2-component vector of int)
0:? 'v' (layout(location=4 ) out 2-component vector of float)
0:? 'i' (layout(location=5 ) out 2-component vector of int)
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:7 Function Definition: fun(struct-OutParam-vf2-vi21; (temp void)
0:7 Function Parameters:
0:7 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:8 move second child to first child (temp 2-component vector of float)
0:8 v: direct index for structure (temp 2-component vector of float)
0:8 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
0:8 0.400000
0:8 0.400000
0:9 move second child to first child (temp 2-component vector of int)
0:9 i: direct index for structure (temp 2-component vector of int)
0:9 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:9 Constant:
0:9 1 (const int)
0:9 Constant:
0:9 7 (const int)
0:9 7 (const int)
0:13 Function Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float)
0:13 Function Parameters:
0:13 'input' (in 4-component vector of float)
0:13 'out1' (out 4-component vector of float)
0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:14 move second child to first child (temp 4-component vector of float)
0:14 'out1' (out 4-component vector of float)
0:14 'input' (in 4-component vector of float)
0:15 move second child to first child (temp 2-component vector of float)
0:15 v: direct index for structure (temp 2-component vector of float)
0:15 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:15 Constant:
0:15 0 (const int)
0:15 Constant:
0:15 2.000000
0:15 2.000000
0:16 move second child to first child (temp 2-component vector of int)
0:16 i: direct index for structure (temp 2-component vector of int)
0:16 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:16 Constant:
0:16 1 (const int)
0:16 Constant:
0:16 3 (const int)
0:16 3 (const int)
0:18 move second child to first child (temp 2-component vector of float)
0:18 v: direct index for structure (temp 2-component vector of float)
0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:18 Constant:
0:18 0 (const int)
0:18 Constant:
0:18 12.000000
0:18 12.000000
0:19 move second child to first child (temp 2-component vector of int)
0:19 i: direct index for structure (temp 2-component vector of int)
0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:19 Constant:
0:19 1 (const int)
0:19 Constant:
0:19 13 (const int)
0:19 13 (const int)
0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void)
0:20 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:22 Branch: Return with expression
0:22 'out1' (out 4-component vector of float)
0:13 Function Definition: PixelShaderFunction( (temp void)
0:13 Function Parameters:
0:? Sequence
0:13 move second child to first child (temp 4-component vector of float)
0:? 'input' (temp 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:13 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:13 Function Call: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float)
0:? 'input' (temp 4-component vector of float)
0:? 'out1' (temp 4-component vector of float)
0:? 'out2' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? 'out3' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 move second child to first child (temp 4-component vector of float)
0:? 'out1' (layout(location=1 ) out 4-component vector of float)
0:? 'out1' (temp 4-component vector of float)
0:13 Sequence
0:13 move second child to first child (temp 2-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
0:13 v: direct index for structure (temp 2-component vector of float)
0:? 'out2' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 Constant:
0:13 0 (const int)
0:13 move second child to first child (temp 2-component vector of int)
0:? 'i' (layout(location=3 ) out 2-component vector of int)
0:13 i: direct index for structure (temp 2-component vector of int)
0:? 'out2' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 Constant:
0:13 1 (const int)
0:13 Sequence
0:13 move second child to first child (temp 2-component vector of float)
0:? 'v' (layout(location=4 ) out 2-component vector of float)
0:13 v: direct index for structure (temp 2-component vector of float)
0:? 'out3' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 Constant:
0:13 0 (const int)
0:13 move second child to first child (temp 2-component vector of int)
0:? 'i' (layout(location=5 ) out 2-component vector of int)
0:13 i: direct index for structure (temp 2-component vector of int)
0:? 'out3' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:13 Constant:
0:13 1 (const int)
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'out1' (layout(location=1 ) out 4-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
0:? 'i' (layout(location=3 ) out 2-component vector of int)
0:? 'v' (layout(location=4 ) out 2-component vector of float)
0:? 'i' (layout(location=5 ) out 2-component vector of int)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 89
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 57 60 73 76 80 83 86
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 10 "OutParam"
MemberName 10(OutParam) 0 "v"
MemberName 10(OutParam) 1 "i"
Name 14 "fun(struct-OutParam-vf2-vi21;"
Name 13 "op"
Name 23 "@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;"
Name 19 "input"
Name 20 "out1"
Name 21 "out2"
Name 22 "out3"
Name 42 "local"
Name 49 "param"
Name 55 "input"
Name 57 "input"
Name 60 "@entryPointOutput"
Name 61 "out1"
Name 62 "out2"
Name 63 "out3"
Name 64 "param"
Name 66 "param"
Name 67 "param"
Name 68 "param"
Name 73 "out1"
Name 76 "v"
Name 80 "i"
Name 83 "v"
Name 86 "i"
Decorate 57(input) Location 0
Decorate 60(@entryPointOutput) Location 0
Decorate 73(out1) Location 1
Decorate 76(v) Location 2
Decorate 80(i) Location 3
Decorate 83(v) Location 4
Decorate 86(i) Location 5
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 2
8: TypeInt 32 1
9: TypeVector 8(int) 2
10(OutParam): TypeStruct 7(fvec2) 9(ivec2)
11: TypePointer Function 10(OutParam)
12: TypeFunction 2 11(ptr)
16: TypeVector 6(float) 4
17: TypePointer Function 16(fvec4)
18: TypeFunction 16(fvec4) 17(ptr) 17(ptr) 11(ptr) 11(ptr)
25: 8(int) Constant 0
26: 6(float) Constant 1053609165
27: 7(fvec2) ConstantComposite 26 26
28: TypePointer Function 7(fvec2)
30: 8(int) Constant 1
31: 8(int) Constant 7
32: 9(ivec2) ConstantComposite 31 31
33: TypePointer Function 9(ivec2)
36: 6(float) Constant 1073741824
37: 7(fvec2) ConstantComposite 36 36
39: 8(int) Constant 3
40: 9(ivec2) ConstantComposite 39 39
43: 6(float) Constant 1094713344
44: 7(fvec2) ConstantComposite 43 43
46: 8(int) Constant 13
47: 9(ivec2) ConstantComposite 46 46
56: TypePointer Input 16(fvec4)
57(input): 56(ptr) Variable Input
59: TypePointer Output 16(fvec4)
60(@entryPointOutput): 59(ptr) Variable Output
73(out1): 59(ptr) Variable Output
75: TypePointer Output 7(fvec2)
76(v): 75(ptr) Variable Output
79: TypePointer Output 9(ivec2)
80(i): 79(ptr) Variable Output
83(v): 75(ptr) Variable Output
86(i): 79(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
55(input): 17(ptr) Variable Function
61(out1): 17(ptr) Variable Function
62(out2): 11(ptr) Variable Function
63(out3): 11(ptr) Variable Function
64(param): 17(ptr) Variable Function
66(param): 17(ptr) Variable Function
67(param): 11(ptr) Variable Function
68(param): 11(ptr) Variable Function
58: 16(fvec4) Load 57(input)
Store 55(input) 58
65: 16(fvec4) Load 55(input)
Store 64(param) 65
69: 16(fvec4) FunctionCall 23(@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;) 64(param) 66(param) 67(param) 68(param)
70: 16(fvec4) Load 66(param)
Store 61(out1) 70
71:10(OutParam) Load 67(param)
Store 62(out2) 71
72:10(OutParam) Load 68(param)
Store 63(out3) 72
Store 60(@entryPointOutput) 69
74: 16(fvec4) Load 61(out1)
Store 73(out1) 74
77: 28(ptr) AccessChain 62(out2) 25
78: 7(fvec2) Load 77
Store 76(v) 78
81: 33(ptr) AccessChain 62(out2) 30
82: 9(ivec2) Load 81
Store 80(i) 82
84: 28(ptr) AccessChain 63(out3) 25
85: 7(fvec2) Load 84
Store 83(v) 85
87: 33(ptr) AccessChain 63(out3) 30
88: 9(ivec2) Load 87
Store 86(i) 88
Return
FunctionEnd
14(fun(struct-OutParam-vf2-vi21;): 2 Function None 12
13(op): 11(ptr) FunctionParameter
15: Label
29: 28(ptr) AccessChain 13(op) 25
Store 29 27
34: 33(ptr) AccessChain 13(op) 30
Store 34 32
Return
FunctionEnd
23(@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;): 16(fvec4) Function None 18
19(input): 17(ptr) FunctionParameter
20(out1): 17(ptr) FunctionParameter
21(out2): 11(ptr) FunctionParameter
22(out3): 11(ptr) FunctionParameter
24: Label
42(local): 11(ptr) Variable Function
49(param): 11(ptr) Variable Function
35: 16(fvec4) Load 19(input)
Store 20(out1) 35
38: 28(ptr) AccessChain 21(out2) 25
Store 38 37
41: 33(ptr) AccessChain 21(out2) 30
Store 41 40
45: 28(ptr) AccessChain 42(local) 25
Store 45 44
48: 33(ptr) AccessChain 42(local) 30
Store 48 47
50: 2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 49(param)
51:10(OutParam) Load 49(param)
Store 22(out3) 51
52: 16(fvec4) Load 20(out1)
ReturnValue 52
FunctionEnd