The prior implementation of GS did not work with the new EP wrapping architecture. This fixes it: the Append() method now looks up the actual output rather than the internal sanitized temporary type, and writes to that.
258 lines
14 KiB
Plaintext
Executable File
258 lines
14 KiB
Plaintext
Executable File
hlsl.semantic.geom
|
|
Shader version: 450
|
|
invocations = -1
|
|
max_vertices = 4
|
|
input primitive = triangles
|
|
output primitive = line_strip
|
|
0:? Sequence
|
|
0:12 Function Definition: @main(u1[3];struct-S-f1-f1-u1-u1-i11; ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Function Parameters:
|
|
0:12 'VertexID' ( in 3-element array of uint)
|
|
0:12 'OutputStream' ( out structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:? Sequence
|
|
0:14 Branch: Return with expression
|
|
0:14 's' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Function Definition: main( ( temp void)
|
|
0:12 Function Parameters:
|
|
0:? Sequence
|
|
0:12 move second child to first child ( temp 3-element array of uint)
|
|
0:? 'VertexID' ( temp 3-element array of uint)
|
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
|
0:12 Sequence
|
|
0:12 move second child to first child ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Function Call: @main(u1[3];struct-S-f1-f1-u1-u1-i11; ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:? 'VertexID' ( temp 3-element array of uint)
|
|
0:? 'OutputStream' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 move second child to first child ( temp float)
|
|
0:? 'OutputStream_clip0' ( out float ClipDistance)
|
|
0:12 clip0: direct index for structure ( temp float)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 0 (const int)
|
|
0:12 move second child to first child ( temp float)
|
|
0:? 'OutputStream_cull0' ( out float CullDistance)
|
|
0:12 cull0: direct index for structure ( temp float)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 1 (const int)
|
|
0:12 move second child to first child ( temp uint)
|
|
0:? 'OutputStream_vpai' ( out uint ViewportIndex)
|
|
0:12 vpai: direct index for structure ( temp uint)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 2 (const int)
|
|
0:12 move second child to first child ( temp uint)
|
|
0:? 'OutputStream_rtai' ( out uint Layer)
|
|
0:12 rtai: direct index for structure ( temp uint)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 3 (const int)
|
|
0:12 move second child to first child ( temp int)
|
|
0:12 ii: direct index for structure ( temp int)
|
|
0:12 '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
|
0:12 Constant:
|
|
0:12 0 (const int)
|
|
0:12 ii: direct index for structure ( temp int)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 4 (const int)
|
|
0:? Linker Objects
|
|
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
|
0:? 'OutputStream' (layout( location=1) out structure{ temp int ii})
|
|
0:? 'OutputStream_vpai' ( out uint ViewportIndex)
|
|
|
|
|
|
Linked geometry stage:
|
|
|
|
|
|
Shader version: 450
|
|
invocations = 1
|
|
max_vertices = 4
|
|
input primitive = triangles
|
|
output primitive = line_strip
|
|
0:? Sequence
|
|
0:12 Function Definition: @main(u1[3];struct-S-f1-f1-u1-u1-i11; ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Function Parameters:
|
|
0:12 'VertexID' ( in 3-element array of uint)
|
|
0:12 'OutputStream' ( out structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:? Sequence
|
|
0:14 Branch: Return with expression
|
|
0:14 's' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Function Definition: main( ( temp void)
|
|
0:12 Function Parameters:
|
|
0:? Sequence
|
|
0:12 move second child to first child ( temp 3-element array of uint)
|
|
0:? 'VertexID' ( temp 3-element array of uint)
|
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
|
0:12 Sequence
|
|
0:12 move second child to first child ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Function Call: @main(u1[3];struct-S-f1-f1-u1-u1-i11; ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:? 'VertexID' ( temp 3-element array of uint)
|
|
0:? 'OutputStream' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 move second child to first child ( temp float)
|
|
0:? 'OutputStream_clip0' ( out float ClipDistance)
|
|
0:12 clip0: direct index for structure ( temp float)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 0 (const int)
|
|
0:12 move second child to first child ( temp float)
|
|
0:? 'OutputStream_cull0' ( out float CullDistance)
|
|
0:12 cull0: direct index for structure ( temp float)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 1 (const int)
|
|
0:12 move second child to first child ( temp uint)
|
|
0:? 'OutputStream_vpai' ( out uint ViewportIndex)
|
|
0:12 vpai: direct index for structure ( temp uint)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 2 (const int)
|
|
0:12 move second child to first child ( temp uint)
|
|
0:? 'OutputStream_rtai' ( out uint Layer)
|
|
0:12 rtai: direct index for structure ( temp uint)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 3 (const int)
|
|
0:12 move second child to first child ( temp int)
|
|
0:12 ii: direct index for structure ( temp int)
|
|
0:12 '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
|
0:12 Constant:
|
|
0:12 0 (const int)
|
|
0:12 ii: direct index for structure ( temp int)
|
|
0:12 'flattenTemp' ( temp structure{ temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
|
0:12 Constant:
|
|
0:12 4 (const int)
|
|
0:? Linker Objects
|
|
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
|
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
|
0:? 'OutputStream' (layout( location=1) out structure{ temp int ii})
|
|
0:? 'OutputStream_vpai' ( out uint ViewportIndex)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 66
|
|
|
|
Capability Geometry
|
|
Capability ClipDistance
|
|
Capability CullDistance
|
|
Capability MultiViewport
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Geometry 4 "main" 25 35 40 45 50 56 65
|
|
ExecutionMode 4 Triangles
|
|
ExecutionMode 4 Invocations 1
|
|
ExecutionMode 4 OutputLineStrip
|
|
ExecutionMode 4 OutputVertices 4
|
|
Name 4 "main"
|
|
Name 12 "S"
|
|
MemberName 12(S) 0 "clip0"
|
|
MemberName 12(S) 1 "cull0"
|
|
MemberName 12(S) 2 "vpai"
|
|
MemberName 12(S) 3 "rtai"
|
|
MemberName 12(S) 4 "ii"
|
|
Name 17 "@main(u1[3];struct-S-f1-f1-u1-u1-i11;"
|
|
Name 15 "VertexID"
|
|
Name 16 "OutputStream"
|
|
Name 19 "s"
|
|
Name 23 "VertexID"
|
|
Name 25 "VertexID"
|
|
Name 27 "flattenTemp"
|
|
Name 28 "OutputStream"
|
|
Name 29 "param"
|
|
Name 31 "param"
|
|
Name 35 "OutputStream_clip0"
|
|
Name 40 "OutputStream_cull0"
|
|
Name 45 "OutputStream_vpai"
|
|
Name 50 "OutputStream_rtai"
|
|
Name 54 "S"
|
|
MemberName 54(S) 0 "ii"
|
|
Name 56 "@entryPointOutput"
|
|
Name 63 "S"
|
|
MemberName 63(S) 0 "ii"
|
|
Name 65 "OutputStream"
|
|
Decorate 25(VertexID) Location 0
|
|
Decorate 35(OutputStream_clip0) BuiltIn ClipDistance
|
|
Decorate 40(OutputStream_cull0) BuiltIn CullDistance
|
|
Decorate 45(OutputStream_vpai) BuiltIn ViewportIndex
|
|
Decorate 50(OutputStream_rtai) BuiltIn Layer
|
|
Decorate 56(@entryPointOutput) Location 0
|
|
Decorate 65(OutputStream) Location 1
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 0
|
|
7: 6(int) Constant 3
|
|
8: TypeArray 6(int) 7
|
|
9: TypePointer Function 8
|
|
10: TypeFloat 32
|
|
11: TypeInt 32 1
|
|
12(S): TypeStruct 10(float) 10(float) 6(int) 6(int) 11(int)
|
|
13: TypePointer Function 12(S)
|
|
14: TypeFunction 12(S) 9(ptr) 13(ptr)
|
|
24: TypePointer Input 8
|
|
25(VertexID): 24(ptr) Variable Input
|
|
34: TypePointer Output 10(float)
|
|
35(OutputStream_clip0): 34(ptr) Variable Output
|
|
36: 11(int) Constant 0
|
|
37: TypePointer Function 10(float)
|
|
40(OutputStream_cull0): 34(ptr) Variable Output
|
|
41: 11(int) Constant 1
|
|
44: TypePointer Output 6(int)
|
|
45(OutputStream_vpai): 44(ptr) Variable Output
|
|
46: 11(int) Constant 2
|
|
47: TypePointer Function 6(int)
|
|
50(OutputStream_rtai): 44(ptr) Variable Output
|
|
51: 11(int) Constant 3
|
|
54(S): TypeStruct 11(int)
|
|
55: TypePointer Output 54(S)
|
|
56(@entryPointOutput): 55(ptr) Variable Output
|
|
57: 11(int) Constant 4
|
|
58: TypePointer Function 11(int)
|
|
61: TypePointer Output 11(int)
|
|
63(S): TypeStruct 11(int)
|
|
64: TypePointer Output 63(S)
|
|
65(OutputStream): 64(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
23(VertexID): 9(ptr) Variable Function
|
|
27(flattenTemp): 13(ptr) Variable Function
|
|
28(OutputStream): 13(ptr) Variable Function
|
|
29(param): 9(ptr) Variable Function
|
|
31(param): 13(ptr) Variable Function
|
|
26: 8 Load 25(VertexID)
|
|
Store 23(VertexID) 26
|
|
30: 8 Load 23(VertexID)
|
|
Store 29(param) 30
|
|
32: 12(S) FunctionCall 17(@main(u1[3];struct-S-f1-f1-u1-u1-i11;) 29(param) 31(param)
|
|
33: 12(S) Load 31(param)
|
|
Store 28(OutputStream) 33
|
|
Store 27(flattenTemp) 32
|
|
38: 37(ptr) AccessChain 27(flattenTemp) 36
|
|
39: 10(float) Load 38
|
|
Store 35(OutputStream_clip0) 39
|
|
42: 37(ptr) AccessChain 27(flattenTemp) 41
|
|
43: 10(float) Load 42
|
|
Store 40(OutputStream_cull0) 43
|
|
48: 47(ptr) AccessChain 27(flattenTemp) 46
|
|
49: 6(int) Load 48
|
|
Store 45(OutputStream_vpai) 49
|
|
52: 47(ptr) AccessChain 27(flattenTemp) 51
|
|
53: 6(int) Load 52
|
|
Store 50(OutputStream_rtai) 53
|
|
59: 58(ptr) AccessChain 27(flattenTemp) 57
|
|
60: 11(int) Load 59
|
|
62: 61(ptr) AccessChain 56(@entryPointOutput) 36
|
|
Store 62 60
|
|
Return
|
|
FunctionEnd
|
|
17(@main(u1[3];struct-S-f1-f1-u1-u1-i11;): 12(S) Function None 14
|
|
15(VertexID): 9(ptr) FunctionParameter
|
|
16(OutputStream): 13(ptr) FunctionParameter
|
|
18: Label
|
|
19(s): 13(ptr) Variable Function
|
|
20: 12(S) Load 19(s)
|
|
ReturnValue 20
|
|
FunctionEnd
|