This introduces parallel types for IO-type containing aggregates used as non-entry point function parameters or return types, or declared as variables. Further uses of the same original type will share the same sanitized deep structure. This is intended to be used with the wrap-entry-point branch.
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, 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, 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)
|
|
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float 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, 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, 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)
|
|
0:9 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float 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 17 "InParam"
|
|
MemberName 17(InParam) 0 "v"
|
|
MemberName 17(InParam) 1 "fragCoord"
|
|
MemberName 17(InParam) 2 "i2"
|
|
Name 21 "@PixelShaderFunction(struct-InParam-vf2-vf4-vi21;"
|
|
Name 20 "i"
|
|
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 17(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(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2)
|
|
18: TypePointer Function 17(InParam)
|
|
19: TypeFunction 8(fvec4) 18(ptr)
|
|
23: 9(int) Constant 0
|
|
24: TypeInt 32 0
|
|
25: 24(int) Constant 1
|
|
26: TypePointer Function 6(float)
|
|
29: 9(int) Constant 1
|
|
30: 24(int) Constant 0
|
|
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): 18(ptr) Variable Function
|
|
82(param): 18(ptr) Variable Function
|
|
69: 68(ptr) AccessChain 67(i) 23
|
|
70: 7(fvec2) Load 69
|
|
71: 39(ptr) AccessChain 64(i) 23
|
|
Store 71 70
|
|
74: 8(fvec4) Load 73(i_fragCoord)
|
|
75: 42(ptr) AccessChain 64(i) 29
|
|
Store 75 74
|
|
77: 76(ptr) AccessChain 67(i) 29
|
|
78: 10(ivec2) Load 77
|
|
79: 46(ptr) AccessChain 64(i) 45
|
|
Store 79 78
|
|
83: 17(InParam) Load 64(i)
|
|
Store 82(param) 83
|
|
84: 8(fvec4) FunctionCall 21(@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
|
|
27: 26(ptr) AccessChain 14(p) 23 25
|
|
28: 6(float) Load 27
|
|
31: 26(ptr) AccessChain 14(p) 29 30
|
|
32: 6(float) Load 31
|
|
33: 6(float) FAdd 28 32
|
|
ReturnValue 33
|
|
FunctionEnd
|
|
21(@PixelShaderFunction(struct-InParam-vf2-vf4-vi21;): 8(fvec4) Function None 19
|
|
20(i): 18(ptr) FunctionParameter
|
|
22: Label
|
|
36(local): 12(ptr) Variable Function
|
|
48(ret1): 26(ptr) Variable Function
|
|
49(param): 12(ptr) Variable Function
|
|
52(ret2): 26(ptr) Variable Function
|
|
53(param): 18(ptr) Variable Function
|
|
37: 17(InParam) Load 20(i)
|
|
38: 7(fvec2) CompositeExtract 37 0
|
|
40: 39(ptr) AccessChain 36(local) 23
|
|
Store 40 38
|
|
41: 8(fvec4) CompositeExtract 37 1
|
|
43: 42(ptr) AccessChain 36(local) 29
|
|
Store 43 41
|
|
44: 10(ivec2) CompositeExtract 37 2
|
|
47: 46(ptr) AccessChain 36(local) 45
|
|
Store 47 44
|
|
50: 11(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: 17(InParam) Load 20(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) 29
|
|
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
|