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