This is one step in providing full linker functionality for creating correct SPIR-V from multiple compilation units for the same stage. (This was the only remaining "hard" part. The rest should be simple.)
273 lines
10 KiB
Plaintext
Executable File
273 lines
10 KiB
Plaintext
Executable File
spv.unit1.frag
|
|
Shader version: 460
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:8 Function Definition: main( ( global void)
|
|
0:8 Function Parameters:
|
|
0:10 Sequence
|
|
0:10 move second child to first child ( temp highp float)
|
|
0:10 'f' ( global highp float)
|
|
0:10 Constant:
|
|
0:10 10.000000
|
|
0:11 Sequence
|
|
0:11 move second child to first child ( temp highp float)
|
|
0:11 'g' ( temp highp float)
|
|
0:11 Function Call: foo( ( global highp float)
|
|
0:12 add second child into first child ( temp highp float)
|
|
0:12 'f' ( global highp float)
|
|
0:12 'g' ( temp highp float)
|
|
0:13 add second child into first child ( temp highp float)
|
|
0:13 'f' ( global highp float)
|
|
0:13 direct index ( temp highp float)
|
|
0:13 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
|
|
0:13 Constant:
|
|
0:13 1 (const int)
|
|
0:? Linker Objects
|
|
0:? 'f' ( global highp float)
|
|
0:? 'a1' ( global highp float)
|
|
|
|
spv.unit2.frag
|
|
Shader version: 410
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:9 Function Definition: foo( ( global highp float)
|
|
0:9 Function Parameters:
|
|
0:11 Sequence
|
|
0:11 Sequence
|
|
0:11 move second child to first child ( temp highp float)
|
|
0:11 'h2' ( temp highp float)
|
|
0:11 component-wise multiply ( temp highp float)
|
|
0:11 Constant:
|
|
0:11 2.000000
|
|
0:11 'f' ( global highp float)
|
|
0:12 Sequence
|
|
0:12 move second child to first child ( temp highp float)
|
|
0:12 'g2' ( temp highp float)
|
|
0:12 Function Call: bar( ( global highp float)
|
|
0:13 Branch: Return with expression
|
|
0:13 add ( temp highp float)
|
|
0:13 add ( temp highp float)
|
|
0:13 'h2' ( temp highp float)
|
|
0:13 'g2' ( temp highp float)
|
|
0:13 direct index ( temp highp float)
|
|
0:13 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
|
|
0:13 Constant:
|
|
0:13 1 (const int)
|
|
0:? Linker Objects
|
|
0:? 'a2' ( global highp float)
|
|
0:? 'f' ( global highp float)
|
|
|
|
spv.unit3.frag
|
|
Shader version: 460
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:4 Sequence
|
|
0:4 move second child to first child ( temp highp float)
|
|
0:4 'h3' ( global highp float)
|
|
0:4 Constant:
|
|
0:4 3.000000
|
|
0:6 Function Definition: bar( ( global highp float)
|
|
0:6 Function Parameters:
|
|
0:8 Sequence
|
|
0:8 multiply second child into first child ( temp highp float)
|
|
0:8 'h3' ( global highp float)
|
|
0:8 'f' ( global highp float)
|
|
0:9 Sequence
|
|
0:9 move second child to first child ( temp highp float)
|
|
0:9 'g3' ( temp highp float)
|
|
0:9 component-wise multiply ( temp highp float)
|
|
0:9 Constant:
|
|
0:9 2.000000
|
|
0:9 'h3' ( global highp float)
|
|
0:10 Branch: Return with expression
|
|
0:10 add ( temp highp float)
|
|
0:10 add ( temp highp float)
|
|
0:10 'h3' ( global highp float)
|
|
0:10 'g3' ( temp highp float)
|
|
0:10 direct index ( temp highp float)
|
|
0:10 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
|
|
0:10 Constant:
|
|
0:10 1 (const int)
|
|
0:? Linker Objects
|
|
0:? 'f' ( global highp float)
|
|
0:? 'h3' ( global highp float)
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
Shader version: 460
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:8 Function Definition: main( ( global void)
|
|
0:8 Function Parameters:
|
|
0:10 Sequence
|
|
0:10 move second child to first child ( temp highp float)
|
|
0:10 'f' ( global highp float)
|
|
0:10 Constant:
|
|
0:10 10.000000
|
|
0:11 Sequence
|
|
0:11 move second child to first child ( temp highp float)
|
|
0:11 'g' ( temp highp float)
|
|
0:11 Function Call: foo( ( global highp float)
|
|
0:12 add second child into first child ( temp highp float)
|
|
0:12 'f' ( global highp float)
|
|
0:12 'g' ( temp highp float)
|
|
0:13 add second child into first child ( temp highp float)
|
|
0:13 'f' ( global highp float)
|
|
0:13 direct index ( temp highp float)
|
|
0:13 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
|
|
0:13 Constant:
|
|
0:13 1 (const int)
|
|
0:9 Function Definition: foo( ( global highp float)
|
|
0:9 Function Parameters:
|
|
0:11 Sequence
|
|
0:11 Sequence
|
|
0:11 move second child to first child ( temp highp float)
|
|
0:11 'h2' ( temp highp float)
|
|
0:11 component-wise multiply ( temp highp float)
|
|
0:11 Constant:
|
|
0:11 2.000000
|
|
0:11 'f' ( global highp float)
|
|
0:12 Sequence
|
|
0:12 move second child to first child ( temp highp float)
|
|
0:12 'g2' ( temp highp float)
|
|
0:12 Function Call: bar( ( global highp float)
|
|
0:13 Branch: Return with expression
|
|
0:13 add ( temp highp float)
|
|
0:13 add ( temp highp float)
|
|
0:13 'h2' ( temp highp float)
|
|
0:13 'g2' ( temp highp float)
|
|
0:13 direct index ( temp highp float)
|
|
0:13 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
|
|
0:13 Constant:
|
|
0:13 1 (const int)
|
|
0:4 Sequence
|
|
0:4 move second child to first child ( temp highp float)
|
|
0:4 'h3' ( global highp float)
|
|
0:4 Constant:
|
|
0:4 3.000000
|
|
0:6 Function Definition: bar( ( global highp float)
|
|
0:6 Function Parameters:
|
|
0:8 Sequence
|
|
0:8 multiply second child into first child ( temp highp float)
|
|
0:8 'h3' ( global highp float)
|
|
0:8 'f' ( global highp float)
|
|
0:9 Sequence
|
|
0:9 move second child to first child ( temp highp float)
|
|
0:9 'g3' ( temp highp float)
|
|
0:9 component-wise multiply ( temp highp float)
|
|
0:9 Constant:
|
|
0:9 2.000000
|
|
0:9 'h3' ( global highp float)
|
|
0:10 Branch: Return with expression
|
|
0:10 add ( temp highp float)
|
|
0:10 add ( temp highp float)
|
|
0:10 'h3' ( global highp float)
|
|
0:10 'g3' ( temp highp float)
|
|
0:10 direct index ( temp highp float)
|
|
0:10 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
|
|
0:10 Constant:
|
|
0:10 1 (const int)
|
|
0:? Linker Objects
|
|
0:? 'f' ( global highp float)
|
|
0:? 'a1' ( global highp float)
|
|
0:? 'a2' ( global highp float)
|
|
0:? 'h3' ( global highp float)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80007
|
|
// Id's are bound by 63
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 25
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 460
|
|
Name 4 "main"
|
|
Name 8 "foo("
|
|
Name 10 "bar("
|
|
Name 13 "h3"
|
|
Name 15 "f"
|
|
Name 18 "g"
|
|
Name 25 "gl_FragCoord"
|
|
Name 33 "h2"
|
|
Name 37 "g2"
|
|
Name 50 "g3"
|
|
Name 61 "a1"
|
|
Name 62 "a2"
|
|
Decorate 25(gl_FragCoord) BuiltIn FragCoord
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeFunction 6(float)
|
|
12: TypePointer Private 6(float)
|
|
13(h3): 12(ptr) Variable Private
|
|
14: 6(float) Constant 1077936128
|
|
15(f): 12(ptr) Variable Private
|
|
16: 6(float) Constant 1092616192
|
|
17: TypePointer Function 6(float)
|
|
23: TypeVector 6(float) 4
|
|
24: TypePointer Input 23(fvec4)
|
|
25(gl_FragCoord): 24(ptr) Variable Input
|
|
26: TypeInt 32 0
|
|
27: 26(int) Constant 1
|
|
28: TypePointer Input 6(float)
|
|
34: 6(float) Constant 1073741824
|
|
61(a1): 12(ptr) Variable Private
|
|
62(a2): 12(ptr) Variable Private
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
18(g): 17(ptr) Variable Function
|
|
Store 13(h3) 14
|
|
Store 15(f) 16
|
|
19: 6(float) FunctionCall 8(foo()
|
|
Store 18(g) 19
|
|
20: 6(float) Load 18(g)
|
|
21: 6(float) Load 15(f)
|
|
22: 6(float) FAdd 21 20
|
|
Store 15(f) 22
|
|
29: 28(ptr) AccessChain 25(gl_FragCoord) 27
|
|
30: 6(float) Load 29
|
|
31: 6(float) Load 15(f)
|
|
32: 6(float) FAdd 31 30
|
|
Store 15(f) 32
|
|
Return
|
|
FunctionEnd
|
|
8(foo(): 6(float) Function None 7
|
|
9: Label
|
|
33(h2): 17(ptr) Variable Function
|
|
37(g2): 17(ptr) Variable Function
|
|
35: 6(float) Load 15(f)
|
|
36: 6(float) FMul 34 35
|
|
Store 33(h2) 36
|
|
38: 6(float) FunctionCall 10(bar()
|
|
Store 37(g2) 38
|
|
39: 6(float) Load 33(h2)
|
|
40: 6(float) Load 37(g2)
|
|
41: 6(float) FAdd 39 40
|
|
42: 28(ptr) AccessChain 25(gl_FragCoord) 27
|
|
43: 6(float) Load 42
|
|
44: 6(float) FAdd 41 43
|
|
ReturnValue 44
|
|
FunctionEnd
|
|
10(bar(): 6(float) Function None 7
|
|
11: Label
|
|
50(g3): 17(ptr) Variable Function
|
|
47: 6(float) Load 15(f)
|
|
48: 6(float) Load 13(h3)
|
|
49: 6(float) FMul 48 47
|
|
Store 13(h3) 49
|
|
51: 6(float) Load 13(h3)
|
|
52: 6(float) FMul 34 51
|
|
Store 50(g3) 52
|
|
53: 6(float) Load 13(h3)
|
|
54: 6(float) Load 50(g3)
|
|
55: 6(float) FAdd 53 54
|
|
56: 28(ptr) AccessChain 25(gl_FragCoord) 27
|
|
57: 6(float) Load 56
|
|
58: 6(float) FAdd 55 57
|
|
ReturnValue 58
|
|
FunctionEnd
|