Add hlsl.instance.geom output

This commit is contained in:
Gabriele91 2022-05-24 20:09:20 +02:00
parent 353ef3ac3e
commit e28ec404a7

View File

@ -0,0 +1,433 @@
hlsl.instance.geom
Shader version: 500
invocations = 5
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:10 Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
0:10 Function Parameters:
0:10 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 'output' ( out structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 'id' ( in uint)
0:? Sequence
0:12 Sequence
0:12 move second child to first child ( temp int)
0:12 'i' ( temp int)
0:12 Constant:
0:12 0 (const int)
0:12 Loop with condition tested first: DontUnroll
0:12 Loop Condition
0:12 Compare Less Than ( temp bool)
0:12 'i' ( temp int)
0:12 Constant:
0:12 3 (const int)
0:12 Loop Body
0:? Sequence
0:14 Sequence
0:14 Sequence
0:14 move second child to first child ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 indirect index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 'i' ( temp int)
0:14 move second child to first child ( temp 4-component vector of float)
0:? 'output.m_position' ( out 4-component vector of float Position)
0:14 m_position: direct index for structure ( temp 4-component vector of float)
0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 Constant:
0:14 0 (const int)
0:14 move second child to first child ( temp 4-component vector of float)
0:? 'output.m_color' (layout( location=0) out 4-component vector of float)
0:14 m_color: direct index for structure ( temp 4-component vector of float)
0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 Constant:
0:14 1 (const int)
0:14 EmitVertex ( temp void)
0:12 Loop Terminal Expression
0:12 Pre-Increment ( temp int)
0:12 'i' ( temp int)
0:16 EndPrimitive ( temp void)
0:10 Function Definition: GeometryShader( ( temp void)
0:10 Function Parameters:
0:? Sequence
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_position: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 0 (const int)
0:10 direct index ( in 4-component vector of float Position)
0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
0:10 Constant:
0:10 0 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_color: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 direct index (layout( location=0) in 4-component vector of float)
0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 0 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_position: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 1 (const int)
0:10 Constant:
0:10 0 (const int)
0:10 direct index ( in 4-component vector of float Position)
0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
0:10 Constant:
0:10 1 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_color: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 1 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 direct index (layout( location=0) in 4-component vector of float)
0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 1 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_position: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 2 (const int)
0:10 Constant:
0:10 0 (const int)
0:10 direct index ( in 4-component vector of float Position)
0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
0:10 Constant:
0:10 2 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_color: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 2 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 direct index (layout( location=0) in 4-component vector of float)
0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 2 (const int)
0:10 move second child to first child ( temp uint)
0:? 'id' ( temp uint)
0:? 'id' ( in uint InvocationID)
0:10 Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'output' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'id' ( temp uint)
0:? Linker Objects
0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
0:? 'id' ( in uint InvocationID)
0:? 'output.m_position' ( out 4-component vector of float Position)
0:? 'output.m_color' (layout( location=0) out 4-component vector of float)
Linked geometry stage:
Shader version: 500
invocations = 5
max_vertices = 3
input primitive = triangles
output primitive = triangle_strip
0:? Sequence
0:10 Function Definition: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
0:10 Function Parameters:
0:10 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 'output' ( out structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 'id' ( in uint)
0:? Sequence
0:12 Sequence
0:12 move second child to first child ( temp int)
0:12 'i' ( temp int)
0:12 Constant:
0:12 0 (const int)
0:12 Loop with condition tested first: DontUnroll
0:12 Loop Condition
0:12 Compare Less Than ( temp bool)
0:12 'i' ( temp int)
0:12 Constant:
0:12 3 (const int)
0:12 Loop Body
0:? Sequence
0:14 Sequence
0:14 Sequence
0:14 move second child to first child ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 indirect index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 'input' ( in 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 'i' ( temp int)
0:14 move second child to first child ( temp 4-component vector of float)
0:? 'output.m_position' ( out 4-component vector of float Position)
0:14 m_position: direct index for structure ( temp 4-component vector of float)
0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 Constant:
0:14 0 (const int)
0:14 move second child to first child ( temp 4-component vector of float)
0:? 'output.m_color' (layout( location=0) out 4-component vector of float)
0:14 m_color: direct index for structure ( temp 4-component vector of float)
0:14 'flattenTemp' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:14 Constant:
0:14 1 (const int)
0:14 EmitVertex ( temp void)
0:12 Loop Terminal Expression
0:12 Pre-Increment ( temp int)
0:12 'i' ( temp int)
0:16 EndPrimitive ( temp void)
0:10 Function Definition: GeometryShader( ( temp void)
0:10 Function Parameters:
0:? Sequence
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_position: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 0 (const int)
0:10 direct index ( in 4-component vector of float Position)
0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
0:10 Constant:
0:10 0 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_color: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 direct index (layout( location=0) in 4-component vector of float)
0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 0 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_position: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 1 (const int)
0:10 Constant:
0:10 0 (const int)
0:10 direct index ( in 4-component vector of float Position)
0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
0:10 Constant:
0:10 1 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_color: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 1 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 direct index (layout( location=0) in 4-component vector of float)
0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 1 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_position: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 2 (const int)
0:10 Constant:
0:10 0 (const int)
0:10 direct index ( in 4-component vector of float Position)
0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
0:10 Constant:
0:10 2 (const int)
0:10 move second child to first child ( temp 4-component vector of float)
0:10 m_color: direct index for structure ( temp 4-component vector of float)
0:10 direct index ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:10 Constant:
0:10 2 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 direct index (layout( location=0) in 4-component vector of float)
0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
0:10 Constant:
0:10 2 (const int)
0:10 move second child to first child ( temp uint)
0:? 'id' ( temp uint)
0:? 'id' ( in uint InvocationID)
0:10 Function Call: @GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1; ( temp void)
0:? 'input' ( temp 3-element array of structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'output' ( temp structure{ temp 4-component vector of float m_position, temp 4-component vector of float m_color})
0:? 'id' ( temp uint)
0:? Linker Objects
0:? 'input.m_position' ( in 3-element array of 4-component vector of float Position)
0:? 'input.m_color' (layout( location=0) in 3-element array of 4-component vector of float)
0:? 'id' ( in uint InvocationID)
0:? 'output.m_position' ( out 4-component vector of float Position)
0:? 'output.m_color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 86
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "GeometryShader" 39 43 52 57 76
ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 5
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3
Source HLSL 500
Name 4 "GeometryShader"
Name 8 "VertexShaderOutput"
MemberName 8(VertexShaderOutput) 0 "m_position"
MemberName 8(VertexShaderOutput) 1 "m_color"
Name 19 "@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;"
Name 16 "input"
Name 17 "output"
Name 18 "id"
Name 23 "i"
Name 34 "flattenTemp"
Name 39 "output.m_position"
Name 43 "output.m_color"
Name 49 "input"
Name 52 "input.m_position"
Name 57 "input.m_color"
Name 74 "id"
Name 76 "id"
Name 78 "output"
Name 79 "param"
Name 81 "param"
Name 82 "param"
Decorate 39(output.m_position) BuiltIn Position
Decorate 43(output.m_color) Location 0
Decorate 52(input.m_position) BuiltIn Position
Decorate 57(input.m_color) Location 0
Decorate 76(id) BuiltIn InvocationId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8(VertexShaderOutput): TypeStruct 7(fvec4) 7(fvec4)
9: TypeInt 32 0
10: 9(int) Constant 3
11: TypeArray 8(VertexShaderOutput) 10
12: TypePointer Function 11
13: TypePointer Function 8(VertexShaderOutput)
14: TypePointer Function 9(int)
15: TypeFunction 2 12(ptr) 13(ptr) 14(ptr)
21: TypeInt 32 1
22: TypePointer Function 21(int)
24: 21(int) Constant 0
31: 21(int) Constant 3
32: TypeBool
38: TypePointer Output 7(fvec4)
39(output.m_position): 38(ptr) Variable Output
40: TypePointer Function 7(fvec4)
43(output.m_color): 38(ptr) Variable Output
44: 21(int) Constant 1
50: TypeArray 7(fvec4) 10
51: TypePointer Input 50
52(input.m_position): 51(ptr) Variable Input
53: TypePointer Input 7(fvec4)
57(input.m_color): 51(ptr) Variable Input
67: 21(int) Constant 2
75: TypePointer Input 9(int)
76(id): 75(ptr) Variable Input
4(GeometryShader): 2 Function None 3
5: Label
49(input): 12(ptr) Variable Function
74(id): 14(ptr) Variable Function
78(output): 13(ptr) Variable Function
79(param): 12(ptr) Variable Function
81(param): 13(ptr) Variable Function
82(param): 14(ptr) Variable Function
54: 53(ptr) AccessChain 52(input.m_position) 24
55: 7(fvec4) Load 54
56: 40(ptr) AccessChain 49(input) 24 24
Store 56 55
58: 53(ptr) AccessChain 57(input.m_color) 24
59: 7(fvec4) Load 58
60: 40(ptr) AccessChain 49(input) 24 44
Store 60 59
61: 53(ptr) AccessChain 52(input.m_position) 44
62: 7(fvec4) Load 61
63: 40(ptr) AccessChain 49(input) 44 24
Store 63 62
64: 53(ptr) AccessChain 57(input.m_color) 44
65: 7(fvec4) Load 64
66: 40(ptr) AccessChain 49(input) 44 44
Store 66 65
68: 53(ptr) AccessChain 52(input.m_position) 67
69: 7(fvec4) Load 68
70: 40(ptr) AccessChain 49(input) 67 24
Store 70 69
71: 53(ptr) AccessChain 57(input.m_color) 67
72: 7(fvec4) Load 71
73: 40(ptr) AccessChain 49(input) 67 44
Store 73 72
77: 9(int) Load 76(id)
Store 74(id) 77
80: 11 Load 49(input)
Store 79(param) 80
83: 9(int) Load 74(id)
Store 82(param) 83
84: 2 FunctionCall 19(@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;) 79(param) 81(param) 82(param)
85:8(VertexShaderOutput) Load 81(param)
Store 78(output) 85
Return
FunctionEnd
19(@GeometryShader(struct-VertexShaderOutput-vf4-vf41[3];struct-VertexShaderOutput-vf4-vf41;u1;): 2 Function None 15
16(input): 12(ptr) FunctionParameter
17(output): 13(ptr) FunctionParameter
18(id): 14(ptr) FunctionParameter
20: Label
23(i): 22(ptr) Variable Function
34(flattenTemp): 13(ptr) Variable Function
Store 23(i) 24
Branch 25
25: Label
LoopMerge 27 28 DontUnroll
Branch 29
29: Label
30: 21(int) Load 23(i)
33: 32(bool) SLessThan 30 31
BranchConditional 33 26 27
26: Label
35: 21(int) Load 23(i)
36: 13(ptr) AccessChain 16(input) 35
37:8(VertexShaderOutput) Load 36
Store 34(flattenTemp) 37
41: 40(ptr) AccessChain 34(flattenTemp) 24
42: 7(fvec4) Load 41
Store 39(output.m_position) 42
45: 40(ptr) AccessChain 34(flattenTemp) 44
46: 7(fvec4) Load 45
Store 43(output.m_color) 46
EmitVertex
Branch 28
28: Label
47: 21(int) Load 23(i)
48: 21(int) IAdd 47 44
Store 23(i) 48
Branch 25
27: Label
EndPrimitive
Return
FunctionEnd