(Still adding tests: do not commit) This fixes PR #632 so that: (a) The 4 PerVertex builtins are added to an interface block for all stages except fragment. (b) Other builtin qualified variables are added as "loose" linkage members. (c) Arrayness from the PerVertex builtins is moved to the PerVertex block. (d) Sometimes, two PerVertex blocks are created, one for in, one for out (e.g, for some GS that both reads and writes a Position)
340 lines
20 KiB
Plaintext
Executable File
340 lines
20 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' (temp 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' (temp 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' (temp 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 Sequence
|
|
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 '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 Constant:
|
|
0:15 0 (const int)
|
|
0:15 v: direct index for structure (temp 2-component vector of float)
|
|
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
|
|
0:15 Constant:
|
|
0:15 0 (const int)
|
|
0:15 move second child to first child (temp 4-component vector of float)
|
|
0:15 fragCoord: direct index for structure (temp 4-component vector of float)
|
|
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 Constant:
|
|
0:15 1 (const int)
|
|
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
|
|
0:15 move second child to first child (temp 2-component vector of int)
|
|
0:15 i2: direct index for structure (temp 2-component vector of int)
|
|
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 Constant:
|
|
0:15 2 (const int)
|
|
0:15 i2: direct index for structure (temp 2-component vector of int)
|
|
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
|
|
0:15 Constant:
|
|
0:15 1 (const int)
|
|
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 Comma (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:17 Sequence
|
|
0:17 move second child to first child (temp 2-component vector of float)
|
|
0:17 v: direct index for structure (temp 2-component vector of float)
|
|
0:17 'aggShadow' (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:17 Constant:
|
|
0:17 0 (const int)
|
|
0:17 v: direct index for structure (temp 2-component vector of float)
|
|
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
|
|
0:17 Constant:
|
|
0:17 0 (const int)
|
|
0:17 move second child to first child (temp 4-component vector of float)
|
|
0:17 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
|
|
0:17 'aggShadow' (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:17 Constant:
|
|
0:17 1 (const int)
|
|
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
|
|
0:17 move second child to first child (temp 2-component vector of int)
|
|
0:17 i2: direct index for structure (temp 2-component vector of int)
|
|
0:17 'aggShadow' (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:17 Constant:
|
|
0:17 2 (const int)
|
|
0:17 i2: direct index for structure (temp 2-component vector of int)
|
|
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
|
|
0:17 Constant:
|
|
0:17 1 (const int)
|
|
0:17 'aggShadow' (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:19 Sequence
|
|
0:19 move second child to first child (temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
|
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:19 Branch: Return
|
|
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' (temp 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' (temp 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' (temp 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 Sequence
|
|
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 '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 Constant:
|
|
0:15 0 (const int)
|
|
0:15 v: direct index for structure (temp 2-component vector of float)
|
|
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
|
|
0:15 Constant:
|
|
0:15 0 (const int)
|
|
0:15 move second child to first child (temp 4-component vector of float)
|
|
0:15 fragCoord: direct index for structure (temp 4-component vector of float)
|
|
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 Constant:
|
|
0:15 1 (const int)
|
|
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
|
|
0:15 move second child to first child (temp 2-component vector of int)
|
|
0:15 i2: direct index for structure (temp 2-component vector of int)
|
|
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 Constant:
|
|
0:15 2 (const int)
|
|
0:15 i2: direct index for structure (temp 2-component vector of int)
|
|
0:15 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
|
|
0:15 Constant:
|
|
0:15 1 (const int)
|
|
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 Comma (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:17 Sequence
|
|
0:17 move second child to first child (temp 2-component vector of float)
|
|
0:17 v: direct index for structure (temp 2-component vector of float)
|
|
0:17 'aggShadow' (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:17 Constant:
|
|
0:17 0 (const int)
|
|
0:17 v: direct index for structure (temp 2-component vector of float)
|
|
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
|
|
0:17 Constant:
|
|
0:17 0 (const int)
|
|
0:17 move second child to first child (temp 4-component vector of float)
|
|
0:17 fragCoord: direct index for structure (temp 4-component vector of float FragCoord)
|
|
0:17 'aggShadow' (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:17 Constant:
|
|
0:17 1 (const int)
|
|
0:? 'i_fragCoord' (in 4-component vector of float FragCoord)
|
|
0:17 move second child to first child (temp 2-component vector of int)
|
|
0:17 i2: direct index for structure (temp 2-component vector of int)
|
|
0:17 'aggShadow' (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:17 Constant:
|
|
0:17 2 (const int)
|
|
0:17 i2: direct index for structure (temp 2-component vector of int)
|
|
0:17 'i' (layout(location=0 ) in structure{temp 2-component vector of float v, temp 2-component vector of int i2})
|
|
0:17 Constant:
|
|
0:17 1 (const int)
|
|
0:17 'aggShadow' (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:19 Sequence
|
|
0:19 move second child to first child (temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
|
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:19 Branch: Return
|
|
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 78
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "PixelShaderFunction" 33 40 70
|
|
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 30 "local"
|
|
Name 31 "InParam"
|
|
MemberName 31(InParam) 0 "v"
|
|
MemberName 31(InParam) 1 "i2"
|
|
Name 33 "i"
|
|
Name 40 "i_fragCoord"
|
|
Name 50 "ret1"
|
|
Name 51 "param"
|
|
Name 54 "ret2"
|
|
Name 55 "InParam"
|
|
MemberName 55(InParam) 0 "v"
|
|
MemberName 55(InParam) 1 "fragCoord"
|
|
MemberName 55(InParam) 2 "i2"
|
|
Name 57 "aggShadow"
|
|
Name 66 "param"
|
|
Name 70 "@entryPointOutput"
|
|
Decorate 33(i) Location 0
|
|
Decorate 40(i_fragCoord) BuiltIn FragCoord
|
|
MemberDecorate 55(InParam) 1 BuiltIn FragCoord
|
|
Decorate 70(@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: 9(int) Constant 0
|
|
18: TypeInt 32 0
|
|
19: 18(int) Constant 1
|
|
20: TypePointer Function 6(float)
|
|
23: 9(int) Constant 1
|
|
24: 18(int) Constant 0
|
|
31(InParam): TypeStruct 7(fvec2) 10(ivec2)
|
|
32: TypePointer Input 31(InParam)
|
|
33(i): 32(ptr) Variable Input
|
|
34: TypePointer Input 7(fvec2)
|
|
37: TypePointer Function 7(fvec2)
|
|
39: TypePointer Input 8(fvec4)
|
|
40(i_fragCoord): 39(ptr) Variable Input
|
|
42: TypePointer Function 8(fvec4)
|
|
44: 9(int) Constant 2
|
|
45: TypePointer Input 10(ivec2)
|
|
48: TypePointer Function 10(ivec2)
|
|
55(InParam): TypeStruct 7(fvec2) 8(fvec4) 10(ivec2)
|
|
56: TypePointer Function 55(InParam)
|
|
69: TypePointer Output 8(fvec4)
|
|
70(@entryPointOutput): 69(ptr) Variable Output
|
|
4(PixelShaderFunction): 2 Function None 3
|
|
5: Label
|
|
30(local): 12(ptr) Variable Function
|
|
50(ret1): 20(ptr) Variable Function
|
|
51(param): 12(ptr) Variable Function
|
|
54(ret2): 20(ptr) Variable Function
|
|
57(aggShadow): 56(ptr) Variable Function
|
|
66(param): 56(ptr) Variable Function
|
|
35: 34(ptr) AccessChain 33(i) 17
|
|
36: 7(fvec2) Load 35
|
|
38: 37(ptr) AccessChain 30(local) 17
|
|
Store 38 36
|
|
41: 8(fvec4) Load 40(i_fragCoord)
|
|
43: 42(ptr) AccessChain 30(local) 23
|
|
Store 43 41
|
|
46: 45(ptr) AccessChain 33(i) 23
|
|
47: 10(ivec2) Load 46
|
|
49: 48(ptr) AccessChain 30(local) 44
|
|
Store 49 47
|
|
52: 11(InParam) Load 30(local)
|
|
Store 51(param) 52
|
|
53: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 51(param)
|
|
Store 50(ret1) 53
|
|
58: 34(ptr) AccessChain 33(i) 17
|
|
59: 7(fvec2) Load 58
|
|
60: 37(ptr) AccessChain 57(aggShadow) 17
|
|
Store 60 59
|
|
61: 8(fvec4) Load 40(i_fragCoord)
|
|
62: 42(ptr) AccessChain 57(aggShadow) 23
|
|
Store 62 61
|
|
63: 45(ptr) AccessChain 33(i) 23
|
|
64: 10(ivec2) Load 63
|
|
65: 48(ptr) AccessChain 57(aggShadow) 44
|
|
Store 65 64
|
|
67: 55(InParam) Load 57(aggShadow)
|
|
Store 66(param) 67
|
|
68: 6(float) FunctionCall 15(fun(struct-InParam-vf2-vf4-vi21;) 66(param)
|
|
Store 54(ret2) 68
|
|
71: 42(ptr) AccessChain 30(local) 23
|
|
72: 8(fvec4) Load 71
|
|
73: 6(float) Load 50(ret1)
|
|
74: 8(fvec4) VectorTimesScalar 72 73
|
|
75: 6(float) Load 54(ret2)
|
|
76: 8(fvec4) VectorTimesScalar 74 75
|
|
Store 70(@entryPointOutput) 76
|
|
Return
|
|
FunctionEnd
|
|
15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13
|
|
14(p): 12(ptr) FunctionParameter
|
|
16: Label
|
|
21: 20(ptr) AccessChain 14(p) 17 19
|
|
22: 6(float) Load 21
|
|
25: 20(ptr) AccessChain 14(p) 23 24
|
|
26: 6(float) Load 25
|
|
27: 6(float) FAdd 22 26
|
|
ReturnValue 27
|
|
FunctionEnd
|