mirror of
https://github.com/RPCS3/glslang.git
synced 2024-12-03 16:41:30 +00:00
02467d8d94
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
400 lines
21 KiB
Plaintext
Executable File
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
|