
This removes pervertex output blocks, in favor of using only loose variables. The pervertex blocks are not required and were only partly implemented, and were adding some complication. This change goes with wrap-entry-point.
360 lines
20 KiB
Plaintext
360 lines
20 KiB
Plaintext
hlsl.struct.split.call.vert
|
|
Shader version: 450
|
|
0:? Sequence
|
|
0:17 Function Definition: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; (temp void)
|
|
0:17 Function Parameters:
|
|
0:17 'fn1_in' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:17 'fn1_out' (in structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:? Sequence
|
|
0:18 add (temp 4-component vector of float)
|
|
0:18 Pos_in: direct index for structure (temp 4-component vector of float)
|
|
0:18 'fn1_in' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:18 Constant:
|
|
0:18 1 (const int)
|
|
0:18 Pos_out: direct index for structure (temp 4-component vector of float)
|
|
0:18 'fn1_out' (in structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:18 Constant:
|
|
0:18 1 (const int)
|
|
0:22 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11; (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Function Parameters:
|
|
0:22 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:? Sequence
|
|
0:25 move second child to first child (temp int)
|
|
0:25 x0_out: direct index for structure (temp int)
|
|
0:25 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:25 Constant:
|
|
0:25 0 (const int)
|
|
0:25 x0_in: direct index for structure (temp int)
|
|
0:25 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:25 Constant:
|
|
0:25 0 (const int)
|
|
0:26 move second child to first child (temp 4-component vector of float)
|
|
0:26 Pos_out: direct index for structure (temp 4-component vector of float)
|
|
0:26 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:26 Constant:
|
|
0:26 1 (const int)
|
|
0:26 Pos_in: direct index for structure (temp 4-component vector of float)
|
|
0:26 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:26 Constant:
|
|
0:26 1 (const int)
|
|
0:27 move second child to first child (temp int)
|
|
0:27 x1_out: direct index for structure (temp int)
|
|
0:27 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:27 Constant:
|
|
0:27 2 (const int)
|
|
0:27 x1_in: direct index for structure (temp int)
|
|
0:27 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:27 Constant:
|
|
0:27 2 (const int)
|
|
0:29 Function Call: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; (temp void)
|
|
0:29 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:29 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:31 Branch: Return with expression
|
|
0:31 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Function Definition: main( (temp void)
|
|
0:22 Function Parameters:
|
|
0:? Sequence
|
|
0:22 Sequence
|
|
0:22 move second child to first child (temp int)
|
|
0:22 x0_in: direct index for structure (temp int)
|
|
0:? 'vsin' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:22 Constant:
|
|
0:22 0 (const int)
|
|
0:? 'x0_in' (layout(location=0 ) in int)
|
|
0:22 move second child to first child (temp 4-component vector of float)
|
|
0:22 Pos_in: direct index for structure (temp 4-component vector of float)
|
|
0:? 'vsin' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:? 'Pos_in' (in 4-component vector of float Position)
|
|
0:22 move second child to first child (temp int)
|
|
0:22 x1_in: direct index for structure (temp int)
|
|
0:? 'vsin' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:22 Constant:
|
|
0:22 2 (const int)
|
|
0:? 'x1_in' (layout(location=1 ) in int)
|
|
0:22 Sequence
|
|
0:22 move second child to first child (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 'flattenTemp' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:? 'vsin' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:22 move second child to first child (temp int)
|
|
0:22 x0_out: direct index for structure (temp int)
|
|
0:22 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 0 (const int)
|
|
0:22 x0_out: direct index for structure (temp int)
|
|
0:22 'flattenTemp' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 0 (const int)
|
|
0:22 move second child to first child (temp 4-component vector of float)
|
|
0:? '@entryPointOutput_Pos_out' (out 4-component vector of float Position)
|
|
0:22 Pos_out: direct index for structure (temp 4-component vector of float)
|
|
0:22 'flattenTemp' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:22 move second child to first child (temp int)
|
|
0:22 x1_out: direct index for structure (temp int)
|
|
0:22 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:22 x1_out: direct index for structure (temp int)
|
|
0:22 'flattenTemp' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 2 (const int)
|
|
0:? Linker Objects
|
|
0:? '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
|
0:? 'x0_in' (layout(location=0 ) in int)
|
|
0:? 'Pos_in' (in 4-component vector of float Position)
|
|
0:? 'x1_in' (layout(location=1 ) in int)
|
|
|
|
|
|
Linked vertex stage:
|
|
|
|
|
|
Shader version: 450
|
|
0:? Sequence
|
|
0:17 Function Definition: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; (temp void)
|
|
0:17 Function Parameters:
|
|
0:17 'fn1_in' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:17 'fn1_out' (in structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:? Sequence
|
|
0:18 add (temp 4-component vector of float)
|
|
0:18 Pos_in: direct index for structure (temp 4-component vector of float)
|
|
0:18 'fn1_in' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:18 Constant:
|
|
0:18 1 (const int)
|
|
0:18 Pos_out: direct index for structure (temp 4-component vector of float)
|
|
0:18 'fn1_out' (in structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:18 Constant:
|
|
0:18 1 (const int)
|
|
0:22 Function Definition: @main(struct-VS_INPUT-i1-vf4-i11; (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Function Parameters:
|
|
0:22 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:? Sequence
|
|
0:25 move second child to first child (temp int)
|
|
0:25 x0_out: direct index for structure (temp int)
|
|
0:25 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:25 Constant:
|
|
0:25 0 (const int)
|
|
0:25 x0_in: direct index for structure (temp int)
|
|
0:25 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:25 Constant:
|
|
0:25 0 (const int)
|
|
0:26 move second child to first child (temp 4-component vector of float)
|
|
0:26 Pos_out: direct index for structure (temp 4-component vector of float)
|
|
0:26 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:26 Constant:
|
|
0:26 1 (const int)
|
|
0:26 Pos_in: direct index for structure (temp 4-component vector of float)
|
|
0:26 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:26 Constant:
|
|
0:26 1 (const int)
|
|
0:27 move second child to first child (temp int)
|
|
0:27 x1_out: direct index for structure (temp int)
|
|
0:27 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:27 Constant:
|
|
0:27 2 (const int)
|
|
0:27 x1_in: direct index for structure (temp int)
|
|
0:27 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:27 Constant:
|
|
0:27 2 (const int)
|
|
0:29 Function Call: Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11; (temp void)
|
|
0:29 'vsin' (in structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:29 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:31 Branch: Return with expression
|
|
0:31 'vsout' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Function Definition: main( (temp void)
|
|
0:22 Function Parameters:
|
|
0:? Sequence
|
|
0:22 Sequence
|
|
0:22 move second child to first child (temp int)
|
|
0:22 x0_in: direct index for structure (temp int)
|
|
0:? 'vsin' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:22 Constant:
|
|
0:22 0 (const int)
|
|
0:? 'x0_in' (layout(location=0 ) in int)
|
|
0:22 move second child to first child (temp 4-component vector of float)
|
|
0:22 Pos_in: direct index for structure (temp 4-component vector of float)
|
|
0:? 'vsin' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:? 'Pos_in' (in 4-component vector of float Position)
|
|
0:22 move second child to first child (temp int)
|
|
0:22 x1_in: direct index for structure (temp int)
|
|
0:? 'vsin' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:22 Constant:
|
|
0:22 2 (const int)
|
|
0:? 'x1_in' (layout(location=1 ) in int)
|
|
0:22 Sequence
|
|
0:22 move second child to first child (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 'flattenTemp' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:? 'vsin' (temp structure{temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
|
|
0:22 move second child to first child (temp int)
|
|
0:22 x0_out: direct index for structure (temp int)
|
|
0:22 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 0 (const int)
|
|
0:22 x0_out: direct index for structure (temp int)
|
|
0:22 'flattenTemp' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 0 (const int)
|
|
0:22 move second child to first child (temp 4-component vector of float)
|
|
0:? '@entryPointOutput_Pos_out' (out 4-component vector of float Position)
|
|
0:22 Pos_out: direct index for structure (temp 4-component vector of float)
|
|
0:22 'flattenTemp' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:22 move second child to first child (temp int)
|
|
0:22 x1_out: direct index for structure (temp int)
|
|
0:22 '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 1 (const int)
|
|
0:22 x1_out: direct index for structure (temp int)
|
|
0:22 'flattenTemp' (temp structure{temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
|
|
0:22 Constant:
|
|
0:22 2 (const int)
|
|
0:? Linker Objects
|
|
0:? '@entryPointOutput' (layout(location=0 ) out structure{temp int x0_out, temp int x1_out})
|
|
0:? 'x0_in' (layout(location=0 ) in int)
|
|
0:? 'Pos_in' (in 4-component vector of float Position)
|
|
0:? 'x1_in' (layout(location=1 ) in int)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 80
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4 "main" 52 56 59 68 74
|
|
Name 4 "main"
|
|
Name 9 "VS_INPUT"
|
|
MemberName 9(VS_INPUT) 0 "x0_in"
|
|
MemberName 9(VS_INPUT) 1 "Pos_in"
|
|
MemberName 9(VS_INPUT) 2 "x1_in"
|
|
Name 11 "VS_OUTPUT"
|
|
MemberName 11(VS_OUTPUT) 0 "x0_out"
|
|
MemberName 11(VS_OUTPUT) 1 "Pos_out"
|
|
MemberName 11(VS_OUTPUT) 2 "x1_out"
|
|
Name 16 "Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;"
|
|
Name 14 "fn1_in"
|
|
Name 15 "fn1_out"
|
|
Name 20 "@main(struct-VS_INPUT-i1-vf4-i11;"
|
|
Name 19 "vsin"
|
|
Name 29 "vsout"
|
|
Name 42 "param"
|
|
Name 44 "param"
|
|
Name 50 "vsin"
|
|
Name 52 "x0_in"
|
|
Name 56 "Pos_in"
|
|
Name 59 "x1_in"
|
|
Name 62 "flattenTemp"
|
|
Name 63 "param"
|
|
Name 66 "VS_OUTPUT"
|
|
MemberName 66(VS_OUTPUT) 0 "x0_out"
|
|
MemberName 66(VS_OUTPUT) 1 "x1_out"
|
|
Name 68 "@entryPointOutput"
|
|
Name 74 "@entryPointOutput_Pos_out"
|
|
Decorate 52(x0_in) Location 0
|
|
Decorate 56(Pos_in) BuiltIn Position
|
|
Decorate 59(x1_in) Location 1
|
|
Decorate 68(@entryPointOutput) Location 0
|
|
Decorate 74(@entryPointOutput_Pos_out) BuiltIn Position
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypeFloat 32
|
|
8: TypeVector 7(float) 4
|
|
9(VS_INPUT): TypeStruct 6(int) 8(fvec4) 6(int)
|
|
10: TypePointer Function 9(VS_INPUT)
|
|
11(VS_OUTPUT): TypeStruct 6(int) 8(fvec4) 6(int)
|
|
12: TypePointer Function 11(VS_OUTPUT)
|
|
13: TypeFunction 2 10(ptr) 12(ptr)
|
|
18: TypeFunction 11(VS_OUTPUT) 10(ptr)
|
|
22: 6(int) Constant 1
|
|
23: TypePointer Function 8(fvec4)
|
|
30: 6(int) Constant 0
|
|
31: TypePointer Function 6(int)
|
|
38: 6(int) Constant 2
|
|
51: TypePointer Input 6(int)
|
|
52(x0_in): 51(ptr) Variable Input
|
|
55: TypePointer Input 8(fvec4)
|
|
56(Pos_in): 55(ptr) Variable Input
|
|
59(x1_in): 51(ptr) Variable Input
|
|
66(VS_OUTPUT): TypeStruct 6(int) 6(int)
|
|
67: TypePointer Output 66(VS_OUTPUT)
|
|
68(@entryPointOutput): 67(ptr) Variable Output
|
|
71: TypePointer Output 6(int)
|
|
73: TypePointer Output 8(fvec4)
|
|
74(@entryPointOutput_Pos_out): 73(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
50(vsin): 10(ptr) Variable Function
|
|
62(flattenTemp): 12(ptr) Variable Function
|
|
63(param): 10(ptr) Variable Function
|
|
53: 6(int) Load 52(x0_in)
|
|
54: 31(ptr) AccessChain 50(vsin) 30
|
|
Store 54 53
|
|
57: 8(fvec4) Load 56(Pos_in)
|
|
58: 23(ptr) AccessChain 50(vsin) 22
|
|
Store 58 57
|
|
60: 6(int) Load 59(x1_in)
|
|
61: 31(ptr) AccessChain 50(vsin) 38
|
|
Store 61 60
|
|
64: 9(VS_INPUT) Load 50(vsin)
|
|
Store 63(param) 64
|
|
65:11(VS_OUTPUT) FunctionCall 20(@main(struct-VS_INPUT-i1-vf4-i11;) 63(param)
|
|
Store 62(flattenTemp) 65
|
|
69: 31(ptr) AccessChain 62(flattenTemp) 30
|
|
70: 6(int) Load 69
|
|
72: 71(ptr) AccessChain 68(@entryPointOutput) 30
|
|
Store 72 70
|
|
75: 23(ptr) AccessChain 62(flattenTemp) 22
|
|
76: 8(fvec4) Load 75
|
|
Store 74(@entryPointOutput_Pos_out) 76
|
|
77: 31(ptr) AccessChain 62(flattenTemp) 38
|
|
78: 6(int) Load 77
|
|
79: 71(ptr) AccessChain 68(@entryPointOutput) 22
|
|
Store 79 78
|
|
Return
|
|
FunctionEnd
|
|
16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;): 2 Function None 13
|
|
14(fn1_in): 10(ptr) FunctionParameter
|
|
15(fn1_out): 12(ptr) FunctionParameter
|
|
17: Label
|
|
24: 23(ptr) AccessChain 14(fn1_in) 22
|
|
25: 8(fvec4) Load 24
|
|
26: 23(ptr) AccessChain 15(fn1_out) 22
|
|
27: 8(fvec4) Load 26
|
|
28: 8(fvec4) FAdd 25 27
|
|
Return
|
|
FunctionEnd
|
|
20(@main(struct-VS_INPUT-i1-vf4-i11;):11(VS_OUTPUT) Function None 18
|
|
19(vsin): 10(ptr) FunctionParameter
|
|
21: Label
|
|
29(vsout): 12(ptr) Variable Function
|
|
42(param): 10(ptr) Variable Function
|
|
44(param): 12(ptr) Variable Function
|
|
32: 31(ptr) AccessChain 19(vsin) 30
|
|
33: 6(int) Load 32
|
|
34: 31(ptr) AccessChain 29(vsout) 30
|
|
Store 34 33
|
|
35: 23(ptr) AccessChain 19(vsin) 22
|
|
36: 8(fvec4) Load 35
|
|
37: 23(ptr) AccessChain 29(vsout) 22
|
|
Store 37 36
|
|
39: 31(ptr) AccessChain 19(vsin) 38
|
|
40: 6(int) Load 39
|
|
41: 31(ptr) AccessChain 29(vsout) 38
|
|
Store 41 40
|
|
43: 9(VS_INPUT) Load 19(vsin)
|
|
Store 42(param) 43
|
|
45:11(VS_OUTPUT) Load 29(vsout)
|
|
Store 44(param) 45
|
|
46: 2 FunctionCall 16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;) 42(param) 44(param)
|
|
47:11(VS_OUTPUT) Load 29(vsout)
|
|
ReturnValue 47
|
|
FunctionEnd
|