This allows removal of isPerVertexBuiltIn(). It also leads to removal of addInterstageIoToLinkage(), which is no longer needed. Includes related name improvements.
300 lines
15 KiB
Plaintext
300 lines
15 KiB
Plaintext
hlsl.struct.split.array.geom
|
|
Shader version: 500
|
|
invocations = -1
|
|
max_vertices = 4
|
|
input primitive = points
|
|
output primitive = triangle_strip
|
|
0:? Sequence
|
|
0:13 Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void)
|
|
0:13 Function Parameters:
|
|
0:13 'v' ( in 1-element array of uint)
|
|
0:13 'OutputStream' ( out structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:? Sequence
|
|
0:16 Sequence
|
|
0:16 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:16 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:16 Constant:
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0 (const uint)
|
|
0:18 Sequence
|
|
0:18 move second child to first child ( temp int)
|
|
0:18 'x' ( temp int)
|
|
0:18 Constant:
|
|
0:18 0 (const int)
|
|
0:18 Loop with condition tested first
|
|
0:18 Loop Condition
|
|
0:18 Compare Less Than ( temp bool)
|
|
0:18 'x' ( temp int)
|
|
0:18 Constant:
|
|
0:18 2 (const int)
|
|
0:18 Loop Body
|
|
0:19 Sequence
|
|
0:19 move second child to first child ( temp int)
|
|
0:19 'y' ( temp int)
|
|
0:19 Constant:
|
|
0:19 0 (const int)
|
|
0:19 Loop with condition tested first
|
|
0:19 Loop Condition
|
|
0:19 Compare Less Than ( temp bool)
|
|
0:19 'y' ( temp int)
|
|
0:19 Constant:
|
|
0:19 2 (const int)
|
|
0:19 Loop Body
|
|
0:20 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:20 indirect index ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:20 indirect index ( temp 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:20 'Verts' ( temp 2-element array of 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:20 'x' ( temp int)
|
|
0:20 'y' ( temp int)
|
|
0:20 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:19 Loop Terminal Expression
|
|
0:19 Pre-Increment ( temp int)
|
|
0:19 'y' ( temp int)
|
|
0:18 Loop Terminal Expression
|
|
0:18 Pre-Increment ( temp int)
|
|
0:18 'x' ( temp int)
|
|
0:13 Function Definition: main( ( temp void)
|
|
0:13 Function Parameters:
|
|
0:? Sequence
|
|
0:13 move second child to first child ( temp 1-element array of uint)
|
|
0:? 'v' ( temp 1-element array of uint)
|
|
0:? 'v' (layout( location=0) in 1-element array of uint)
|
|
0:13 Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void)
|
|
0:? 'v' ( temp 1-element array of uint)
|
|
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:? Linker Objects
|
|
0:? 'v' (layout( location=0) in 1-element array of uint)
|
|
0:? 'OutputStream_Pos' ( out 4-component vector of float Position)
|
|
0:? 'OutputStream' (layout( location=0) out structure{ temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
|
|
|
|
Linked geometry stage:
|
|
|
|
|
|
Shader version: 500
|
|
invocations = 1
|
|
max_vertices = 4
|
|
input primitive = points
|
|
output primitive = triangle_strip
|
|
0:? Sequence
|
|
0:13 Function Definition: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void)
|
|
0:13 Function Parameters:
|
|
0:13 'v' ( in 1-element array of uint)
|
|
0:13 'OutputStream' ( out structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:? Sequence
|
|
0:16 Sequence
|
|
0:16 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:16 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:16 Constant:
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0.000000
|
|
0:16 0 (const uint)
|
|
0:18 Sequence
|
|
0:18 move second child to first child ( temp int)
|
|
0:18 'x' ( temp int)
|
|
0:18 Constant:
|
|
0:18 0 (const int)
|
|
0:18 Loop with condition tested first
|
|
0:18 Loop Condition
|
|
0:18 Compare Less Than ( temp bool)
|
|
0:18 'x' ( temp int)
|
|
0:18 Constant:
|
|
0:18 2 (const int)
|
|
0:18 Loop Body
|
|
0:19 Sequence
|
|
0:19 move second child to first child ( temp int)
|
|
0:19 'y' ( temp int)
|
|
0:19 Constant:
|
|
0:19 0 (const int)
|
|
0:19 Loop with condition tested first
|
|
0:19 Loop Condition
|
|
0:19 Compare Less Than ( temp bool)
|
|
0:19 'y' ( temp int)
|
|
0:19 Constant:
|
|
0:19 2 (const int)
|
|
0:19 Loop Body
|
|
0:20 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:20 indirect index ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:20 indirect index ( temp 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:20 'Verts' ( temp 2-element array of 3-element array of structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:20 'x' ( temp int)
|
|
0:20 'y' ( temp int)
|
|
0:20 'Out' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:19 Loop Terminal Expression
|
|
0:19 Pre-Increment ( temp int)
|
|
0:19 'y' ( temp int)
|
|
0:18 Loop Terminal Expression
|
|
0:18 Pre-Increment ( temp int)
|
|
0:18 'x' ( temp int)
|
|
0:13 Function Definition: main( ( temp void)
|
|
0:13 Function Parameters:
|
|
0:? Sequence
|
|
0:13 move second child to first child ( temp 1-element array of uint)
|
|
0:? 'v' ( temp 1-element array of uint)
|
|
0:? 'v' (layout( location=0) in 1-element array of uint)
|
|
0:13 Function Call: @main(u1[1];struct-PSInput-vf4-vf2-vf3-u11; ( temp void)
|
|
0:? 'v' ( temp 1-element array of uint)
|
|
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float Pos, temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
0:? Linker Objects
|
|
0:? 'v' (layout( location=0) in 1-element array of uint)
|
|
0:? 'OutputStream_Pos' ( out 4-component vector of float Position)
|
|
0:? 'OutputStream' (layout( location=0) out structure{ temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID})
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 79
|
|
|
|
Capability Geometry
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Geometry 4 "main" 66 75 78
|
|
ExecutionMode 4 InputPoints
|
|
ExecutionMode 4 Invocations 1
|
|
ExecutionMode 4 OutputTriangleStrip
|
|
ExecutionMode 4 OutputVertices 4
|
|
Source HLSL 500
|
|
Name 4 "main"
|
|
Name 14 "PSInput"
|
|
MemberName 14(PSInput) 0 "Pos"
|
|
MemberName 14(PSInput) 1 "TexCoord"
|
|
MemberName 14(PSInput) 2 "TerrainPos"
|
|
MemberName 14(PSInput) 3 "VertexID"
|
|
Name 19 "@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;"
|
|
Name 17 "v"
|
|
Name 18 "OutputStream"
|
|
Name 21 "Out"
|
|
Name 30 "x"
|
|
Name 41 "y"
|
|
Name 54 "Verts"
|
|
Name 64 "v"
|
|
Name 66 "v"
|
|
Name 68 "OutputStream"
|
|
Name 69 "param"
|
|
Name 71 "param"
|
|
Name 75 "OutputStream_Pos"
|
|
Name 76 "PSInput"
|
|
MemberName 76(PSInput) 0 "TexCoord"
|
|
MemberName 76(PSInput) 1 "TerrainPos"
|
|
MemberName 76(PSInput) 2 "VertexID"
|
|
Name 78 "OutputStream"
|
|
Decorate 66(v) Location 0
|
|
Decorate 75(OutputStream_Pos) BuiltIn Position
|
|
Decorate 78(OutputStream) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 0
|
|
7: 6(int) Constant 1
|
|
8: TypeArray 6(int) 7
|
|
9: TypePointer Function 8
|
|
10: TypeFloat 32
|
|
11: TypeVector 10(float) 4
|
|
12: TypeVector 10(float) 2
|
|
13: TypeVector 10(float) 3
|
|
14(PSInput): TypeStruct 11(fvec4) 12(fvec2) 13(fvec3) 6(int)
|
|
15: TypePointer Function 14(PSInput)
|
|
16: TypeFunction 2 9(ptr) 15(ptr)
|
|
22: 10(float) Constant 0
|
|
23: 11(fvec4) ConstantComposite 22 22 22 22
|
|
24: 12(fvec2) ConstantComposite 22 22
|
|
25: 13(fvec3) ConstantComposite 22 22 22
|
|
26: 6(int) Constant 0
|
|
27: 14(PSInput) ConstantComposite 23 24 25 26
|
|
28: TypeInt 32 1
|
|
29: TypePointer Function 28(int)
|
|
31: 28(int) Constant 0
|
|
38: 28(int) Constant 2
|
|
39: TypeBool
|
|
49: 6(int) Constant 3
|
|
50: TypeArray 14(PSInput) 49
|
|
51: 6(int) Constant 2
|
|
52: TypeArray 50 51
|
|
53: TypePointer Function 52
|
|
60: 28(int) Constant 1
|
|
65: TypePointer Input 8
|
|
66(v): 65(ptr) Variable Input
|
|
74: TypePointer Output 11(fvec4)
|
|
75(OutputStream_Pos): 74(ptr) Variable Output
|
|
76(PSInput): TypeStruct 12(fvec2) 13(fvec3) 6(int)
|
|
77: TypePointer Output 76(PSInput)
|
|
78(OutputStream): 77(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
64(v): 9(ptr) Variable Function
|
|
68(OutputStream): 15(ptr) Variable Function
|
|
69(param): 9(ptr) Variable Function
|
|
71(param): 15(ptr) Variable Function
|
|
67: 8 Load 66(v)
|
|
Store 64(v) 67
|
|
70: 8 Load 64(v)
|
|
Store 69(param) 70
|
|
72: 2 FunctionCall 19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;) 69(param) 71(param)
|
|
73: 14(PSInput) Load 71(param)
|
|
Store 68(OutputStream) 73
|
|
Return
|
|
FunctionEnd
|
|
19(@main(u1[1];struct-PSInput-vf4-vf2-vf3-u11;): 2 Function None 16
|
|
17(v): 9(ptr) FunctionParameter
|
|
18(OutputStream): 15(ptr) FunctionParameter
|
|
20: Label
|
|
21(Out): 15(ptr) Variable Function
|
|
30(x): 29(ptr) Variable Function
|
|
41(y): 29(ptr) Variable Function
|
|
54(Verts): 53(ptr) Variable Function
|
|
Store 21(Out) 27
|
|
Store 30(x) 31
|
|
Branch 32
|
|
32: Label
|
|
LoopMerge 34 35 None
|
|
Branch 36
|
|
36: Label
|
|
37: 28(int) Load 30(x)
|
|
40: 39(bool) SLessThan 37 38
|
|
BranchConditional 40 33 34
|
|
33: Label
|
|
Store 41(y) 31
|
|
Branch 42
|
|
42: Label
|
|
LoopMerge 44 45 None
|
|
Branch 46
|
|
46: Label
|
|
47: 28(int) Load 41(y)
|
|
48: 39(bool) SLessThan 47 38
|
|
BranchConditional 48 43 44
|
|
43: Label
|
|
55: 28(int) Load 30(x)
|
|
56: 28(int) Load 41(y)
|
|
57: 14(PSInput) Load 21(Out)
|
|
58: 15(ptr) AccessChain 54(Verts) 55 56
|
|
Store 58 57
|
|
Branch 45
|
|
45: Label
|
|
59: 28(int) Load 41(y)
|
|
61: 28(int) IAdd 59 60
|
|
Store 41(y) 61
|
|
Branch 42
|
|
44: Label
|
|
Branch 35
|
|
35: Label
|
|
62: 28(int) Load 30(x)
|
|
63: 28(int) IAdd 62 60
|
|
Store 30(x) 63
|
|
Branch 32
|
|
34: Label
|
|
Return
|
|
FunctionEnd
|