Merge pull request #1037 from LoopDawg/clip-cull-geom
HLSL: add geometry stage support for clip/cull distance
This commit is contained in:
commit
75e057f980
@ -1,80 +1,276 @@
|
|||||||
hlsl.clipdistance-1.geom
|
hlsl.clipdistance-1.geom
|
||||||
ERROR: 0:13: '' : unimplemented: clip/cull not currently implemented for this stage
|
|
||||||
ERROR: 0:13: '' : unimplemented: clip/cull not currently implemented for this stage
|
|
||||||
ERROR: 0:20: '' : unimplemented: clip/cull not currently implemented for this stage
|
|
||||||
ERROR: 0:20: '' : unimplemented: clip/cull not currently implemented for this stage
|
|
||||||
ERROR: 4 compilation errors. No code generated.
|
|
||||||
|
|
||||||
|
|
||||||
Shader version: 500
|
Shader version: 500
|
||||||
invocations = -1
|
invocations = -1
|
||||||
max_vertices = 3
|
max_vertices = 3
|
||||||
input primitive = triangles
|
input primitive = triangles
|
||||||
output primitive = line_strip
|
output primitive = line_strip
|
||||||
ERROR: node is still EOpNull!
|
0:? Sequence
|
||||||
0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-f1-f11;f1[3];f1[3]; ( temp void)
|
0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void)
|
||||||
0:13 Function Parameters:
|
0:11 Function Parameters:
|
||||||
0:13 'pos' ( in 3-element array of 4-component vector of float)
|
0:11 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
0:13 'VertexID' ( in 3-element array of uint)
|
0:11 'VertexID' ( in 3-element array of uint)
|
||||||
0:13 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:13 'clip' ( in 3-element array of float)
|
0:11 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
0:13 'cull' ( in 3-element array of float)
|
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:16 move second child to first child ( temp 4-component vector of float)
|
0:14 move second child to first child ( temp 4-component vector of float)
|
||||||
0:16 pos: direct index for structure ( temp 4-component vector of float)
|
0:14 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
0:16 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:16 Constant:
|
0:14 Constant:
|
||||||
0:16 0 (const int)
|
0:14 0 (const int)
|
||||||
0:16 direct index ( temp 4-component vector of float)
|
0:14 direct index ( temp 4-component vector of float)
|
||||||
0:16 'pos' ( in 3-element array of 4-component vector of float)
|
0:14 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
0:16 Constant:
|
0:14 Constant:
|
||||||
0:16 0 (const int)
|
0:14 0 (const int)
|
||||||
0:17 move second child to first child ( temp float)
|
0:15 move second child to first child ( temp 2-component vector of float)
|
||||||
0:17 clip: direct index for structure ( temp float)
|
0:15 clip: direct index for structure ( temp 2-component vector of float)
|
||||||
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:17 Constant:
|
0:15 Constant:
|
||||||
0:17 1 (const int)
|
0:15 1 (const int)
|
||||||
0:17 direct index ( temp float)
|
0:15 vector swizzle ( temp 2-component vector of float)
|
||||||
0:17 'clip' ( in 3-element array of float)
|
0:15 direct index ( temp 4-component vector of float)
|
||||||
0:17 Constant:
|
0:15 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
0:17 0 (const int)
|
0:15 Constant:
|
||||||
0:18 move second child to first child ( temp float)
|
0:15 0 (const int)
|
||||||
0:18 cull: direct index for structure ( temp float)
|
0:15 Sequence
|
||||||
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:15 Constant:
|
||||||
0:18 Constant:
|
0:15 0 (const int)
|
||||||
0:18 2 (const int)
|
0:15 Constant:
|
||||||
0:18 direct index ( temp float)
|
0:15 1 (const int)
|
||||||
0:18 'cull' ( in 3-element array of float)
|
0:17 Sequence
|
||||||
0:18 Constant:
|
0:17 Sequence
|
||||||
0:18 0 (const int)
|
0:17 move second child to first child ( temp 4-component vector of float)
|
||||||
0:20 Sequence
|
|
||||||
0:20 Sequence
|
|
||||||
0:20 move second child to first child ( temp 4-component vector of float)
|
|
||||||
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
0:20 pos: direct index for structure ( temp 4-component vector of float)
|
0:17 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:20 Constant:
|
0:17 Constant:
|
||||||
0:20 0 (const int)
|
0:17 0 (const int)
|
||||||
0:20 EmitVertex ( temp void)
|
0:? Sequence
|
||||||
0:13 Function Definition: main( ( temp void)
|
0:17 move second child to first child ( temp float)
|
||||||
0:13 Function Parameters:
|
0:17 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 0 (const int)
|
||||||
|
0:17 direct index ( temp float)
|
||||||
|
0:17 clip: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 0 (const int)
|
||||||
|
0:17 move second child to first child ( temp float)
|
||||||
|
0:17 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 direct index ( temp float)
|
||||||
|
0:17 clip: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 EmitVertex ( temp void)
|
||||||
|
0:11 Function Definition: main( ( temp void)
|
||||||
|
0:11 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:13 move second child to first child ( temp 3-element array of 4-component vector of float)
|
0:11 move second child to first child ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
0:13 move second child to first child ( temp 3-element array of uint)
|
0:11 move second child to first child ( temp 3-element array of uint)
|
||||||
0:? 'VertexID' ( 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:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
0:13 Function Call: @main(vf4[3];u1[3];struct-S-vf4-f1-f11;f1[3];f1[3]; ( temp void)
|
0:? Sequence
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void)
|
||||||
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'VertexID' ( temp 3-element array of uint)
|
0:? 'VertexID' ( temp 3-element array of uint)
|
||||||
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:? 'clip' ( temp 3-element array of float)
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'cull' ( temp 3-element array of float)
|
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
|
||||||
|
|
||||||
|
|
||||||
Linked geometry stage:
|
Linked geometry stage:
|
||||||
@ -85,69 +281,457 @@ invocations = 1
|
|||||||
max_vertices = 3
|
max_vertices = 3
|
||||||
input primitive = triangles
|
input primitive = triangles
|
||||||
output primitive = line_strip
|
output primitive = line_strip
|
||||||
ERROR: node is still EOpNull!
|
0:? Sequence
|
||||||
0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-f1-f11;f1[3];f1[3]; ( temp void)
|
0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void)
|
||||||
0:13 Function Parameters:
|
0:11 Function Parameters:
|
||||||
0:13 'pos' ( in 3-element array of 4-component vector of float)
|
0:11 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
0:13 'VertexID' ( in 3-element array of uint)
|
0:11 'VertexID' ( in 3-element array of uint)
|
||||||
0:13 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:13 'clip' ( in 3-element array of float)
|
0:11 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
0:13 'cull' ( in 3-element array of float)
|
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:16 move second child to first child ( temp 4-component vector of float)
|
0:14 move second child to first child ( temp 4-component vector of float)
|
||||||
0:16 pos: direct index for structure ( temp 4-component vector of float)
|
0:14 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
0:16 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:16 Constant:
|
0:14 Constant:
|
||||||
0:16 0 (const int)
|
0:14 0 (const int)
|
||||||
0:16 direct index ( temp 4-component vector of float)
|
0:14 direct index ( temp 4-component vector of float)
|
||||||
0:16 'pos' ( in 3-element array of 4-component vector of float)
|
0:14 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
0:16 Constant:
|
0:14 Constant:
|
||||||
0:16 0 (const int)
|
0:14 0 (const int)
|
||||||
0:17 move second child to first child ( temp float)
|
0:15 move second child to first child ( temp 2-component vector of float)
|
||||||
0:17 clip: direct index for structure ( temp float)
|
0:15 clip: direct index for structure ( temp 2-component vector of float)
|
||||||
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:17 Constant:
|
0:15 Constant:
|
||||||
0:17 1 (const int)
|
0:15 1 (const int)
|
||||||
0:17 direct index ( temp float)
|
0:15 vector swizzle ( temp 2-component vector of float)
|
||||||
0:17 'clip' ( in 3-element array of float)
|
0:15 direct index ( temp 4-component vector of float)
|
||||||
0:17 Constant:
|
0:15 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
0:17 0 (const int)
|
0:15 Constant:
|
||||||
0:18 move second child to first child ( temp float)
|
0:15 0 (const int)
|
||||||
0:18 cull: direct index for structure ( temp float)
|
0:15 Sequence
|
||||||
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:15 Constant:
|
||||||
0:18 Constant:
|
0:15 0 (const int)
|
||||||
0:18 2 (const int)
|
0:15 Constant:
|
||||||
0:18 direct index ( temp float)
|
0:15 1 (const int)
|
||||||
0:18 'cull' ( in 3-element array of float)
|
0:17 Sequence
|
||||||
0:18 Constant:
|
0:17 Sequence
|
||||||
0:18 0 (const int)
|
0:17 move second child to first child ( temp 4-component vector of float)
|
||||||
0:20 Sequence
|
|
||||||
0:20 Sequence
|
|
||||||
0:20 move second child to first child ( temp 4-component vector of float)
|
|
||||||
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
0:20 pos: direct index for structure ( temp 4-component vector of float)
|
0:17 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:20 Constant:
|
0:17 Constant:
|
||||||
0:20 0 (const int)
|
0:17 0 (const int)
|
||||||
0:20 EmitVertex ( temp void)
|
0:? Sequence
|
||||||
0:13 Function Definition: main( ( temp void)
|
0:17 move second child to first child ( temp float)
|
||||||
0:13 Function Parameters:
|
0:17 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 0 (const int)
|
||||||
|
0:17 direct index ( temp float)
|
||||||
|
0:17 clip: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 0 (const int)
|
||||||
|
0:17 move second child to first child ( temp float)
|
||||||
|
0:17 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 direct index ( temp float)
|
||||||
|
0:17 clip: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 EmitVertex ( temp void)
|
||||||
|
0:11 Function Definition: main( ( temp void)
|
||||||
|
0:11 Function Parameters:
|
||||||
0:? Sequence
|
0:? Sequence
|
||||||
0:13 move second child to first child ( temp 3-element array of 4-component vector of float)
|
0:11 move second child to first child ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
0:13 move second child to first child ( temp 3-element array of uint)
|
0:11 move second child to first child ( temp 3-element array of uint)
|
||||||
0:? 'VertexID' ( 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:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
0:13 Function Call: @main(vf4[3];u1[3];struct-S-vf4-f1-f11;f1[3];f1[3]; ( temp void)
|
0:? Sequence
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void)
|
||||||
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'VertexID' ( temp 3-element array of uint)
|
0:? 'VertexID' ( temp 3-element array of uint)
|
||||||
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||||
0:? 'clip' ( temp 3-element array of float)
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'cull' ( temp 3-element array of float)
|
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 2-element array of float ClipDistance)
|
||||||
|
|
||||||
SPIR-V is not generated for failed compile or link
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 118
|
||||||
|
|
||||||
|
Capability Geometry
|
||||||
|
Capability ClipDistance
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Geometry 4 "main" 38 44 57 61 68
|
||||||
|
ExecutionMode 4 Triangles
|
||||||
|
ExecutionMode 4 Invocations 1
|
||||||
|
ExecutionMode 4 OutputLineStrip
|
||||||
|
ExecutionMode 4 OutputVertices 3
|
||||||
|
Source HLSL 500
|
||||||
|
Name 4 "main"
|
||||||
|
Name 15 "S"
|
||||||
|
MemberName 15(S) 0 "pos"
|
||||||
|
MemberName 15(S) 1 "clip"
|
||||||
|
Name 22 "@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];"
|
||||||
|
Name 18 "pos"
|
||||||
|
Name 19 "VertexID"
|
||||||
|
Name 20 "OutputStream"
|
||||||
|
Name 21 "clip"
|
||||||
|
Name 24 "s"
|
||||||
|
Name 38 "OutputStream.pos"
|
||||||
|
Name 44 "OutputStream.clip"
|
||||||
|
Name 55 "pos"
|
||||||
|
Name 57 "pos"
|
||||||
|
Name 59 "VertexID"
|
||||||
|
Name 61 "VertexID"
|
||||||
|
Name 63 "clip"
|
||||||
|
Name 68 "clip"
|
||||||
|
Name 108 "OutputStream"
|
||||||
|
Name 109 "param"
|
||||||
|
Name 111 "param"
|
||||||
|
Name 113 "param"
|
||||||
|
Name 114 "param"
|
||||||
|
Decorate 38(OutputStream.pos) BuiltIn Position
|
||||||
|
Decorate 44(OutputStream.clip) BuiltIn ClipDistance
|
||||||
|
Decorate 57(pos) BuiltIn Position
|
||||||
|
Decorate 61(VertexID) Location 0
|
||||||
|
Decorate 68(clip) BuiltIn ClipDistance
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypeInt 32 0
|
||||||
|
9: 8(int) Constant 3
|
||||||
|
10: TypeArray 7(fvec4) 9
|
||||||
|
11: TypePointer Function 10
|
||||||
|
12: TypeArray 8(int) 9
|
||||||
|
13: TypePointer Function 12
|
||||||
|
14: TypeVector 6(float) 2
|
||||||
|
15(S): TypeStruct 7(fvec4) 14(fvec2)
|
||||||
|
16: TypePointer Function 15(S)
|
||||||
|
17: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 11(ptr)
|
||||||
|
25: TypeInt 32 1
|
||||||
|
26: 25(int) Constant 0
|
||||||
|
27: TypePointer Function 7(fvec4)
|
||||||
|
31: 25(int) Constant 1
|
||||||
|
35: TypePointer Function 14(fvec2)
|
||||||
|
37: TypePointer Output 7(fvec4)
|
||||||
|
38(OutputStream.pos): 37(ptr) Variable Output
|
||||||
|
41: 8(int) Constant 2
|
||||||
|
42: TypeArray 6(float) 41
|
||||||
|
43: TypePointer Output 42
|
||||||
|
44(OutputStream.clip): 43(ptr) Variable Output
|
||||||
|
45: 8(int) Constant 0
|
||||||
|
46: TypePointer Function 6(float)
|
||||||
|
49: TypePointer Output 6(float)
|
||||||
|
51: 8(int) Constant 1
|
||||||
|
56: TypePointer Input 10
|
||||||
|
57(pos): 56(ptr) Variable Input
|
||||||
|
60: TypePointer Input 12
|
||||||
|
61(VertexID): 60(ptr) Variable Input
|
||||||
|
64: 8(int) Constant 4
|
||||||
|
65: TypeArray 6(float) 64
|
||||||
|
66: TypeArray 65 9
|
||||||
|
67: TypePointer Input 66
|
||||||
|
68(clip): 67(ptr) Variable Input
|
||||||
|
69: TypePointer Input 6(float)
|
||||||
|
76: 25(int) Constant 2
|
||||||
|
80: 25(int) Constant 3
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
55(pos): 11(ptr) Variable Function
|
||||||
|
59(VertexID): 13(ptr) Variable Function
|
||||||
|
63(clip): 11(ptr) Variable Function
|
||||||
|
108(OutputStream): 16(ptr) Variable Function
|
||||||
|
109(param): 11(ptr) Variable Function
|
||||||
|
111(param): 13(ptr) Variable Function
|
||||||
|
113(param): 16(ptr) Variable Function
|
||||||
|
114(param): 11(ptr) Variable Function
|
||||||
|
58: 10 Load 57(pos)
|
||||||
|
Store 55(pos) 58
|
||||||
|
62: 12 Load 61(VertexID)
|
||||||
|
Store 59(VertexID) 62
|
||||||
|
70: 69(ptr) AccessChain 68(clip) 26 26
|
||||||
|
71: 6(float) Load 70
|
||||||
|
72: 46(ptr) AccessChain 63(clip) 26 45
|
||||||
|
Store 72 71
|
||||||
|
73: 69(ptr) AccessChain 68(clip) 26 31
|
||||||
|
74: 6(float) Load 73
|
||||||
|
75: 46(ptr) AccessChain 63(clip) 26 51
|
||||||
|
Store 75 74
|
||||||
|
77: 69(ptr) AccessChain 68(clip) 26 76
|
||||||
|
78: 6(float) Load 77
|
||||||
|
79: 46(ptr) AccessChain 63(clip) 26 41
|
||||||
|
Store 79 78
|
||||||
|
81: 69(ptr) AccessChain 68(clip) 26 80
|
||||||
|
82: 6(float) Load 81
|
||||||
|
83: 46(ptr) AccessChain 63(clip) 26 9
|
||||||
|
Store 83 82
|
||||||
|
84: 69(ptr) AccessChain 68(clip) 31 26
|
||||||
|
85: 6(float) Load 84
|
||||||
|
86: 46(ptr) AccessChain 63(clip) 31 45
|
||||||
|
Store 86 85
|
||||||
|
87: 69(ptr) AccessChain 68(clip) 31 31
|
||||||
|
88: 6(float) Load 87
|
||||||
|
89: 46(ptr) AccessChain 63(clip) 31 51
|
||||||
|
Store 89 88
|
||||||
|
90: 69(ptr) AccessChain 68(clip) 31 76
|
||||||
|
91: 6(float) Load 90
|
||||||
|
92: 46(ptr) AccessChain 63(clip) 31 41
|
||||||
|
Store 92 91
|
||||||
|
93: 69(ptr) AccessChain 68(clip) 31 80
|
||||||
|
94: 6(float) Load 93
|
||||||
|
95: 46(ptr) AccessChain 63(clip) 31 9
|
||||||
|
Store 95 94
|
||||||
|
96: 69(ptr) AccessChain 68(clip) 76 26
|
||||||
|
97: 6(float) Load 96
|
||||||
|
98: 46(ptr) AccessChain 63(clip) 76 45
|
||||||
|
Store 98 97
|
||||||
|
99: 69(ptr) AccessChain 68(clip) 76 31
|
||||||
|
100: 6(float) Load 99
|
||||||
|
101: 46(ptr) AccessChain 63(clip) 76 51
|
||||||
|
Store 101 100
|
||||||
|
102: 69(ptr) AccessChain 68(clip) 76 76
|
||||||
|
103: 6(float) Load 102
|
||||||
|
104: 46(ptr) AccessChain 63(clip) 76 41
|
||||||
|
Store 104 103
|
||||||
|
105: 69(ptr) AccessChain 68(clip) 76 80
|
||||||
|
106: 6(float) Load 105
|
||||||
|
107: 46(ptr) AccessChain 63(clip) 76 9
|
||||||
|
Store 107 106
|
||||||
|
110: 10 Load 55(pos)
|
||||||
|
Store 109(param) 110
|
||||||
|
112: 12 Load 59(VertexID)
|
||||||
|
Store 111(param) 112
|
||||||
|
115: 10 Load 63(clip)
|
||||||
|
Store 114(param) 115
|
||||||
|
116: 2 FunctionCall 22(@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];) 109(param) 111(param) 113(param) 114(param)
|
||||||
|
117: 15(S) Load 113(param)
|
||||||
|
Store 108(OutputStream) 117
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
22(@main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3];): 2 Function None 17
|
||||||
|
18(pos): 11(ptr) FunctionParameter
|
||||||
|
19(VertexID): 13(ptr) FunctionParameter
|
||||||
|
20(OutputStream): 16(ptr) FunctionParameter
|
||||||
|
21(clip): 11(ptr) FunctionParameter
|
||||||
|
23: Label
|
||||||
|
24(s): 16(ptr) Variable Function
|
||||||
|
28: 27(ptr) AccessChain 18(pos) 26
|
||||||
|
29: 7(fvec4) Load 28
|
||||||
|
30: 27(ptr) AccessChain 24(s) 26
|
||||||
|
Store 30 29
|
||||||
|
32: 27(ptr) AccessChain 21(clip) 26
|
||||||
|
33: 7(fvec4) Load 32
|
||||||
|
34: 14(fvec2) VectorShuffle 33 33 0 1
|
||||||
|
36: 35(ptr) AccessChain 24(s) 31
|
||||||
|
Store 36 34
|
||||||
|
39: 27(ptr) AccessChain 24(s) 26
|
||||||
|
40: 7(fvec4) Load 39
|
||||||
|
Store 38(OutputStream.pos) 40
|
||||||
|
47: 46(ptr) AccessChain 24(s) 31 45
|
||||||
|
48: 6(float) Load 47
|
||||||
|
50: 49(ptr) AccessChain 44(OutputStream.clip) 26
|
||||||
|
Store 50 48
|
||||||
|
52: 46(ptr) AccessChain 24(s) 31 51
|
||||||
|
53: 6(float) Load 52
|
||||||
|
54: 49(ptr) AccessChain 44(OutputStream.clip) 31
|
||||||
|
Store 54 53
|
||||||
|
EmitVertex
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
|||||||
@ -1,15 +1,10 @@
|
|||||||
hlsl.clipdistance-2.geom
|
hlsl.clipdistance-2.geom
|
||||||
ERROR: 0:11: '' : unimplemented: clip/cull not currently implemented for this stage
|
|
||||||
ERROR: 0:18: '' : unimplemented: clip/cull not currently implemented for this stage
|
|
||||||
ERROR: 2 compilation errors. No code generated.
|
|
||||||
|
|
||||||
|
|
||||||
Shader version: 500
|
Shader version: 500
|
||||||
invocations = -1
|
invocations = -1
|
||||||
max_vertices = 3
|
max_vertices = 3
|
||||||
input primitive = triangles
|
input primitive = triangles
|
||||||
output primitive = line_strip
|
output primitive = line_strip
|
||||||
ERROR: node is still EOpNull!
|
0:? Sequence
|
||||||
0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void)
|
0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void)
|
||||||
0:11 Function Parameters:
|
0:11 Function Parameters:
|
||||||
0:11 'pos' ( in 3-element array of 4-component vector of float)
|
0:11 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
@ -64,6 +59,67 @@ ERROR: node is still EOpNull!
|
|||||||
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
0:18 Constant:
|
0:18 Constant:
|
||||||
0:18 0 (const int)
|
0:18 0 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:18 move second child to first child ( temp float)
|
||||||
|
0:18 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 direct index ( temp float)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 move second child to first child ( temp float)
|
||||||
|
0:18 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 direct index ( temp float)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 move second child to first child ( temp float)
|
||||||
|
0:18 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 2 (const int)
|
||||||
|
0:18 direct index ( temp float)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 move second child to first child ( temp float)
|
||||||
|
0:18 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 3 (const int)
|
||||||
|
0:18 direct index ( temp float)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
0:18 EmitVertex ( temp void)
|
0:18 EmitVertex ( temp void)
|
||||||
0:11 Function Definition: main( ( temp void)
|
0:11 Function Definition: main( ( temp void)
|
||||||
0:11 Function Parameters:
|
0:11 Function Parameters:
|
||||||
@ -74,6 +130,223 @@ ERROR: node is still EOpNull!
|
|||||||
0:11 move second child to first child ( temp 3-element array of uint)
|
0:11 move second child to first child ( temp 3-element array of uint)
|
||||||
0:? 'VertexID' ( 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:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
|
0:? Sequence
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void)
|
0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void)
|
||||||
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'VertexID' ( temp 3-element array of uint)
|
0:? 'VertexID' ( temp 3-element array of uint)
|
||||||
@ -83,6 +356,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
|
||||||
|
|
||||||
Linked geometry stage:
|
Linked geometry stage:
|
||||||
@ -93,7 +368,7 @@ invocations = 1
|
|||||||
max_vertices = 3
|
max_vertices = 3
|
||||||
input primitive = triangles
|
input primitive = triangles
|
||||||
output primitive = line_strip
|
output primitive = line_strip
|
||||||
ERROR: node is still EOpNull!
|
0:? Sequence
|
||||||
0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void)
|
0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void)
|
||||||
0:11 Function Parameters:
|
0:11 Function Parameters:
|
||||||
0:11 'pos' ( in 3-element array of 4-component vector of float)
|
0:11 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
@ -148,6 +423,67 @@ ERROR: node is still EOpNull!
|
|||||||
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
0:18 Constant:
|
0:18 Constant:
|
||||||
0:18 0 (const int)
|
0:18 0 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:18 move second child to first child ( temp float)
|
||||||
|
0:18 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 direct index ( temp float)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 move second child to first child ( temp float)
|
||||||
|
0:18 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 direct index ( temp float)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 move second child to first child ( temp float)
|
||||||
|
0:18 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 2 (const int)
|
||||||
|
0:18 direct index ( temp float)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:18 move second child to first child ( temp float)
|
||||||
|
0:18 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 3 (const int)
|
||||||
|
0:18 direct index ( temp float)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 clip: direct index for structure ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-element array of 2-component vector of float clip})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 1 (const int)
|
||||||
0:18 EmitVertex ( temp void)
|
0:18 EmitVertex ( temp void)
|
||||||
0:11 Function Definition: main( ( temp void)
|
0:11 Function Definition: main( ( temp void)
|
||||||
0:11 Function Parameters:
|
0:11 Function Parameters:
|
||||||
@ -158,6 +494,223 @@ ERROR: node is still EOpNull!
|
|||||||
0:11 move second child to first child ( temp 3-element array of uint)
|
0:11 move second child to first child ( temp 3-element array of uint)
|
||||||
0:? 'VertexID' ( 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:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
|
0:? Sequence
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 0 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 move second child to first child ( temp float)
|
||||||
|
0:11 direct index ( temp float)
|
||||||
|
0:11 direct index ( temp 2-component vector of float)
|
||||||
|
0:11 direct index ( temp 2-element array of 2-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 2-element array of 2-component vector of float)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 1 (const int)
|
||||||
|
0:11 direct index ( in float ClipDistance)
|
||||||
|
0:11 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 2 (const int)
|
||||||
|
0:11 Constant:
|
||||||
|
0:11 3 (const int)
|
||||||
0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void)
|
0:11 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2]; ( temp void)
|
||||||
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
0:? 'VertexID' ( temp 3-element array of uint)
|
0:? 'VertexID' ( temp 3-element array of uint)
|
||||||
@ -167,5 +720,205 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip' ( out 4-element array of float ClipDistance)
|
||||||
|
|
||||||
SPIR-V is not generated for failed compile or link
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 128
|
||||||
|
|
||||||
|
Capability Geometry
|
||||||
|
Capability ClipDistance
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Geometry 4 "main" 44 50 71 75 80
|
||||||
|
ExecutionMode 4 Triangles
|
||||||
|
ExecutionMode 4 Invocations 1
|
||||||
|
ExecutionMode 4 OutputLineStrip
|
||||||
|
ExecutionMode 4 OutputVertices 3
|
||||||
|
Source HLSL 500
|
||||||
|
Name 4 "main"
|
||||||
|
Name 17 "S"
|
||||||
|
MemberName 17(S) 0 "pos"
|
||||||
|
MemberName 17(S) 1 "clip"
|
||||||
|
Name 26 "@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];"
|
||||||
|
Name 22 "pos"
|
||||||
|
Name 23 "VertexID"
|
||||||
|
Name 24 "OutputStream"
|
||||||
|
Name 25 "clip"
|
||||||
|
Name 28 "s"
|
||||||
|
Name 44 "OutputStream.pos"
|
||||||
|
Name 50 "OutputStream.clip"
|
||||||
|
Name 69 "pos"
|
||||||
|
Name 71 "pos"
|
||||||
|
Name 73 "VertexID"
|
||||||
|
Name 75 "VertexID"
|
||||||
|
Name 77 "clip"
|
||||||
|
Name 80 "clip"
|
||||||
|
Name 118 "OutputStream"
|
||||||
|
Name 119 "param"
|
||||||
|
Name 121 "param"
|
||||||
|
Name 123 "param"
|
||||||
|
Name 124 "param"
|
||||||
|
Decorate 44(OutputStream.pos) BuiltIn Position
|
||||||
|
Decorate 50(OutputStream.clip) BuiltIn ClipDistance
|
||||||
|
Decorate 71(pos) BuiltIn Position
|
||||||
|
Decorate 75(VertexID) Location 0
|
||||||
|
Decorate 80(clip) BuiltIn ClipDistance
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypeInt 32 0
|
||||||
|
9: 8(int) Constant 3
|
||||||
|
10: TypeArray 7(fvec4) 9
|
||||||
|
11: TypePointer Function 10
|
||||||
|
12: TypeArray 8(int) 9
|
||||||
|
13: TypePointer Function 12
|
||||||
|
14: TypeVector 6(float) 2
|
||||||
|
15: 8(int) Constant 2
|
||||||
|
16: TypeArray 14(fvec2) 15
|
||||||
|
17(S): TypeStruct 7(fvec4) 16
|
||||||
|
18: TypePointer Function 17(S)
|
||||||
|
19: TypeArray 16 9
|
||||||
|
20: TypePointer Function 19
|
||||||
|
21: TypeFunction 2 11(ptr) 13(ptr) 18(ptr) 20(ptr)
|
||||||
|
29: TypeInt 32 1
|
||||||
|
30: 29(int) Constant 0
|
||||||
|
31: TypePointer Function 7(fvec4)
|
||||||
|
35: 29(int) Constant 1
|
||||||
|
36: TypePointer Function 14(fvec2)
|
||||||
|
43: TypePointer Output 7(fvec4)
|
||||||
|
44(OutputStream.pos): 43(ptr) Variable Output
|
||||||
|
47: 8(int) Constant 4
|
||||||
|
48: TypeArray 6(float) 47
|
||||||
|
49: TypePointer Output 48
|
||||||
|
50(OutputStream.clip): 49(ptr) Variable Output
|
||||||
|
51: 8(int) Constant 0
|
||||||
|
52: TypePointer Function 6(float)
|
||||||
|
55: TypePointer Output 6(float)
|
||||||
|
57: 8(int) Constant 1
|
||||||
|
61: 29(int) Constant 2
|
||||||
|
65: 29(int) Constant 3
|
||||||
|
70: TypePointer Input 10
|
||||||
|
71(pos): 70(ptr) Variable Input
|
||||||
|
74: TypePointer Input 12
|
||||||
|
75(VertexID): 74(ptr) Variable Input
|
||||||
|
78: TypeArray 48 9
|
||||||
|
79: TypePointer Input 78
|
||||||
|
80(clip): 79(ptr) Variable Input
|
||||||
|
81: TypePointer Input 6(float)
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
69(pos): 11(ptr) Variable Function
|
||||||
|
73(VertexID): 13(ptr) Variable Function
|
||||||
|
77(clip): 20(ptr) Variable Function
|
||||||
|
118(OutputStream): 18(ptr) Variable Function
|
||||||
|
119(param): 11(ptr) Variable Function
|
||||||
|
121(param): 13(ptr) Variable Function
|
||||||
|
123(param): 18(ptr) Variable Function
|
||||||
|
124(param): 20(ptr) Variable Function
|
||||||
|
72: 10 Load 71(pos)
|
||||||
|
Store 69(pos) 72
|
||||||
|
76: 12 Load 75(VertexID)
|
||||||
|
Store 73(VertexID) 76
|
||||||
|
82: 81(ptr) AccessChain 80(clip) 30 30
|
||||||
|
83: 6(float) Load 82
|
||||||
|
84: 52(ptr) AccessChain 77(clip) 30 30 51
|
||||||
|
Store 84 83
|
||||||
|
85: 81(ptr) AccessChain 80(clip) 30 35
|
||||||
|
86: 6(float) Load 85
|
||||||
|
87: 52(ptr) AccessChain 77(clip) 30 30 57
|
||||||
|
Store 87 86
|
||||||
|
88: 81(ptr) AccessChain 80(clip) 30 61
|
||||||
|
89: 6(float) Load 88
|
||||||
|
90: 52(ptr) AccessChain 77(clip) 30 35 51
|
||||||
|
Store 90 89
|
||||||
|
91: 81(ptr) AccessChain 80(clip) 30 65
|
||||||
|
92: 6(float) Load 91
|
||||||
|
93: 52(ptr) AccessChain 77(clip) 30 35 57
|
||||||
|
Store 93 92
|
||||||
|
94: 81(ptr) AccessChain 80(clip) 35 30
|
||||||
|
95: 6(float) Load 94
|
||||||
|
96: 52(ptr) AccessChain 77(clip) 35 30 51
|
||||||
|
Store 96 95
|
||||||
|
97: 81(ptr) AccessChain 80(clip) 35 35
|
||||||
|
98: 6(float) Load 97
|
||||||
|
99: 52(ptr) AccessChain 77(clip) 35 30 57
|
||||||
|
Store 99 98
|
||||||
|
100: 81(ptr) AccessChain 80(clip) 35 61
|
||||||
|
101: 6(float) Load 100
|
||||||
|
102: 52(ptr) AccessChain 77(clip) 35 35 51
|
||||||
|
Store 102 101
|
||||||
|
103: 81(ptr) AccessChain 80(clip) 35 65
|
||||||
|
104: 6(float) Load 103
|
||||||
|
105: 52(ptr) AccessChain 77(clip) 35 35 57
|
||||||
|
Store 105 104
|
||||||
|
106: 81(ptr) AccessChain 80(clip) 61 30
|
||||||
|
107: 6(float) Load 106
|
||||||
|
108: 52(ptr) AccessChain 77(clip) 61 30 51
|
||||||
|
Store 108 107
|
||||||
|
109: 81(ptr) AccessChain 80(clip) 61 35
|
||||||
|
110: 6(float) Load 109
|
||||||
|
111: 52(ptr) AccessChain 77(clip) 61 30 57
|
||||||
|
Store 111 110
|
||||||
|
112: 81(ptr) AccessChain 80(clip) 61 61
|
||||||
|
113: 6(float) Load 112
|
||||||
|
114: 52(ptr) AccessChain 77(clip) 61 35 51
|
||||||
|
Store 114 113
|
||||||
|
115: 81(ptr) AccessChain 80(clip) 61 65
|
||||||
|
116: 6(float) Load 115
|
||||||
|
117: 52(ptr) AccessChain 77(clip) 61 35 57
|
||||||
|
Store 117 116
|
||||||
|
120: 10 Load 69(pos)
|
||||||
|
Store 119(param) 120
|
||||||
|
122: 12 Load 73(VertexID)
|
||||||
|
Store 121(param) 122
|
||||||
|
125: 19 Load 77(clip)
|
||||||
|
Store 124(param) 125
|
||||||
|
126: 2 FunctionCall 26(@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];) 119(param) 121(param) 123(param) 124(param)
|
||||||
|
127: 17(S) Load 123(param)
|
||||||
|
Store 118(OutputStream) 127
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
26(@main(vf4[3];u1[3];struct-S-vf4-vf2[2]1;vf2[3][2];): 2 Function None 21
|
||||||
|
22(pos): 11(ptr) FunctionParameter
|
||||||
|
23(VertexID): 13(ptr) FunctionParameter
|
||||||
|
24(OutputStream): 18(ptr) FunctionParameter
|
||||||
|
25(clip): 20(ptr) FunctionParameter
|
||||||
|
27: Label
|
||||||
|
28(s): 18(ptr) Variable Function
|
||||||
|
32: 31(ptr) AccessChain 22(pos) 30
|
||||||
|
33: 7(fvec4) Load 32
|
||||||
|
34: 31(ptr) AccessChain 28(s) 30
|
||||||
|
Store 34 33
|
||||||
|
37: 36(ptr) AccessChain 25(clip) 30 30
|
||||||
|
38: 14(fvec2) Load 37
|
||||||
|
39: 36(ptr) AccessChain 28(s) 35 30
|
||||||
|
Store 39 38
|
||||||
|
40: 36(ptr) AccessChain 25(clip) 30 35
|
||||||
|
41: 14(fvec2) Load 40
|
||||||
|
42: 36(ptr) AccessChain 28(s) 35 35
|
||||||
|
Store 42 41
|
||||||
|
45: 31(ptr) AccessChain 28(s) 30
|
||||||
|
46: 7(fvec4) Load 45
|
||||||
|
Store 44(OutputStream.pos) 46
|
||||||
|
53: 52(ptr) AccessChain 28(s) 35 30 51
|
||||||
|
54: 6(float) Load 53
|
||||||
|
56: 55(ptr) AccessChain 50(OutputStream.clip) 30
|
||||||
|
Store 56 54
|
||||||
|
58: 52(ptr) AccessChain 28(s) 35 30 57
|
||||||
|
59: 6(float) Load 58
|
||||||
|
60: 55(ptr) AccessChain 50(OutputStream.clip) 35
|
||||||
|
Store 60 59
|
||||||
|
62: 52(ptr) AccessChain 28(s) 35 35 51
|
||||||
|
63: 6(float) Load 62
|
||||||
|
64: 55(ptr) AccessChain 50(OutputStream.clip) 61
|
||||||
|
Store 64 63
|
||||||
|
66: 52(ptr) AccessChain 28(s) 35 35 57
|
||||||
|
67: 6(float) Load 66
|
||||||
|
68: 55(ptr) AccessChain 50(OutputStream.clip) 65
|
||||||
|
Store 68 67
|
||||||
|
EmitVertex
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
|||||||
830
Test/baseResults/hlsl.clipdistance-3.geom.out
Normal file
830
Test/baseResults/hlsl.clipdistance-3.geom.out
Normal file
@ -0,0 +1,830 @@
|
|||||||
|
hlsl.clipdistance-3.geom
|
||||||
|
Shader version: 500
|
||||||
|
invocations = -1
|
||||||
|
max_vertices = 3
|
||||||
|
input primitive = triangles
|
||||||
|
output primitive = line_strip
|
||||||
|
0:? Sequence
|
||||||
|
0:12 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void)
|
||||||
|
0:12 Function Parameters:
|
||||||
|
0:12 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:12 'VertexID' ( in 3-element array of uint)
|
||||||
|
0:12 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:12 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:15 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:15 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 0 (const int)
|
||||||
|
0:15 direct index ( temp 4-component vector of float)
|
||||||
|
0:15 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 0 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:16 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 1 (const int)
|
||||||
|
0:16 vector swizzle ( temp 2-component vector of float)
|
||||||
|
0:16 direct index ( temp 4-component vector of float)
|
||||||
|
0:16 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:16 Sequence
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 1 (const int)
|
||||||
|
0:17 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:17 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 2 (const int)
|
||||||
|
0:17 vector swizzle ( temp 2-component vector of float)
|
||||||
|
0:17 direct index ( temp 4-component vector of float)
|
||||||
|
0:17 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 0 (const int)
|
||||||
|
0:17 Sequence
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 2 (const int)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 3 (const int)
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:19 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:19 move second child to first child ( temp float)
|
||||||
|
0:19 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 move second child to first child ( temp float)
|
||||||
|
0:19 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:19 move second child to first child ( temp float)
|
||||||
|
0:19 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 2 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 2 (const int)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 move second child to first child ( temp float)
|
||||||
|
0:19 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 3 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 2 (const int)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:19 EmitVertex ( temp void)
|
||||||
|
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 4-component vector of float)
|
||||||
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
|
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:? Sequence
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void)
|
||||||
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'VertexID' ( temp 3-element array of uint)
|
||||||
|
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
|
||||||
|
|
||||||
|
Linked geometry stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 500
|
||||||
|
invocations = 1
|
||||||
|
max_vertices = 3
|
||||||
|
input primitive = triangles
|
||||||
|
output primitive = line_strip
|
||||||
|
0:? Sequence
|
||||||
|
0:12 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void)
|
||||||
|
0:12 Function Parameters:
|
||||||
|
0:12 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:12 'VertexID' ( in 3-element array of uint)
|
||||||
|
0:12 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:12 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:15 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:15 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 0 (const int)
|
||||||
|
0:15 direct index ( temp 4-component vector of float)
|
||||||
|
0:15 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 0 (const int)
|
||||||
|
0:16 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:16 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 1 (const int)
|
||||||
|
0:16 vector swizzle ( temp 2-component vector of float)
|
||||||
|
0:16 direct index ( temp 4-component vector of float)
|
||||||
|
0:16 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:16 Sequence
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 1 (const int)
|
||||||
|
0:17 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:17 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 2 (const int)
|
||||||
|
0:17 vector swizzle ( temp 2-component vector of float)
|
||||||
|
0:17 direct index ( temp 4-component vector of float)
|
||||||
|
0:17 'clip' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 0 (const int)
|
||||||
|
0:17 Sequence
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 2 (const int)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 3 (const int)
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 Sequence
|
||||||
|
0:19 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:19 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:19 move second child to first child ( temp float)
|
||||||
|
0:19 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 move second child to first child ( temp float)
|
||||||
|
0:19 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:19 move second child to first child ( temp float)
|
||||||
|
0:19 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 2 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 2 (const int)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 0 (const int)
|
||||||
|
0:19 move second child to first child ( temp float)
|
||||||
|
0:19 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 3 (const int)
|
||||||
|
0:19 direct index ( temp float)
|
||||||
|
0:19 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:19 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 2 (const int)
|
||||||
|
0:19 Constant:
|
||||||
|
0:19 1 (const int)
|
||||||
|
0:19 EmitVertex ( temp void)
|
||||||
|
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 4-component vector of float)
|
||||||
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
|
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:? Sequence
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 move second child to first child ( temp float)
|
||||||
|
0:12 direct index ( temp float)
|
||||||
|
0:12 direct index ( temp 4-component vector of float)
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 direct index ( in float ClipDistance)
|
||||||
|
0:12 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 2 (const int)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 3 (const int)
|
||||||
|
0:12 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3]; ( temp void)
|
||||||
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'VertexID' ( temp 3-element array of uint)
|
||||||
|
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:? 'clip' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:? 'clip' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 127
|
||||||
|
|
||||||
|
Capability Geometry
|
||||||
|
Capability ClipDistance
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Geometry 4 "main" 43 49 69 73 78
|
||||||
|
ExecutionMode 4 Triangles
|
||||||
|
ExecutionMode 4 Invocations 1
|
||||||
|
ExecutionMode 4 OutputLineStrip
|
||||||
|
ExecutionMode 4 OutputVertices 3
|
||||||
|
Source HLSL 500
|
||||||
|
Name 4 "main"
|
||||||
|
Name 15 "S"
|
||||||
|
MemberName 15(S) 0 "pos"
|
||||||
|
MemberName 15(S) 1 "clip0"
|
||||||
|
MemberName 15(S) 2 "clip1"
|
||||||
|
Name 22 "@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];"
|
||||||
|
Name 18 "pos"
|
||||||
|
Name 19 "VertexID"
|
||||||
|
Name 20 "OutputStream"
|
||||||
|
Name 21 "clip"
|
||||||
|
Name 24 "s"
|
||||||
|
Name 43 "OutputStream.pos"
|
||||||
|
Name 49 "OutputStream.clip1"
|
||||||
|
Name 67 "pos"
|
||||||
|
Name 69 "pos"
|
||||||
|
Name 71 "VertexID"
|
||||||
|
Name 73 "VertexID"
|
||||||
|
Name 75 "clip"
|
||||||
|
Name 78 "clip"
|
||||||
|
Name 117 "OutputStream"
|
||||||
|
Name 118 "param"
|
||||||
|
Name 120 "param"
|
||||||
|
Name 122 "param"
|
||||||
|
Name 123 "param"
|
||||||
|
Decorate 43(OutputStream.pos) BuiltIn Position
|
||||||
|
Decorate 49(OutputStream.clip1) BuiltIn ClipDistance
|
||||||
|
Decorate 69(pos) BuiltIn Position
|
||||||
|
Decorate 73(VertexID) Location 0
|
||||||
|
Decorate 78(clip) BuiltIn ClipDistance
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypeInt 32 0
|
||||||
|
9: 8(int) Constant 3
|
||||||
|
10: TypeArray 7(fvec4) 9
|
||||||
|
11: TypePointer Function 10
|
||||||
|
12: TypeArray 8(int) 9
|
||||||
|
13: TypePointer Function 12
|
||||||
|
14: TypeVector 6(float) 2
|
||||||
|
15(S): TypeStruct 7(fvec4) 14(fvec2) 14(fvec2)
|
||||||
|
16: TypePointer Function 15(S)
|
||||||
|
17: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 11(ptr)
|
||||||
|
25: TypeInt 32 1
|
||||||
|
26: 25(int) Constant 0
|
||||||
|
27: TypePointer Function 7(fvec4)
|
||||||
|
31: 25(int) Constant 1
|
||||||
|
35: TypePointer Function 14(fvec2)
|
||||||
|
37: 25(int) Constant 2
|
||||||
|
42: TypePointer Output 7(fvec4)
|
||||||
|
43(OutputStream.pos): 42(ptr) Variable Output
|
||||||
|
46: 8(int) Constant 4
|
||||||
|
47: TypeArray 6(float) 46
|
||||||
|
48: TypePointer Output 47
|
||||||
|
49(OutputStream.clip1): 48(ptr) Variable Output
|
||||||
|
50: 8(int) Constant 0
|
||||||
|
51: TypePointer Function 6(float)
|
||||||
|
54: TypePointer Output 6(float)
|
||||||
|
56: 8(int) Constant 1
|
||||||
|
63: 25(int) Constant 3
|
||||||
|
68: TypePointer Input 10
|
||||||
|
69(pos): 68(ptr) Variable Input
|
||||||
|
72: TypePointer Input 12
|
||||||
|
73(VertexID): 72(ptr) Variable Input
|
||||||
|
76: TypeArray 47 9
|
||||||
|
77: TypePointer Input 76
|
||||||
|
78(clip): 77(ptr) Variable Input
|
||||||
|
79: TypePointer Input 6(float)
|
||||||
|
88: 8(int) Constant 2
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
67(pos): 11(ptr) Variable Function
|
||||||
|
71(VertexID): 13(ptr) Variable Function
|
||||||
|
75(clip): 11(ptr) Variable Function
|
||||||
|
117(OutputStream): 16(ptr) Variable Function
|
||||||
|
118(param): 11(ptr) Variable Function
|
||||||
|
120(param): 13(ptr) Variable Function
|
||||||
|
122(param): 16(ptr) Variable Function
|
||||||
|
123(param): 11(ptr) Variable Function
|
||||||
|
70: 10 Load 69(pos)
|
||||||
|
Store 67(pos) 70
|
||||||
|
74: 12 Load 73(VertexID)
|
||||||
|
Store 71(VertexID) 74
|
||||||
|
80: 79(ptr) AccessChain 78(clip) 26 26
|
||||||
|
81: 6(float) Load 80
|
||||||
|
82: 51(ptr) AccessChain 75(clip) 26 50
|
||||||
|
Store 82 81
|
||||||
|
83: 79(ptr) AccessChain 78(clip) 26 31
|
||||||
|
84: 6(float) Load 83
|
||||||
|
85: 51(ptr) AccessChain 75(clip) 26 56
|
||||||
|
Store 85 84
|
||||||
|
86: 79(ptr) AccessChain 78(clip) 26 37
|
||||||
|
87: 6(float) Load 86
|
||||||
|
89: 51(ptr) AccessChain 75(clip) 26 88
|
||||||
|
Store 89 87
|
||||||
|
90: 79(ptr) AccessChain 78(clip) 26 63
|
||||||
|
91: 6(float) Load 90
|
||||||
|
92: 51(ptr) AccessChain 75(clip) 26 9
|
||||||
|
Store 92 91
|
||||||
|
93: 79(ptr) AccessChain 78(clip) 31 26
|
||||||
|
94: 6(float) Load 93
|
||||||
|
95: 51(ptr) AccessChain 75(clip) 31 50
|
||||||
|
Store 95 94
|
||||||
|
96: 79(ptr) AccessChain 78(clip) 31 31
|
||||||
|
97: 6(float) Load 96
|
||||||
|
98: 51(ptr) AccessChain 75(clip) 31 56
|
||||||
|
Store 98 97
|
||||||
|
99: 79(ptr) AccessChain 78(clip) 31 37
|
||||||
|
100: 6(float) Load 99
|
||||||
|
101: 51(ptr) AccessChain 75(clip) 31 88
|
||||||
|
Store 101 100
|
||||||
|
102: 79(ptr) AccessChain 78(clip) 31 63
|
||||||
|
103: 6(float) Load 102
|
||||||
|
104: 51(ptr) AccessChain 75(clip) 31 9
|
||||||
|
Store 104 103
|
||||||
|
105: 79(ptr) AccessChain 78(clip) 37 26
|
||||||
|
106: 6(float) Load 105
|
||||||
|
107: 51(ptr) AccessChain 75(clip) 37 50
|
||||||
|
Store 107 106
|
||||||
|
108: 79(ptr) AccessChain 78(clip) 37 31
|
||||||
|
109: 6(float) Load 108
|
||||||
|
110: 51(ptr) AccessChain 75(clip) 37 56
|
||||||
|
Store 110 109
|
||||||
|
111: 79(ptr) AccessChain 78(clip) 37 37
|
||||||
|
112: 6(float) Load 111
|
||||||
|
113: 51(ptr) AccessChain 75(clip) 37 88
|
||||||
|
Store 113 112
|
||||||
|
114: 79(ptr) AccessChain 78(clip) 37 63
|
||||||
|
115: 6(float) Load 114
|
||||||
|
116: 51(ptr) AccessChain 75(clip) 37 9
|
||||||
|
Store 116 115
|
||||||
|
119: 10 Load 67(pos)
|
||||||
|
Store 118(param) 119
|
||||||
|
121: 12 Load 71(VertexID)
|
||||||
|
Store 120(param) 121
|
||||||
|
124: 10 Load 75(clip)
|
||||||
|
Store 123(param) 124
|
||||||
|
125: 2 FunctionCall 22(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];) 118(param) 120(param) 122(param) 123(param)
|
||||||
|
126: 15(S) Load 122(param)
|
||||||
|
Store 117(OutputStream) 126
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
22(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf4[3];): 2 Function None 17
|
||||||
|
18(pos): 11(ptr) FunctionParameter
|
||||||
|
19(VertexID): 13(ptr) FunctionParameter
|
||||||
|
20(OutputStream): 16(ptr) FunctionParameter
|
||||||
|
21(clip): 11(ptr) FunctionParameter
|
||||||
|
23: Label
|
||||||
|
24(s): 16(ptr) Variable Function
|
||||||
|
28: 27(ptr) AccessChain 18(pos) 26
|
||||||
|
29: 7(fvec4) Load 28
|
||||||
|
30: 27(ptr) AccessChain 24(s) 26
|
||||||
|
Store 30 29
|
||||||
|
32: 27(ptr) AccessChain 21(clip) 26
|
||||||
|
33: 7(fvec4) Load 32
|
||||||
|
34: 14(fvec2) VectorShuffle 33 33 0 1
|
||||||
|
36: 35(ptr) AccessChain 24(s) 31
|
||||||
|
Store 36 34
|
||||||
|
38: 27(ptr) AccessChain 21(clip) 26
|
||||||
|
39: 7(fvec4) Load 38
|
||||||
|
40: 14(fvec2) VectorShuffle 39 39 2 3
|
||||||
|
41: 35(ptr) AccessChain 24(s) 37
|
||||||
|
Store 41 40
|
||||||
|
44: 27(ptr) AccessChain 24(s) 26
|
||||||
|
45: 7(fvec4) Load 44
|
||||||
|
Store 43(OutputStream.pos) 45
|
||||||
|
52: 51(ptr) AccessChain 24(s) 31 50
|
||||||
|
53: 6(float) Load 52
|
||||||
|
55: 54(ptr) AccessChain 49(OutputStream.clip1) 26
|
||||||
|
Store 55 53
|
||||||
|
57: 51(ptr) AccessChain 24(s) 31 56
|
||||||
|
58: 6(float) Load 57
|
||||||
|
59: 54(ptr) AccessChain 49(OutputStream.clip1) 31
|
||||||
|
Store 59 58
|
||||||
|
60: 51(ptr) AccessChain 24(s) 37 50
|
||||||
|
61: 6(float) Load 60
|
||||||
|
62: 54(ptr) AccessChain 49(OutputStream.clip1) 37
|
||||||
|
Store 62 61
|
||||||
|
64: 51(ptr) AccessChain 24(s) 37 56
|
||||||
|
65: 6(float) Load 64
|
||||||
|
66: 54(ptr) AccessChain 49(OutputStream.clip1) 63
|
||||||
|
Store 66 65
|
||||||
|
EmitVertex
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
819
Test/baseResults/hlsl.clipdistance-4.geom.out
Normal file
819
Test/baseResults/hlsl.clipdistance-4.geom.out
Normal file
@ -0,0 +1,819 @@
|
|||||||
|
hlsl.clipdistance-4.geom
|
||||||
|
Shader version: 500
|
||||||
|
invocations = -1
|
||||||
|
max_vertices = 3
|
||||||
|
input primitive = triangles
|
||||||
|
output primitive = line_strip
|
||||||
|
0:? Sequence
|
||||||
|
0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void)
|
||||||
|
0:13 Function Parameters:
|
||||||
|
0:13 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:13 'VertexID' ( in 3-element array of uint)
|
||||||
|
0:13 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:13 'clip0' ( in 3-element array of 2-component vector of float)
|
||||||
|
0:13 'clip1' ( in 3-element array of 2-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:16 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:16 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:16 direct index ( temp 4-component vector of float)
|
||||||
|
0:16 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:17 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:17 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 direct index ( temp 2-component vector of float)
|
||||||
|
0:17 'clip0' ( in 3-element array of 2-component vector of float)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 0 (const int)
|
||||||
|
0:18 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:18 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 2 (const int)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 'clip1' ( in 3-element array of 2-component vector of float)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:20 Sequence
|
||||||
|
0:20 Sequence
|
||||||
|
0:20 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:20 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 0 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:20 move second child to first child ( temp float)
|
||||||
|
0:20 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 0 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 0 (const int)
|
||||||
|
0:20 move second child to first child ( temp float)
|
||||||
|
0:20 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:20 move second child to first child ( temp float)
|
||||||
|
0:20 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 2 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 2 (const int)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 0 (const int)
|
||||||
|
0:20 move second child to first child ( temp float)
|
||||||
|
0:20 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 3 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 2 (const int)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 EmitVertex ( temp void)
|
||||||
|
0:13 Function Definition: main( ( temp void)
|
||||||
|
0:13 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:13 move second child to first child ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
|
0:13 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:? Sequence
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 3 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 3 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 3 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 3 (const int)
|
||||||
|
0:13 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void)
|
||||||
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'VertexID' ( temp 3-element array of uint)
|
||||||
|
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
|
||||||
|
|
||||||
|
Linked geometry stage:
|
||||||
|
|
||||||
|
|
||||||
|
Shader version: 500
|
||||||
|
invocations = 1
|
||||||
|
max_vertices = 3
|
||||||
|
input primitive = triangles
|
||||||
|
output primitive = line_strip
|
||||||
|
0:? Sequence
|
||||||
|
0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void)
|
||||||
|
0:13 Function Parameters:
|
||||||
|
0:13 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:13 'VertexID' ( in 3-element array of uint)
|
||||||
|
0:13 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:13 'clip0' ( in 3-element array of 2-component vector of float)
|
||||||
|
0:13 'clip1' ( in 3-element array of 2-component vector of float)
|
||||||
|
0:? Sequence
|
||||||
|
0:16 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:16 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:16 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:16 direct index ( temp 4-component vector of float)
|
||||||
|
0:16 'pos' ( in 3-element array of 4-component vector of float)
|
||||||
|
0:16 Constant:
|
||||||
|
0:16 0 (const int)
|
||||||
|
0:17 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:17 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 1 (const int)
|
||||||
|
0:17 direct index ( temp 2-component vector of float)
|
||||||
|
0:17 'clip0' ( in 3-element array of 2-component vector of float)
|
||||||
|
0:17 Constant:
|
||||||
|
0:17 0 (const int)
|
||||||
|
0:18 move second child to first child ( temp 2-component vector of float)
|
||||||
|
0:18 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 2 (const int)
|
||||||
|
0:18 direct index ( temp 2-component vector of float)
|
||||||
|
0:18 'clip1' ( in 3-element array of 2-component vector of float)
|
||||||
|
0:18 Constant:
|
||||||
|
0:18 0 (const int)
|
||||||
|
0:20 Sequence
|
||||||
|
0:20 Sequence
|
||||||
|
0:20 move second child to first child ( temp 4-component vector of float)
|
||||||
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:20 pos: direct index for structure ( temp 4-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 0 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:20 move second child to first child ( temp float)
|
||||||
|
0:20 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 0 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 0 (const int)
|
||||||
|
0:20 move second child to first child ( temp float)
|
||||||
|
0:20 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 clip0: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:20 move second child to first child ( temp float)
|
||||||
|
0:20 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 2 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 2 (const int)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 0 (const int)
|
||||||
|
0:20 move second child to first child ( temp float)
|
||||||
|
0:20 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 3 (const int)
|
||||||
|
0:20 direct index ( temp float)
|
||||||
|
0:20 clip1: direct index for structure ( temp 2-component vector of float)
|
||||||
|
0:20 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 2 (const int)
|
||||||
|
0:20 Constant:
|
||||||
|
0:20 1 (const int)
|
||||||
|
0:20 EmitVertex ( temp void)
|
||||||
|
0:13 Function Definition: main( ( temp void)
|
||||||
|
0:13 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:13 move second child to first child ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
|
0:13 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:? Sequence
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 3 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 3 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 3 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 0 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 move second child to first child ( temp float)
|
||||||
|
0:13 direct index ( temp float)
|
||||||
|
0:13 direct index ( temp 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 1 (const int)
|
||||||
|
0:13 direct index ( in float ClipDistance)
|
||||||
|
0:13 direct index ( in 4-element array of float ClipDistance)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 2 (const int)
|
||||||
|
0:13 Constant:
|
||||||
|
0:13 3 (const int)
|
||||||
|
0:13 Function Call: @main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3]; ( temp void)
|
||||||
|
0:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||||
|
0:? 'VertexID' ( temp 3-element array of uint)
|
||||||
|
0:? 'OutputStream' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip0, temp 2-component vector of float clip1})
|
||||||
|
0:? 'clip0' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:? 'clip1' ( temp 3-element array of 2-component vector of float)
|
||||||
|
0:? Linker Objects
|
||||||
|
0:? 'pos' ( in 3-element array of 4-component vector of float Position)
|
||||||
|
0:? 'VertexID' (layout( location=0) in 3-element array of uint)
|
||||||
|
0:? 'OutputStream.pos' ( out 4-component vector of float Position)
|
||||||
|
0:? 'clip0' ( in 3-element array of 4-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip1' ( out 4-element array of float ClipDistance)
|
||||||
|
|
||||||
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 130
|
||||||
|
|
||||||
|
Capability Geometry
|
||||||
|
Capability ClipDistance
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Geometry 4 "main" 44 50 70 74 79
|
||||||
|
ExecutionMode 4 Triangles
|
||||||
|
ExecutionMode 4 Invocations 1
|
||||||
|
ExecutionMode 4 OutputLineStrip
|
||||||
|
ExecutionMode 4 OutputVertices 3
|
||||||
|
Source HLSL 500
|
||||||
|
Name 4 "main"
|
||||||
|
Name 15 "S"
|
||||||
|
MemberName 15(S) 0 "pos"
|
||||||
|
MemberName 15(S) 1 "clip0"
|
||||||
|
MemberName 15(S) 2 "clip1"
|
||||||
|
Name 25 "@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];"
|
||||||
|
Name 20 "pos"
|
||||||
|
Name 21 "VertexID"
|
||||||
|
Name 22 "OutputStream"
|
||||||
|
Name 23 "clip0"
|
||||||
|
Name 24 "clip1"
|
||||||
|
Name 27 "s"
|
||||||
|
Name 44 "OutputStream.pos"
|
||||||
|
Name 50 "OutputStream.clip1"
|
||||||
|
Name 68 "pos"
|
||||||
|
Name 70 "pos"
|
||||||
|
Name 72 "VertexID"
|
||||||
|
Name 74 "VertexID"
|
||||||
|
Name 76 "clip0"
|
||||||
|
Name 79 "clip0"
|
||||||
|
Name 99 "clip1"
|
||||||
|
Name 118 "OutputStream"
|
||||||
|
Name 119 "param"
|
||||||
|
Name 121 "param"
|
||||||
|
Name 123 "param"
|
||||||
|
Name 124 "param"
|
||||||
|
Name 126 "param"
|
||||||
|
Decorate 44(OutputStream.pos) BuiltIn Position
|
||||||
|
Decorate 50(OutputStream.clip1) BuiltIn ClipDistance
|
||||||
|
Decorate 70(pos) BuiltIn Position
|
||||||
|
Decorate 74(VertexID) Location 0
|
||||||
|
Decorate 79(clip0) BuiltIn ClipDistance
|
||||||
|
2: TypeVoid
|
||||||
|
3: TypeFunction 2
|
||||||
|
6: TypeFloat 32
|
||||||
|
7: TypeVector 6(float) 4
|
||||||
|
8: TypeInt 32 0
|
||||||
|
9: 8(int) Constant 3
|
||||||
|
10: TypeArray 7(fvec4) 9
|
||||||
|
11: TypePointer Function 10
|
||||||
|
12: TypeArray 8(int) 9
|
||||||
|
13: TypePointer Function 12
|
||||||
|
14: TypeVector 6(float) 2
|
||||||
|
15(S): TypeStruct 7(fvec4) 14(fvec2) 14(fvec2)
|
||||||
|
16: TypePointer Function 15(S)
|
||||||
|
17: TypeArray 14(fvec2) 9
|
||||||
|
18: TypePointer Function 17
|
||||||
|
19: TypeFunction 2 11(ptr) 13(ptr) 16(ptr) 18(ptr) 18(ptr)
|
||||||
|
28: TypeInt 32 1
|
||||||
|
29: 28(int) Constant 0
|
||||||
|
30: TypePointer Function 7(fvec4)
|
||||||
|
34: 28(int) Constant 1
|
||||||
|
35: TypePointer Function 14(fvec2)
|
||||||
|
39: 28(int) Constant 2
|
||||||
|
43: TypePointer Output 7(fvec4)
|
||||||
|
44(OutputStream.pos): 43(ptr) Variable Output
|
||||||
|
47: 8(int) Constant 4
|
||||||
|
48: TypeArray 6(float) 47
|
||||||
|
49: TypePointer Output 48
|
||||||
|
50(OutputStream.clip1): 49(ptr) Variable Output
|
||||||
|
51: 8(int) Constant 0
|
||||||
|
52: TypePointer Function 6(float)
|
||||||
|
55: TypePointer Output 6(float)
|
||||||
|
57: 8(int) Constant 1
|
||||||
|
64: 28(int) Constant 3
|
||||||
|
69: TypePointer Input 10
|
||||||
|
70(pos): 69(ptr) Variable Input
|
||||||
|
73: TypePointer Input 12
|
||||||
|
74(VertexID): 73(ptr) Variable Input
|
||||||
|
77: TypeArray 48 9
|
||||||
|
78: TypePointer Input 77
|
||||||
|
79(clip0): 78(ptr) Variable Input
|
||||||
|
80: TypePointer Input 6(float)
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
68(pos): 11(ptr) Variable Function
|
||||||
|
72(VertexID): 13(ptr) Variable Function
|
||||||
|
76(clip0): 18(ptr) Variable Function
|
||||||
|
99(clip1): 18(ptr) Variable Function
|
||||||
|
118(OutputStream): 16(ptr) Variable Function
|
||||||
|
119(param): 11(ptr) Variable Function
|
||||||
|
121(param): 13(ptr) Variable Function
|
||||||
|
123(param): 16(ptr) Variable Function
|
||||||
|
124(param): 18(ptr) Variable Function
|
||||||
|
126(param): 18(ptr) Variable Function
|
||||||
|
71: 10 Load 70(pos)
|
||||||
|
Store 68(pos) 71
|
||||||
|
75: 12 Load 74(VertexID)
|
||||||
|
Store 72(VertexID) 75
|
||||||
|
81: 80(ptr) AccessChain 79(clip0) 29 29
|
||||||
|
82: 6(float) Load 81
|
||||||
|
83: 52(ptr) AccessChain 76(clip0) 29 51
|
||||||
|
Store 83 82
|
||||||
|
84: 80(ptr) AccessChain 79(clip0) 29 34
|
||||||
|
85: 6(float) Load 84
|
||||||
|
86: 52(ptr) AccessChain 76(clip0) 29 57
|
||||||
|
Store 86 85
|
||||||
|
87: 80(ptr) AccessChain 79(clip0) 29 39
|
||||||
|
88: 6(float) Load 87
|
||||||
|
89: 52(ptr) AccessChain 76(clip0) 34 51
|
||||||
|
Store 89 88
|
||||||
|
90: 80(ptr) AccessChain 79(clip0) 29 64
|
||||||
|
91: 6(float) Load 90
|
||||||
|
92: 52(ptr) AccessChain 76(clip0) 34 57
|
||||||
|
Store 92 91
|
||||||
|
93: 80(ptr) AccessChain 79(clip0) 34 29
|
||||||
|
94: 6(float) Load 93
|
||||||
|
95: 52(ptr) AccessChain 76(clip0) 39 51
|
||||||
|
Store 95 94
|
||||||
|
96: 80(ptr) AccessChain 79(clip0) 34 34
|
||||||
|
97: 6(float) Load 96
|
||||||
|
98: 52(ptr) AccessChain 76(clip0) 39 57
|
||||||
|
Store 98 97
|
||||||
|
100: 80(ptr) AccessChain 79(clip0) 29 39
|
||||||
|
101: 6(float) Load 100
|
||||||
|
102: 52(ptr) AccessChain 99(clip1) 29 51
|
||||||
|
Store 102 101
|
||||||
|
103: 80(ptr) AccessChain 79(clip0) 29 64
|
||||||
|
104: 6(float) Load 103
|
||||||
|
105: 52(ptr) AccessChain 99(clip1) 29 57
|
||||||
|
Store 105 104
|
||||||
|
106: 80(ptr) AccessChain 79(clip0) 34 39
|
||||||
|
107: 6(float) Load 106
|
||||||
|
108: 52(ptr) AccessChain 99(clip1) 34 51
|
||||||
|
Store 108 107
|
||||||
|
109: 80(ptr) AccessChain 79(clip0) 34 64
|
||||||
|
110: 6(float) Load 109
|
||||||
|
111: 52(ptr) AccessChain 99(clip1) 34 57
|
||||||
|
Store 111 110
|
||||||
|
112: 80(ptr) AccessChain 79(clip0) 39 39
|
||||||
|
113: 6(float) Load 112
|
||||||
|
114: 52(ptr) AccessChain 99(clip1) 39 51
|
||||||
|
Store 114 113
|
||||||
|
115: 80(ptr) AccessChain 79(clip0) 39 64
|
||||||
|
116: 6(float) Load 115
|
||||||
|
117: 52(ptr) AccessChain 99(clip1) 39 57
|
||||||
|
Store 117 116
|
||||||
|
120: 10 Load 68(pos)
|
||||||
|
Store 119(param) 120
|
||||||
|
122: 12 Load 72(VertexID)
|
||||||
|
Store 121(param) 122
|
||||||
|
125: 17 Load 76(clip0)
|
||||||
|
Store 124(param) 125
|
||||||
|
127: 17 Load 99(clip1)
|
||||||
|
Store 126(param) 127
|
||||||
|
128: 2 FunctionCall 25(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];) 119(param) 121(param) 123(param) 124(param) 126(param)
|
||||||
|
129: 15(S) Load 123(param)
|
||||||
|
Store 118(OutputStream) 129
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
25(@main(vf4[3];u1[3];struct-S-vf4-vf2-vf21;vf2[3];vf2[3];): 2 Function None 19
|
||||||
|
20(pos): 11(ptr) FunctionParameter
|
||||||
|
21(VertexID): 13(ptr) FunctionParameter
|
||||||
|
22(OutputStream): 16(ptr) FunctionParameter
|
||||||
|
23(clip0): 18(ptr) FunctionParameter
|
||||||
|
24(clip1): 18(ptr) FunctionParameter
|
||||||
|
26: Label
|
||||||
|
27(s): 16(ptr) Variable Function
|
||||||
|
31: 30(ptr) AccessChain 20(pos) 29
|
||||||
|
32: 7(fvec4) Load 31
|
||||||
|
33: 30(ptr) AccessChain 27(s) 29
|
||||||
|
Store 33 32
|
||||||
|
36: 35(ptr) AccessChain 23(clip0) 29
|
||||||
|
37: 14(fvec2) Load 36
|
||||||
|
38: 35(ptr) AccessChain 27(s) 34
|
||||||
|
Store 38 37
|
||||||
|
40: 35(ptr) AccessChain 24(clip1) 29
|
||||||
|
41: 14(fvec2) Load 40
|
||||||
|
42: 35(ptr) AccessChain 27(s) 39
|
||||||
|
Store 42 41
|
||||||
|
45: 30(ptr) AccessChain 27(s) 29
|
||||||
|
46: 7(fvec4) Load 45
|
||||||
|
Store 44(OutputStream.pos) 46
|
||||||
|
53: 52(ptr) AccessChain 27(s) 34 51
|
||||||
|
54: 6(float) Load 53
|
||||||
|
56: 55(ptr) AccessChain 50(OutputStream.clip1) 29
|
||||||
|
Store 56 54
|
||||||
|
58: 52(ptr) AccessChain 27(s) 34 57
|
||||||
|
59: 6(float) Load 58
|
||||||
|
60: 55(ptr) AccessChain 50(OutputStream.clip1) 34
|
||||||
|
Store 60 59
|
||||||
|
61: 52(ptr) AccessChain 27(s) 39 51
|
||||||
|
62: 6(float) Load 61
|
||||||
|
63: 55(ptr) AccessChain 50(OutputStream.clip1) 39
|
||||||
|
Store 63 62
|
||||||
|
65: 52(ptr) AccessChain 27(s) 39 57
|
||||||
|
66: 6(float) Load 65
|
||||||
|
67: 55(ptr) AccessChain 50(OutputStream.clip1) 64
|
||||||
|
Store 67 66
|
||||||
|
EmitVertex
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
@ -1,15 +1,10 @@
|
|||||||
hlsl.semantic.geom
|
hlsl.semantic.geom
|
||||||
ERROR: 0:15: '' : unimplemented: clip/cull not currently implemented for this stage
|
|
||||||
ERROR: 0:15: '' : unimplemented: clip/cull not currently implemented for this stage
|
|
||||||
ERROR: 2 compilation errors. No code generated.
|
|
||||||
|
|
||||||
|
|
||||||
Shader version: 500
|
Shader version: 500
|
||||||
invocations = -1
|
invocations = -1
|
||||||
max_vertices = 4
|
max_vertices = 4
|
||||||
input primitive = triangles
|
input primitive = triangles
|
||||||
output primitive = line_strip
|
output primitive = line_strip
|
||||||
ERROR: node is still EOpNull!
|
0:? Sequence
|
||||||
0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void)
|
0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void)
|
||||||
0:13 Function Parameters:
|
0:13 Function Parameters:
|
||||||
0:13 'VertexID' ( in 3-element array of uint)
|
0:13 'VertexID' ( in 3-element array of uint)
|
||||||
@ -23,6 +18,26 @@ ERROR: node is still EOpNull!
|
|||||||
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
||||||
0:15 Constant:
|
0:15 Constant:
|
||||||
0:15 0 (const int)
|
0:15 0 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:15 move second child to first child ( temp float)
|
||||||
|
0:15 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance)
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 0 (const int)
|
||||||
|
0:15 clip0: direct index for structure ( temp float)
|
||||||
|
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:15 move second child to first child ( temp float)
|
||||||
|
0:15 direct index ( out float CullDistance)
|
||||||
|
0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance)
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 0 (const int)
|
||||||
|
0:15 cull0: direct index for structure ( temp float)
|
||||||
|
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 2 (const int)
|
||||||
0:15 move second child to first child ( temp uint)
|
0:15 move second child to first child ( temp uint)
|
||||||
0:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
0:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
||||||
0:15 vpai: direct index for structure ( temp uint)
|
0:15 vpai: direct index for structure ( temp uint)
|
||||||
@ -57,6 +72,8 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
0:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
||||||
0:? 'OutputStream.rtai' ( out uint Layer)
|
0:? 'OutputStream.rtai' ( out uint Layer)
|
||||||
0:? 'OutputStream.ii' (layout( location=0) out int)
|
0:? 'OutputStream.ii' (layout( location=0) out int)
|
||||||
|
0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance)
|
||||||
|
|
||||||
|
|
||||||
Linked geometry stage:
|
Linked geometry stage:
|
||||||
@ -67,7 +84,7 @@ invocations = 1
|
|||||||
max_vertices = 4
|
max_vertices = 4
|
||||||
input primitive = triangles
|
input primitive = triangles
|
||||||
output primitive = line_strip
|
output primitive = line_strip
|
||||||
ERROR: node is still EOpNull!
|
0:? Sequence
|
||||||
0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void)
|
0:13 Function Definition: @main(u1[3];struct-S-f1-f1-f1-u1-u1-i11; ( temp void)
|
||||||
0:13 Function Parameters:
|
0:13 Function Parameters:
|
||||||
0:13 'VertexID' ( in 3-element array of uint)
|
0:13 'VertexID' ( in 3-element array of uint)
|
||||||
@ -81,6 +98,26 @@ ERROR: node is still EOpNull!
|
|||||||
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
||||||
0:15 Constant:
|
0:15 Constant:
|
||||||
0:15 0 (const int)
|
0:15 0 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:15 move second child to first child ( temp float)
|
||||||
|
0:15 direct index ( out float ClipDistance)
|
||||||
|
0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance)
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 0 (const int)
|
||||||
|
0:15 clip0: direct index for structure ( temp float)
|
||||||
|
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 1 (const int)
|
||||||
|
0:? Sequence
|
||||||
|
0:15 move second child to first child ( temp float)
|
||||||
|
0:15 direct index ( out float CullDistance)
|
||||||
|
0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance)
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 0 (const int)
|
||||||
|
0:15 cull0: direct index for structure ( temp float)
|
||||||
|
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
|
||||||
|
0:15 Constant:
|
||||||
|
0:15 2 (const int)
|
||||||
0:15 move second child to first child ( temp uint)
|
0:15 move second child to first child ( temp uint)
|
||||||
0:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
0:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
||||||
0:15 vpai: direct index for structure ( temp uint)
|
0:15 vpai: direct index for structure ( temp uint)
|
||||||
@ -115,5 +152,129 @@ ERROR: node is still EOpNull!
|
|||||||
0:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
0:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
||||||
0:? 'OutputStream.rtai' ( out uint Layer)
|
0:? 'OutputStream.rtai' ( out uint Layer)
|
||||||
0:? 'OutputStream.ii' (layout( location=0) out int)
|
0:? 'OutputStream.ii' (layout( location=0) out int)
|
||||||
|
0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance)
|
||||||
|
0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance)
|
||||||
|
|
||||||
SPIR-V is not generated for failed compile or link
|
// Module Version 10000
|
||||||
|
// Generated by (magic number): 80001
|
||||||
|
// Id's are bound by 65
|
||||||
|
|
||||||
|
Capability Geometry
|
||||||
|
Capability ClipDistance
|
||||||
|
Capability CullDistance
|
||||||
|
Capability MultiViewport
|
||||||
|
1: ExtInstImport "GLSL.std.450"
|
||||||
|
MemoryModel Logical GLSL450
|
||||||
|
EntryPoint Geometry 4 "main" 20 29 34 40 45 50 57
|
||||||
|
ExecutionMode 4 Triangles
|
||||||
|
ExecutionMode 4 Invocations 1
|
||||||
|
ExecutionMode 4 OutputLineStrip
|
||||||
|
ExecutionMode 4 OutputVertices 4
|
||||||
|
Source HLSL 500
|
||||||
|
Name 4 "main"
|
||||||
|
Name 12 "S"
|
||||||
|
MemberName 12(S) 0 "clip0"
|
||||||
|
MemberName 12(S) 1 "clip0"
|
||||||
|
MemberName 12(S) 2 "cull0"
|
||||||
|
MemberName 12(S) 3 "vpai"
|
||||||
|
MemberName 12(S) 4 "rtai"
|
||||||
|
MemberName 12(S) 5 "ii"
|
||||||
|
Name 17 "@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;"
|
||||||
|
Name 15 "VertexID"
|
||||||
|
Name 16 "OutputStream"
|
||||||
|
Name 20 "OutputStream.clip0"
|
||||||
|
Name 21 "s"
|
||||||
|
Name 29 "OutputStream.clip0"
|
||||||
|
Name 34 "OutputStream.cull0"
|
||||||
|
Name 40 "OutputStream.vpai"
|
||||||
|
Name 45 "OutputStream.rtai"
|
||||||
|
Name 50 "OutputStream.ii"
|
||||||
|
Name 55 "VertexID"
|
||||||
|
Name 57 "VertexID"
|
||||||
|
Name 59 "OutputStream"
|
||||||
|
Name 60 "param"
|
||||||
|
Name 62 "param"
|
||||||
|
Decorate 20(OutputStream.clip0) BuiltIn Position
|
||||||
|
Decorate 29(OutputStream.clip0) BuiltIn ClipDistance
|
||||||
|
Decorate 34(OutputStream.cull0) BuiltIn CullDistance
|
||||||
|
Decorate 40(OutputStream.vpai) BuiltIn ViewportIndex
|
||||||
|
Decorate 45(OutputStream.rtai) BuiltIn Layer
|
||||||
|
Decorate 50(OutputStream.ii) Location 0
|
||||||
|
Decorate 57(VertexID) Location 0
|
||||||
|
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) 10(float) 6(int) 6(int) 11(int)
|
||||||
|
13: TypePointer Function 12(S)
|
||||||
|
14: TypeFunction 2 9(ptr) 13(ptr)
|
||||||
|
19: TypePointer Output 10(float)
|
||||||
|
20(OutputStream.clip0): 19(ptr) Variable Output
|
||||||
|
22: 11(int) Constant 0
|
||||||
|
23: TypePointer Function 10(float)
|
||||||
|
26: 6(int) Constant 1
|
||||||
|
27: TypeArray 10(float) 26
|
||||||
|
28: TypePointer Output 27
|
||||||
|
29(OutputStream.clip0): 28(ptr) Variable Output
|
||||||
|
30: 11(int) Constant 1
|
||||||
|
34(OutputStream.cull0): 28(ptr) Variable Output
|
||||||
|
35: 11(int) Constant 2
|
||||||
|
39: TypePointer Output 6(int)
|
||||||
|
40(OutputStream.vpai): 39(ptr) Variable Output
|
||||||
|
41: 11(int) Constant 3
|
||||||
|
42: TypePointer Function 6(int)
|
||||||
|
45(OutputStream.rtai): 39(ptr) Variable Output
|
||||||
|
46: 11(int) Constant 4
|
||||||
|
49: TypePointer Output 11(int)
|
||||||
|
50(OutputStream.ii): 49(ptr) Variable Output
|
||||||
|
51: 11(int) Constant 5
|
||||||
|
52: TypePointer Function 11(int)
|
||||||
|
56: TypePointer Input 8
|
||||||
|
57(VertexID): 56(ptr) Variable Input
|
||||||
|
4(main): 2 Function None 3
|
||||||
|
5: Label
|
||||||
|
55(VertexID): 9(ptr) Variable Function
|
||||||
|
59(OutputStream): 13(ptr) Variable Function
|
||||||
|
60(param): 9(ptr) Variable Function
|
||||||
|
62(param): 13(ptr) Variable Function
|
||||||
|
58: 8 Load 57(VertexID)
|
||||||
|
Store 55(VertexID) 58
|
||||||
|
61: 8 Load 55(VertexID)
|
||||||
|
Store 60(param) 61
|
||||||
|
63: 2 FunctionCall 17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;) 60(param) 62(param)
|
||||||
|
64: 12(S) Load 62(param)
|
||||||
|
Store 59(OutputStream) 64
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;): 2 Function None 14
|
||||||
|
15(VertexID): 9(ptr) FunctionParameter
|
||||||
|
16(OutputStream): 13(ptr) FunctionParameter
|
||||||
|
18: Label
|
||||||
|
21(s): 13(ptr) Variable Function
|
||||||
|
24: 23(ptr) AccessChain 21(s) 22
|
||||||
|
25: 10(float) Load 24
|
||||||
|
Store 20(OutputStream.clip0) 25
|
||||||
|
31: 23(ptr) AccessChain 21(s) 30
|
||||||
|
32: 10(float) Load 31
|
||||||
|
33: 19(ptr) AccessChain 29(OutputStream.clip0) 22
|
||||||
|
Store 33 32
|
||||||
|
36: 23(ptr) AccessChain 21(s) 35
|
||||||
|
37: 10(float) Load 36
|
||||||
|
38: 19(ptr) AccessChain 34(OutputStream.cull0) 22
|
||||||
|
Store 38 37
|
||||||
|
43: 42(ptr) AccessChain 21(s) 41
|
||||||
|
44: 6(int) Load 43
|
||||||
|
Store 40(OutputStream.vpai) 44
|
||||||
|
47: 42(ptr) AccessChain 21(s) 46
|
||||||
|
48: 6(int) Load 47
|
||||||
|
Store 45(OutputStream.rtai) 48
|
||||||
|
53: 52(ptr) AccessChain 21(s) 51
|
||||||
|
54: 11(int) Load 53
|
||||||
|
Store 50(OutputStream.ii) 54
|
||||||
|
EmitVertex
|
||||||
|
Return
|
||||||
|
FunctionEnd
|
||||||
|
|||||||
@ -1,21 +1,18 @@
|
|||||||
struct S {
|
struct S {
|
||||||
float4 pos : SV_Position;
|
float4 pos : SV_Position;
|
||||||
float clip : SV_ClipDistance0;
|
float2 clip : SV_ClipDistance0;
|
||||||
float cull : SV_CullDistance0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
[maxvertexcount(3)]
|
[maxvertexcount(3)]
|
||||||
void main(triangle in float4 pos[3] : SV_Position,
|
void main(triangle in float4 pos[3] : SV_Position,
|
||||||
triangle in uint VertexID[3] : VertexID,
|
triangle in uint VertexID[3] : VertexID,
|
||||||
inout LineStream<S> OutputStream,
|
inout LineStream<S> OutputStream,
|
||||||
triangle in float clip[3] : SV_ClipDistance, // scalar float
|
triangle in float4 clip[3] : SV_ClipDistance) // externally: an array 3 of array 4 (not vec4!) of float.
|
||||||
triangle in float cull[3] : SV_CullDistance) // scalar float
|
|
||||||
{
|
{
|
||||||
S s;
|
S s;
|
||||||
|
|
||||||
s.pos = pos[0];
|
s.pos = pos[0];
|
||||||
s.clip = clip[0];
|
s.clip = clip[0].xy;
|
||||||
s.cull = cull[0];
|
|
||||||
|
|
||||||
OutputStream.Append(s);
|
OutputStream.Append(s);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@ struct S {
|
|||||||
void main(triangle in float4 pos[3] : SV_Position,
|
void main(triangle in float4 pos[3] : SV_Position,
|
||||||
triangle in uint VertexID[3] : VertexID,
|
triangle in uint VertexID[3] : VertexID,
|
||||||
inout LineStream<S> OutputStream,
|
inout LineStream<S> OutputStream,
|
||||||
triangle in float2 clip[3][2] : SV_ClipDistance) // scalar float
|
triangle in float2 clip[3][2] : SV_ClipDistance) // externally: an array 3 of array 4 of float.
|
||||||
{
|
{
|
||||||
S s;
|
S s;
|
||||||
|
|
||||||
|
|||||||
@ -4,5 +4,3 @@ float4 main(in float4 pos : SV_Position,
|
|||||||
{
|
{
|
||||||
return pos + clip[0] + cull[0];
|
return pos + clip[0] + cull[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
20
Test/hlsl.clipdistance-3.geom
Normal file
20
Test/hlsl.clipdistance-3.geom
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
struct S {
|
||||||
|
float4 pos : SV_Position;
|
||||||
|
float2 clip0 : SV_ClipDistance0; // clip0 and clip1 form an array of float[4] externally.
|
||||||
|
float2 clip1 : SV_ClipDistance1;
|
||||||
|
};
|
||||||
|
|
||||||
|
[maxvertexcount(3)]
|
||||||
|
void main(triangle in float4 pos[3] : SV_Position,
|
||||||
|
triangle in uint VertexID[3] : VertexID,
|
||||||
|
inout LineStream<S> OutputStream,
|
||||||
|
triangle in float4 clip[3] : SV_ClipDistance) // externally: an array 3 of array 4 (not vec4!) of float.
|
||||||
|
{
|
||||||
|
S s;
|
||||||
|
|
||||||
|
s.pos = pos[0];
|
||||||
|
s.clip0 = clip[0].xy;
|
||||||
|
s.clip1 = clip[0].zw;
|
||||||
|
|
||||||
|
OutputStream.Append(s);
|
||||||
|
}
|
||||||
21
Test/hlsl.clipdistance-4.geom
Normal file
21
Test/hlsl.clipdistance-4.geom
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
struct S {
|
||||||
|
float4 pos : SV_Position;
|
||||||
|
float2 clip0 : SV_ClipDistance0; // clip0 and clip1 form an array of float[4] externally.
|
||||||
|
float2 clip1 : SV_ClipDistance1;
|
||||||
|
};
|
||||||
|
|
||||||
|
[maxvertexcount(3)]
|
||||||
|
void main(triangle in float4 pos[3] : SV_Position,
|
||||||
|
triangle in uint VertexID[3] : VertexID,
|
||||||
|
inout LineStream<S> OutputStream,
|
||||||
|
triangle in float2 clip0[3] : SV_ClipDistance0, // test input arrayed semantic vars
|
||||||
|
triangle in float2 clip1[3] : SV_ClipDistance1)
|
||||||
|
{
|
||||||
|
S s;
|
||||||
|
|
||||||
|
s.pos = pos[0];
|
||||||
|
s.clip0 = clip0[0];
|
||||||
|
s.clip1 = clip1[0];
|
||||||
|
|
||||||
|
OutputStream.Append(s);
|
||||||
|
}
|
||||||
@ -104,8 +104,10 @@ INSTANTIATE_TEST_CASE_P(
|
|||||||
{"hlsl.clipdistance-2.geom", "main"},
|
{"hlsl.clipdistance-2.geom", "main"},
|
||||||
{"hlsl.clipdistance-2.vert", "main"},
|
{"hlsl.clipdistance-2.vert", "main"},
|
||||||
{"hlsl.clipdistance-3.frag", "main"},
|
{"hlsl.clipdistance-3.frag", "main"},
|
||||||
|
{"hlsl.clipdistance-3.geom", "main"},
|
||||||
{"hlsl.clipdistance-3.vert", "main"},
|
{"hlsl.clipdistance-3.vert", "main"},
|
||||||
{"hlsl.clipdistance-4.frag", "main"},
|
{"hlsl.clipdistance-4.frag", "main"},
|
||||||
|
{"hlsl.clipdistance-4.geom", "main"},
|
||||||
{"hlsl.clipdistance-4.vert", "main"},
|
{"hlsl.clipdistance-4.vert", "main"},
|
||||||
{"hlsl.clipdistance-5.frag", "main"},
|
{"hlsl.clipdistance-5.frag", "main"},
|
||||||
{"hlsl.clipdistance-5.vert", "main"},
|
{"hlsl.clipdistance-5.vert", "main"},
|
||||||
|
|||||||
@ -66,8 +66,10 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
|
|||||||
entryPointFunction(nullptr),
|
entryPointFunction(nullptr),
|
||||||
entryPointFunctionBody(nullptr),
|
entryPointFunctionBody(nullptr),
|
||||||
gsStreamOutput(nullptr),
|
gsStreamOutput(nullptr),
|
||||||
clipDistanceVariable(nullptr),
|
clipDistanceInput(nullptr),
|
||||||
cullDistanceVariable(nullptr)
|
cullDistanceInput(nullptr),
|
||||||
|
clipDistanceOutput(nullptr),
|
||||||
|
cullDistanceOutput(nullptr)
|
||||||
{
|
{
|
||||||
globalUniformDefaults.clear();
|
globalUniformDefaults.clear();
|
||||||
globalUniformDefaults.layoutMatrix = ElmRowMajor;
|
globalUniformDefaults.layoutMatrix = ElmRowMajor;
|
||||||
@ -80,8 +82,10 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
|
|||||||
globalInputDefaults.clear();
|
globalInputDefaults.clear();
|
||||||
globalOutputDefaults.clear();
|
globalOutputDefaults.clear();
|
||||||
|
|
||||||
clipSemanticNSize.fill(0);
|
clipSemanticNSizeIn.fill(0);
|
||||||
cullSemanticNSize.fill(0);
|
cullSemanticNSizeIn.fill(0);
|
||||||
|
clipSemanticNSizeOut.fill(0);
|
||||||
|
cullSemanticNSizeOut.fill(0);
|
||||||
|
|
||||||
// "Shaders in the transform
|
// "Shaders in the transform
|
||||||
// feedback capturing mode have an initial global default of
|
// feedback capturing mode have an initial global default of
|
||||||
@ -1152,14 +1156,18 @@ void HlslParseContext::splitBuiltIn(const TString& baseName, const TType& member
|
|||||||
if (arraySizes != nullptr && !memberType.isArray())
|
if (arraySizes != nullptr && !memberType.isArray())
|
||||||
ioVar->getWritableType().newArraySizes(*arraySizes);
|
ioVar->getWritableType().newArraySizes(*arraySizes);
|
||||||
|
|
||||||
fixBuiltInIoType(ioVar->getWritableType());
|
|
||||||
|
|
||||||
splitBuiltIns[tInterstageIoData(memberType.getQualifier().builtIn, outerQualifier.storage)] = ioVar;
|
splitBuiltIns[tInterstageIoData(memberType.getQualifier().builtIn, outerQualifier.storage)] = ioVar;
|
||||||
if (!isClipOrCullDistance(ioVar->getType()))
|
if (!isClipOrCullDistance(ioVar->getType()))
|
||||||
trackLinkage(*ioVar);
|
trackLinkage(*ioVar);
|
||||||
|
|
||||||
// Merge qualifier from the user structure
|
// Merge qualifier from the user structure
|
||||||
mergeQualifiers(ioVar->getWritableType().getQualifier(), outerQualifier);
|
mergeQualifiers(ioVar->getWritableType().getQualifier(), outerQualifier);
|
||||||
|
|
||||||
|
// Fix the builtin type if needed (e.g, some types require fixed array sizes, no matter how the
|
||||||
|
// shader declared them). This is done after mergeQualifiers(), in case fixBuiltInIoType looks
|
||||||
|
// at the qualifier to determine e.g, in or out qualifications.
|
||||||
|
fixBuiltInIoType(ioVar->getWritableType());
|
||||||
|
|
||||||
// But, not location, we're losing that
|
// But, not location, we're losing that
|
||||||
ioVar->getWritableType().getQualifier().layoutLocation = TQualifier::layoutLocationEnd;
|
ioVar->getWritableType().getQualifier().layoutLocation = TQualifier::layoutLocationEnd;
|
||||||
}
|
}
|
||||||
@ -1483,10 +1491,18 @@ void HlslParseContext::fixBuiltInIoType(TType& type)
|
|||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if (isClipOrCullDistance(type)) {
|
if (isClipOrCullDistance(type)) {
|
||||||
|
const int loc = type.getQualifier().layoutLocation;
|
||||||
|
|
||||||
if (type.getQualifier().builtIn == EbvClipDistance) {
|
if (type.getQualifier().builtIn == EbvClipDistance) {
|
||||||
clipSemanticNSize[type.getQualifier().layoutLocation] = type.getVectorSize();
|
if (type.getQualifier().storage == EvqVaryingIn)
|
||||||
|
clipSemanticNSizeIn[loc] = type.getVectorSize();
|
||||||
|
else
|
||||||
|
clipSemanticNSizeOut[loc] = type.getVectorSize();
|
||||||
} else {
|
} else {
|
||||||
cullSemanticNSize[type.getQualifier().layoutLocation] = type.getVectorSize();
|
if (type.getQualifier().storage == EvqVaryingIn)
|
||||||
|
cullSemanticNSizeIn[loc] = type.getVectorSize();
|
||||||
|
else
|
||||||
|
cullSemanticNSizeOut[loc] = type.getVectorSize();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2274,6 +2290,7 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
|||||||
switch (language) {
|
switch (language) {
|
||||||
case EShLangFragment:
|
case EShLangFragment:
|
||||||
case EShLangVertex:
|
case EShLangVertex:
|
||||||
|
case EShLangGeometry:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
error(loc, "unimplemented: clip/cull not currently implemented for this stage", "", "");
|
error(loc, "unimplemented: clip/cull not currently implemented for this stage", "", "");
|
||||||
@ -2292,17 +2309,17 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
|||||||
|
|
||||||
const TBuiltInVariable builtInType = clipCullNode->getQualifier().builtIn;
|
const TBuiltInVariable builtInType = clipCullNode->getQualifier().builtIn;
|
||||||
|
|
||||||
decltype(clipSemanticNSize)* semanticNSize = nullptr;
|
decltype(clipSemanticNSizeIn)* semanticNSize = nullptr;
|
||||||
|
|
||||||
// Refer to either the clip or the cull distance, depending on semantic.
|
// Refer to either the clip or the cull distance, depending on semantic.
|
||||||
switch (builtInType) {
|
switch (builtInType) {
|
||||||
case EbvClipDistance:
|
case EbvClipDistance:
|
||||||
clipCullVar = &clipDistanceVariable;
|
clipCullVar = isOutput ? &clipDistanceOutput : &clipDistanceInput;
|
||||||
semanticNSize = &clipSemanticNSize;
|
semanticNSize = isOutput ? &clipSemanticNSizeOut : &clipSemanticNSizeIn;
|
||||||
break;
|
break;
|
||||||
case EbvCullDistance:
|
case EbvCullDistance:
|
||||||
clipCullVar = &cullDistanceVariable;
|
clipCullVar = isOutput ? &cullDistanceOutput : &cullDistanceInput;
|
||||||
semanticNSize = &cullSemanticNSize;
|
semanticNSize = isOutput ? &cullSemanticNSizeOut : &cullSemanticNSizeIn;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// called invalidly: we expected a clip or a cull distance.
|
// called invalidly: we expected a clip or a cull distance.
|
||||||
@ -2328,28 +2345,48 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
|||||||
vecItems += (*semanticNSize)[x];
|
vecItems += (*semanticNSize)[x];
|
||||||
arrayLoc += (*semanticNSize)[x];
|
arrayLoc += (*semanticNSize)[x];
|
||||||
}
|
}
|
||||||
|
|
||||||
// array sizes, or 1 if it's not an array:
|
|
||||||
const int internalNodeArraySize = (internalNode->getType().isArray() ? internalNode->getType().getOuterArraySize() : 1);
|
// It can have up to 2 array dimensions (in the case of geometry shader inputs)
|
||||||
|
const TArraySizes* const internalArraySizes = internalNode->getType().getArraySizes();
|
||||||
|
const int internalArrayDims = internalNode->getType().isArray() ? internalArraySizes->getNumDims() : 0;
|
||||||
// vector sizes:
|
// vector sizes:
|
||||||
const int internalNodeVectorSize = internalNode->getType().getVectorSize();
|
const int internalVectorSize = internalNode->getType().getVectorSize();
|
||||||
|
// array sizes, or 1 if it's not an array:
|
||||||
|
const int internalInnerArraySize = (internalArrayDims > 0 ? internalArraySizes->getDimSize(internalArrayDims-1) : 1);
|
||||||
|
const int internalOuterArraySize = (internalArrayDims > 1 ? internalArraySizes->getDimSize(0) : 1);
|
||||||
|
|
||||||
|
// The created type may be an array of arrays, e.g, for geometry shader inputs.
|
||||||
|
const bool isImplicitlyArrayed = (language == EShLangGeometry && !isOutput);
|
||||||
|
|
||||||
// If we haven't created the output already, create it now.
|
// If we haven't created the output already, create it now.
|
||||||
if (*clipCullVar == nullptr) {
|
if (*clipCullVar == nullptr) {
|
||||||
// ClipDistance and CullDistance are handled specially in the entry point input/output copy
|
// ClipDistance and CullDistance are handled specially in the entry point input/output copy
|
||||||
// algorithm, because they may need to be unpacked from components of vectors (or a scalar)
|
// algorithm, because they may need to be unpacked from components of vectors (or a scalar)
|
||||||
// into a float array, or vice versa. Here, we make the array the right size and type,
|
// into a float array, or vice versa. Here, we make the array the right size and type,
|
||||||
// which depends on the incoming data, which has several potential dimensions: Semantic ID
|
// which depends on the incoming data, which has several potential dimensions:
|
||||||
// vector size array size Of those, semantic ID and array size cannot appear
|
// * Semantic ID
|
||||||
// simultaneously.
|
// * vector size
|
||||||
const int requiredArraySize = arrayLoc * internalNodeArraySize;
|
// * array size
|
||||||
|
// Of those, semantic ID and array size cannot appear simultaneously.
|
||||||
|
//
|
||||||
|
// Also to note: for implicitly arrayed forms (e.g, geometry shader inputs), we need to create two
|
||||||
|
// array dimensions. The shader's declaration may have one or two array dimensions. One is always
|
||||||
|
// the geometry's dimension.
|
||||||
|
|
||||||
|
const bool useInnerSize = internalArrayDims > 1 || !isImplicitlyArrayed;
|
||||||
|
|
||||||
|
const int requiredInnerArraySize = arrayLoc * (useInnerSize ? internalInnerArraySize : 1);
|
||||||
|
const int requiredOuterArraySize = (internalArrayDims > 0) ? internalArraySizes->getDimSize(0) : 1;
|
||||||
|
|
||||||
TType clipCullType(EbtFloat, clipCullNode->getType().getQualifier().storage, 1);
|
TType clipCullType(EbtFloat, clipCullNode->getType().getQualifier().storage, 1);
|
||||||
clipCullType.getQualifier() = clipCullNode->getType().getQualifier();
|
clipCullType.getQualifier() = clipCullNode->getType().getQualifier();
|
||||||
|
|
||||||
// Create required array dimension
|
// Create required array dimension
|
||||||
TArraySizes arraySizes;
|
TArraySizes arraySizes;
|
||||||
arraySizes.addInnerSize(requiredArraySize);
|
if (isImplicitlyArrayed)
|
||||||
|
arraySizes.addInnerSize(requiredOuterArraySize);
|
||||||
|
arraySizes.addInnerSize(requiredInnerArraySize);
|
||||||
clipCullType.newArraySizes(arraySizes);
|
clipCullType.newArraySizes(arraySizes);
|
||||||
|
|
||||||
// Obtain symbol name: we'll use that for the symbol we introduce.
|
// Obtain symbol name: we'll use that for the symbol we introduce.
|
||||||
@ -2369,10 +2406,13 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
|||||||
// Create symbol for the clip or cull variable.
|
// Create symbol for the clip or cull variable.
|
||||||
TIntermSymbol* clipCullSym = intermediate.addSymbol(**clipCullVar);
|
TIntermSymbol* clipCullSym = intermediate.addSymbol(**clipCullVar);
|
||||||
|
|
||||||
// array sizes, or 1 if it's not an array:
|
|
||||||
const int clipCullSymArraySize = (clipCullSym->getType().isArray() ? clipCullSym->getType().getOuterArraySize() : 1);
|
|
||||||
// vector sizes:
|
// vector sizes:
|
||||||
const int clipCullSymVectorSize = clipCullSym->getType().getVectorSize();
|
const int clipCullVectorSize = clipCullSym->getType().getVectorSize();
|
||||||
|
|
||||||
|
// array sizes, or 1 if it's not an array:
|
||||||
|
const TArraySizes* const clipCullArraySizes = clipCullSym->getType().getArraySizes();
|
||||||
|
const int clipCullOuterArraySize = isImplicitlyArrayed ? clipCullArraySizes->getDimSize(0) : 1;
|
||||||
|
const int clipCullInnerArraySize = clipCullArraySizes->getDimSize(isImplicitlyArrayed ? 1 : 0);
|
||||||
|
|
||||||
// clipCullSym has got to be an array of scalar floats, per SPIR-V semantics.
|
// clipCullSym has got to be an array of scalar floats, per SPIR-V semantics.
|
||||||
// fixBuiltInIoType() should have handled that upstream.
|
// fixBuiltInIoType() should have handled that upstream.
|
||||||
@ -2390,8 +2430,9 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
|||||||
// If the types are homomorphic, use a simple assign. No need to mess about with
|
// If the types are homomorphic, use a simple assign. No need to mess about with
|
||||||
// individual components.
|
// individual components.
|
||||||
if (clipCullSym->getType().isArray() == internalNode->getType().isArray() &&
|
if (clipCullSym->getType().isArray() == internalNode->getType().isArray() &&
|
||||||
clipCullSymArraySize == internalNodeArraySize &&
|
clipCullInnerArraySize == internalInnerArraySize &&
|
||||||
clipCullSymVectorSize == internalNodeVectorSize) {
|
clipCullOuterArraySize == internalOuterArraySize &&
|
||||||
|
clipCullVectorSize == internalVectorSize) {
|
||||||
|
|
||||||
if (isOutput)
|
if (isOutput)
|
||||||
clipCullAssign = intermediate.addAssign(op, clipCullSym, internalNode, loc);
|
clipCullAssign = intermediate.addAssign(op, clipCullSym, internalNode, loc);
|
||||||
@ -2407,47 +2448,61 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
|||||||
// We are going to copy each component of the internal (per array element if indicated) to sequential
|
// We are going to copy each component of the internal (per array element if indicated) to sequential
|
||||||
// array elements of the clipCullSym. This tracks the lhs element we're writing to as we go along.
|
// array elements of the clipCullSym. This tracks the lhs element we're writing to as we go along.
|
||||||
// We may be starting in the middle - e.g, for a non-zero semantic ID calculated above.
|
// We may be starting in the middle - e.g, for a non-zero semantic ID calculated above.
|
||||||
int clipCullArrayPos = semanticOffset[semanticId];
|
int clipCullInnerArrayPos = semanticOffset[semanticId];
|
||||||
|
int clipCullOuterArrayPos = 0;
|
||||||
|
|
||||||
|
// Lambda to add an index to a node, set the type of the result, and return the new node.
|
||||||
|
const auto addIndex = [this, &loc](TIntermTyped* node, int pos) -> TIntermTyped* {
|
||||||
|
const TType derefType(node->getType(), 0);
|
||||||
|
node = intermediate.addIndex(EOpIndexDirect, node, intermediate.addConstantUnion(pos, loc), loc);
|
||||||
|
node->setType(derefType);
|
||||||
|
return node;
|
||||||
|
};
|
||||||
|
|
||||||
// Loop through every component of every element of the internal, and copy to or from the matching external.
|
// Loop through every component of every element of the internal, and copy to or from the matching external.
|
||||||
for (int internalArrayPos = 0; internalArrayPos < internalNodeArraySize; ++internalArrayPos) {
|
for (int internalOuterArrayPos = 0; internalOuterArrayPos < internalOuterArraySize; ++internalOuterArrayPos) {
|
||||||
for (int internalComponent = 0; internalComponent < internalNodeVectorSize; ++internalComponent) {
|
for (int internalInnerArrayPos = 0; internalInnerArrayPos < internalInnerArraySize; ++internalInnerArrayPos) {
|
||||||
TIntermTyped* clipCullMember = clipCullSym;
|
for (int internalComponent = 0; internalComponent < internalVectorSize; ++internalComponent) {
|
||||||
|
// clip/cull array member to read from / write to:
|
||||||
|
TIntermTyped* clipCullMember = clipCullSym;
|
||||||
|
|
||||||
// array member to read from / write to:
|
// If implicitly arrayed, there is an outer array dimension involved
|
||||||
{
|
if (isImplicitlyArrayed)
|
||||||
const TType derefType(clipCullMember->getType(), 0);
|
clipCullMember = addIndex(clipCullMember, clipCullOuterArrayPos);
|
||||||
clipCullMember = intermediate.addIndex(EOpIndexDirect, clipCullMember,
|
|
||||||
intermediate.addConstantUnion(clipCullArrayPos++, loc), loc);
|
// Index into proper array position for clip cull member
|
||||||
clipCullMember->setType(derefType);
|
clipCullMember = addIndex(clipCullMember, clipCullInnerArrayPos++);
|
||||||
|
|
||||||
|
// if needed, start over with next outer array slice.
|
||||||
|
if (isImplicitlyArrayed && clipCullInnerArrayPos >= clipCullInnerArraySize) {
|
||||||
|
clipCullInnerArrayPos = semanticOffset[semanticId];
|
||||||
|
++clipCullOuterArrayPos;
|
||||||
|
}
|
||||||
|
|
||||||
|
// internal member to read from / write to:
|
||||||
|
TIntermTyped* internalMember = internalNode;
|
||||||
|
|
||||||
|
// If internal node has outer array dimension, index appropriately.
|
||||||
|
if (internalArrayDims > 1)
|
||||||
|
internalMember = addIndex(internalMember, internalOuterArrayPos);
|
||||||
|
|
||||||
|
// If internal node has inner array dimension, index appropriately.
|
||||||
|
if (internalArrayDims > 0)
|
||||||
|
internalMember = addIndex(internalMember, internalInnerArrayPos);
|
||||||
|
|
||||||
|
// If internal node is a vector, extract the component of interest.
|
||||||
|
if (internalNode->getType().isVector())
|
||||||
|
internalMember = addIndex(internalMember, internalComponent);
|
||||||
|
|
||||||
|
// Create an assignment: output from internal to clip cull, or input from clip cull to internal.
|
||||||
|
if (isOutput)
|
||||||
|
clipCullAssign = intermediate.addAssign(op, clipCullMember, internalMember, loc);
|
||||||
|
else
|
||||||
|
clipCullAssign = intermediate.addAssign(op, internalMember, clipCullMember, loc);
|
||||||
|
|
||||||
|
// Track assignment in the sequence.
|
||||||
|
assignList = intermediate.growAggregate(assignList, clipCullAssign);
|
||||||
}
|
}
|
||||||
|
|
||||||
TIntermTyped* internalMember = internalNode;
|
|
||||||
|
|
||||||
// If internal node is an array, extract the element of interest
|
|
||||||
if (internalNode->getType().isArray()) {
|
|
||||||
const TType derefType(internalMember->getType(), 0);
|
|
||||||
internalMember = intermediate.addIndex(EOpIndexDirect, internalMember,
|
|
||||||
intermediate.addConstantUnion(internalArrayPos, loc), loc);
|
|
||||||
internalMember->setType(derefType);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If internal node is a vector, extract the component of interest.
|
|
||||||
if (internalNode->getType().isVector()) {
|
|
||||||
const TType derefType(internalMember->getType(), 0);
|
|
||||||
internalMember = intermediate.addIndex(EOpIndexDirect, internalMember,
|
|
||||||
intermediate.addConstantUnion(internalComponent, loc), loc);
|
|
||||||
internalMember->setType(derefType);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create an assignment: output from internal to clip cull, or input from clip cull to internal.
|
|
||||||
if (isOutput)
|
|
||||||
clipCullAssign = intermediate.addAssign(op, clipCullMember, internalMember, loc);
|
|
||||||
else
|
|
||||||
clipCullAssign = intermediate.addAssign(op, internalMember, clipCullMember, loc);
|
|
||||||
|
|
||||||
// Track assignment in the sequence.
|
|
||||||
assignList = intermediate.growAggregate(assignList, clipCullAssign);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -435,12 +435,16 @@ protected:
|
|||||||
|
|
||||||
TVariable* gsStreamOutput; // geometry shader stream outputs, for emit (Append method)
|
TVariable* gsStreamOutput; // geometry shader stream outputs, for emit (Append method)
|
||||||
|
|
||||||
TVariable* clipDistanceVariable; // synthesized clip distance variable (shader might have >1)
|
TVariable* clipDistanceOutput; // synthesized clip distance out variable (shader might have >1)
|
||||||
TVariable* cullDistanceVariable; // synthesized cull distance variable (shader might have >1)
|
TVariable* cullDistanceOutput; // synthesized cull distance out variable (shader might have >1)
|
||||||
|
TVariable* clipDistanceInput; // synthesized clip distance in variable (shader might have >1)
|
||||||
|
TVariable* cullDistanceInput; // synthesized cull distance in variable (shader might have >1)
|
||||||
|
|
||||||
static const int maxClipCullRegs = 2;
|
static const int maxClipCullRegs = 2;
|
||||||
std::array<int, maxClipCullRegs> clipSemanticNSize; // vector, indexed by clip semantic ID
|
std::array<int, maxClipCullRegs> clipSemanticNSizeIn; // vector, indexed by clip semantic ID
|
||||||
std::array<int, maxClipCullRegs> cullSemanticNSize; // vector, indexed by cull semantic ID
|
std::array<int, maxClipCullRegs> cullSemanticNSizeIn; // vector, indexed by cull semantic ID
|
||||||
|
std::array<int, maxClipCullRegs> clipSemanticNSizeOut; // vector, indexed by clip semantic ID
|
||||||
|
std::array<int, maxClipCullRegs> cullSemanticNSizeOut; // vector, indexed by cull semantic ID
|
||||||
|
|
||||||
// This tracks the first (mip level) argument to the .mips[][] operator. Since this can be nested as
|
// This tracks the first (mip level) argument to the .mips[][] operator. Since this can be nested as
|
||||||
// in tx.mips[tx.mips[0][1].x][2], we need a stack. We also track the TSourceLoc for error reporting
|
// in tx.mips[tx.mips[0][1].x][2], we need a stack. We also track the TSourceLoc for error reporting
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user