HLSL: fix GS implementation for EP wrapping
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.
This commit is contained in:
@@ -72,6 +72,7 @@ output primitive = triangle_strip
|
||||
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' (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:
|
||||
@@ -150,15 +151,16 @@ output primitive = triangle_strip
|
||||
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' (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 73
|
||||
// Id's are bound by 77
|
||||
|
||||
Capability Geometry
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 66
|
||||
EntryPoint Geometry 4 "main" 66 76
|
||||
ExecutionMode 4 InputPoints
|
||||
ExecutionMode 4 Invocations 1
|
||||
ExecutionMode 4 OutputTriangleStrip
|
||||
@@ -181,7 +183,13 @@ output primitive = triangle_strip
|
||||
Name 68 "OutputStream"
|
||||
Name 69 "param"
|
||||
Name 71 "param"
|
||||
Name 74 "PSInput"
|
||||
MemberName 74(PSInput) 0 "TexCoord"
|
||||
MemberName 74(PSInput) 1 "TerrainPos"
|
||||
MemberName 74(PSInput) 2 "VertexID"
|
||||
Name 76 "OutputStream"
|
||||
Decorate 66(v) Location 0
|
||||
Decorate 76(OutputStream) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
@@ -214,6 +222,9 @@ output primitive = triangle_strip
|
||||
60: 28(int) Constant 1
|
||||
65: TypePointer Input 8
|
||||
66(v): 65(ptr) Variable Input
|
||||
74(PSInput): TypeStruct 12(fvec2) 13(fvec3) 6(int)
|
||||
75: TypePointer Output 74(PSInput)
|
||||
76(OutputStream): 75(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
64(v): 9(ptr) Variable Function
|
||||
@@ -225,6 +236,8 @@ output primitive = triangle_strip
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user