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
|
||||
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
|
||||
invocations = -1
|
||||
max_vertices = 3
|
||||
input primitive = triangles
|
||||
output primitive = line_strip
|
||||
ERROR: node is still EOpNull!
|
||||
0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-f1-f11;f1[3];f1[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 float clip, temp float cull})
|
||||
0:13 'clip' ( in 3-element array of float)
|
||||
0:13 'cull' ( in 3-element array of float)
|
||||
0:? Sequence
|
||||
0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void)
|
||||
0:11 Function Parameters:
|
||||
0:11 'pos' ( in 3-element array of 4-component vector of float)
|
||||
0:11 'VertexID' ( in 3-element array of uint)
|
||||
0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||
0:11 'clip' ( in 3-element array of 4-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 float clip, temp float cull})
|
||||
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 float)
|
||||
0:17 clip: direct index for structure ( temp float)
|
||||
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 direct index ( temp float)
|
||||
0:17 'clip' ( in 3-element array of float)
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 move second child to first child ( temp float)
|
||||
0:18 cull: direct index for structure ( temp float)
|
||||
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 direct index ( temp float)
|
||||
0:18 'cull' ( in 3-element array 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:14 move second child to first child ( temp 4-component vector of float)
|
||||
0:14 pos: direct index for structure ( temp 4-component vector of float)
|
||||
0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 direct index ( temp 4-component vector of float)
|
||||
0:14 'pos' ( in 3-element array of 4-component vector of float)
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:15 move second child to first child ( temp 2-component vector of float)
|
||||
0:15 clip: direct index for structure ( temp 2-component vector of float)
|
||||
0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:15 vector swizzle ( temp 2-component vector of float)
|
||||
0:15 direct index ( temp 4-component vector of float)
|
||||
0:15 'clip' ( in 3-element array of 4-component vector of float)
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 Sequence
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:17 Sequence
|
||||
0:17 Sequence
|
||||
0:17 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 float clip, temp float cull})
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 EmitVertex ( temp void)
|
||||
0:13 Function Definition: main( ( temp void)
|
||||
0:13 Function Parameters:
|
||||
0:17 pos: direct index for structure ( temp 4-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 0 (const int)
|
||||
0:? Sequence
|
||||
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 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: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' ( 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' (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:? '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:? 'clip' ( temp 3-element array of float)
|
||||
0:? 'cull' ( temp 3-element array of float)
|
||||
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 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.clip' ( out 2-element array of float ClipDistance)
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
@ -85,69 +281,457 @@ invocations = 1
|
||||
max_vertices = 3
|
||||
input primitive = triangles
|
||||
output primitive = line_strip
|
||||
ERROR: node is still EOpNull!
|
||||
0:13 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-f1-f11;f1[3];f1[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 float clip, temp float cull})
|
||||
0:13 'clip' ( in 3-element array of float)
|
||||
0:13 'cull' ( in 3-element array of float)
|
||||
0:? Sequence
|
||||
0:11 Function Definition: @main(vf4[3];u1[3];struct-S-vf4-vf21;vf4[3]; ( temp void)
|
||||
0:11 Function Parameters:
|
||||
0:11 'pos' ( in 3-element array of 4-component vector of float)
|
||||
0:11 'VertexID' ( in 3-element array of uint)
|
||||
0:11 'OutputStream' ( out structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||
0:11 'clip' ( in 3-element array of 4-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 float clip, temp float cull})
|
||||
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 float)
|
||||
0:17 clip: direct index for structure ( temp float)
|
||||
0:17 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
||||
0:17 Constant:
|
||||
0:17 1 (const int)
|
||||
0:17 direct index ( temp float)
|
||||
0:17 'clip' ( in 3-element array of float)
|
||||
0:17 Constant:
|
||||
0:17 0 (const int)
|
||||
0:18 move second child to first child ( temp float)
|
||||
0:18 cull: direct index for structure ( temp float)
|
||||
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp float clip, temp float cull})
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:18 direct index ( temp float)
|
||||
0:18 'cull' ( in 3-element array 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:14 move second child to first child ( temp 4-component vector of float)
|
||||
0:14 pos: direct index for structure ( temp 4-component vector of float)
|
||||
0:14 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:14 direct index ( temp 4-component vector of float)
|
||||
0:14 'pos' ( in 3-element array of 4-component vector of float)
|
||||
0:14 Constant:
|
||||
0:14 0 (const int)
|
||||
0:15 move second child to first child ( temp 2-component vector of float)
|
||||
0:15 clip: direct index for structure ( temp 2-component vector of float)
|
||||
0:15 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float clip})
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:15 vector swizzle ( temp 2-component vector of float)
|
||||
0:15 direct index ( temp 4-component vector of float)
|
||||
0:15 'clip' ( in 3-element array of 4-component vector of float)
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 Sequence
|
||||
0:15 Constant:
|
||||
0:15 0 (const int)
|
||||
0:15 Constant:
|
||||
0:15 1 (const int)
|
||||
0:17 Sequence
|
||||
0:17 Sequence
|
||||
0:17 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 float clip, temp float cull})
|
||||
0:20 Constant:
|
||||
0:20 0 (const int)
|
||||
0:20 EmitVertex ( temp void)
|
||||
0:13 Function Definition: main( ( temp void)
|
||||
0:13 Function Parameters:
|
||||
0:17 pos: direct index for structure ( temp 4-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 0 (const int)
|
||||
0:? Sequence
|
||||
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 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: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' ( 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' (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:? '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:? 'clip' ( temp 3-element array of float)
|
||||
0:? 'cull' ( temp 3-element array of float)
|
||||
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 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.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
|
||||
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
|
||||
invocations = -1
|
||||
max_vertices = 3
|
||||
input primitive = triangles
|
||||
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 Parameters:
|
||||
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 Constant:
|
||||
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:11 Function Definition: main( ( temp void)
|
||||
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:? 'VertexID' ( temp 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:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||
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:? '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.clip' ( out 4-element array of float ClipDistance)
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
@ -93,7 +368,7 @@ invocations = 1
|
||||
max_vertices = 3
|
||||
input primitive = triangles
|
||||
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 Parameters:
|
||||
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 Constant:
|
||||
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:11 Function Definition: main( ( temp void)
|
||||
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:? 'VertexID' ( temp 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:? 'pos' ( temp 3-element array of 4-component vector of float)
|
||||
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:? '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.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
|
||||
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
|
||||
invocations = -1
|
||||
max_vertices = 4
|
||||
input primitive = triangles
|
||||
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 Parameters:
|
||||
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 Constant:
|
||||
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:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
||||
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.rtai' ( out uint Layer)
|
||||
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:
|
||||
@ -67,7 +84,7 @@ invocations = 1
|
||||
max_vertices = 4
|
||||
input primitive = triangles
|
||||
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 Parameters:
|
||||
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 Constant:
|
||||
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:? 'OutputStream.vpai' ( out uint ViewportIndex)
|
||||
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.rtai' ( out uint Layer)
|
||||
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 {
|
||||
float4 pos : SV_Position;
|
||||
float clip : SV_ClipDistance0;
|
||||
float cull : SV_CullDistance0;
|
||||
float4 pos : SV_Position;
|
||||
float2 clip : SV_ClipDistance0;
|
||||
};
|
||||
|
||||
[maxvertexcount(3)]
|
||||
void main(triangle in float4 pos[3] : SV_Position,
|
||||
triangle in uint VertexID[3] : VertexID,
|
||||
inout LineStream<S> OutputStream,
|
||||
triangle in float clip[3] : SV_ClipDistance, // scalar float
|
||||
triangle in float cull[3] : SV_CullDistance) // scalar float
|
||||
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.clip = clip[0];
|
||||
s.cull = cull[0];
|
||||
s.clip = clip[0].xy;
|
||||
|
||||
OutputStream.Append(s);
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ struct S {
|
||||
void main(triangle in float4 pos[3] : SV_Position,
|
||||
triangle in uint VertexID[3] : VertexID,
|
||||
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;
|
||||
|
||||
|
||||
@ -4,5 +4,3 @@ float4 main(in float4 pos : SV_Position,
|
||||
{
|
||||
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.vert", "main"},
|
||||
{"hlsl.clipdistance-3.frag", "main"},
|
||||
{"hlsl.clipdistance-3.geom", "main"},
|
||||
{"hlsl.clipdistance-3.vert", "main"},
|
||||
{"hlsl.clipdistance-4.frag", "main"},
|
||||
{"hlsl.clipdistance-4.geom", "main"},
|
||||
{"hlsl.clipdistance-4.vert", "main"},
|
||||
{"hlsl.clipdistance-5.frag", "main"},
|
||||
{"hlsl.clipdistance-5.vert", "main"},
|
||||
|
||||
@ -66,8 +66,10 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
|
||||
entryPointFunction(nullptr),
|
||||
entryPointFunctionBody(nullptr),
|
||||
gsStreamOutput(nullptr),
|
||||
clipDistanceVariable(nullptr),
|
||||
cullDistanceVariable(nullptr)
|
||||
clipDistanceInput(nullptr),
|
||||
cullDistanceInput(nullptr),
|
||||
clipDistanceOutput(nullptr),
|
||||
cullDistanceOutput(nullptr)
|
||||
{
|
||||
globalUniformDefaults.clear();
|
||||
globalUniformDefaults.layoutMatrix = ElmRowMajor;
|
||||
@ -80,8 +82,10 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
|
||||
globalInputDefaults.clear();
|
||||
globalOutputDefaults.clear();
|
||||
|
||||
clipSemanticNSize.fill(0);
|
||||
cullSemanticNSize.fill(0);
|
||||
clipSemanticNSizeIn.fill(0);
|
||||
cullSemanticNSizeIn.fill(0);
|
||||
clipSemanticNSizeOut.fill(0);
|
||||
cullSemanticNSizeOut.fill(0);
|
||||
|
||||
// "Shaders in the transform
|
||||
// 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())
|
||||
ioVar->getWritableType().newArraySizes(*arraySizes);
|
||||
|
||||
fixBuiltInIoType(ioVar->getWritableType());
|
||||
|
||||
splitBuiltIns[tInterstageIoData(memberType.getQualifier().builtIn, outerQualifier.storage)] = ioVar;
|
||||
if (!isClipOrCullDistance(ioVar->getType()))
|
||||
trackLinkage(*ioVar);
|
||||
|
||||
// Merge qualifier from the user structure
|
||||
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
|
||||
ioVar->getWritableType().getQualifier().layoutLocation = TQualifier::layoutLocationEnd;
|
||||
}
|
||||
@ -1483,10 +1491,18 @@ void HlslParseContext::fixBuiltInIoType(TType& type)
|
||||
}
|
||||
default:
|
||||
if (isClipOrCullDistance(type)) {
|
||||
const int loc = type.getQualifier().layoutLocation;
|
||||
|
||||
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 {
|
||||
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) {
|
||||
case EShLangFragment:
|
||||
case EShLangVertex:
|
||||
case EShLangGeometry:
|
||||
break;
|
||||
default:
|
||||
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;
|
||||
|
||||
decltype(clipSemanticNSize)* semanticNSize = nullptr;
|
||||
decltype(clipSemanticNSizeIn)* semanticNSize = nullptr;
|
||||
|
||||
// Refer to either the clip or the cull distance, depending on semantic.
|
||||
switch (builtInType) {
|
||||
case EbvClipDistance:
|
||||
clipCullVar = &clipDistanceVariable;
|
||||
semanticNSize = &clipSemanticNSize;
|
||||
clipCullVar = isOutput ? &clipDistanceOutput : &clipDistanceInput;
|
||||
semanticNSize = isOutput ? &clipSemanticNSizeOut : &clipSemanticNSizeIn;
|
||||
break;
|
||||
case EbvCullDistance:
|
||||
clipCullVar = &cullDistanceVariable;
|
||||
semanticNSize = &cullSemanticNSize;
|
||||
clipCullVar = isOutput ? &cullDistanceOutput : &cullDistanceInput;
|
||||
semanticNSize = isOutput ? &cullSemanticNSizeOut : &cullSemanticNSizeIn;
|
||||
break;
|
||||
|
||||
// called invalidly: we expected a clip or a cull distance.
|
||||
@ -2328,28 +2345,48 @@ TIntermAggregate* HlslParseContext::assignClipCullDistance(const TSourceLoc& loc
|
||||
vecItems += (*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:
|
||||
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 (*clipCullVar == nullptr) {
|
||||
// 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)
|
||||
// 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
|
||||
// vector size array size Of those, semantic ID and array size cannot appear
|
||||
// simultaneously.
|
||||
const int requiredArraySize = arrayLoc * internalNodeArraySize;
|
||||
// which depends on the incoming data, which has several potential dimensions:
|
||||
// * Semantic ID
|
||||
// * vector size
|
||||
// * 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);
|
||||
clipCullType.getQualifier() = clipCullNode->getType().getQualifier();
|
||||
|
||||
// Create required array dimension
|
||||
TArraySizes arraySizes;
|
||||
arraySizes.addInnerSize(requiredArraySize);
|
||||
if (isImplicitlyArrayed)
|
||||
arraySizes.addInnerSize(requiredOuterArraySize);
|
||||
arraySizes.addInnerSize(requiredInnerArraySize);
|
||||
clipCullType.newArraySizes(arraySizes);
|
||||
|
||||
// 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.
|
||||
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:
|
||||
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.
|
||||
// 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
|
||||
// individual components.
|
||||
if (clipCullSym->getType().isArray() == internalNode->getType().isArray() &&
|
||||
clipCullSymArraySize == internalNodeArraySize &&
|
||||
clipCullSymVectorSize == internalNodeVectorSize) {
|
||||
clipCullInnerArraySize == internalInnerArraySize &&
|
||||
clipCullOuterArraySize == internalOuterArraySize &&
|
||||
clipCullVectorSize == internalVectorSize) {
|
||||
|
||||
if (isOutput)
|
||||
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
|
||||
// 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.
|
||||
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.
|
||||
for (int internalArrayPos = 0; internalArrayPos < internalNodeArraySize; ++internalArrayPos) {
|
||||
for (int internalComponent = 0; internalComponent < internalNodeVectorSize; ++internalComponent) {
|
||||
TIntermTyped* clipCullMember = clipCullSym;
|
||||
for (int internalOuterArrayPos = 0; internalOuterArrayPos < internalOuterArraySize; ++internalOuterArrayPos) {
|
||||
for (int internalInnerArrayPos = 0; internalInnerArrayPos < internalInnerArraySize; ++internalInnerArrayPos) {
|
||||
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:
|
||||
{
|
||||
const TType derefType(clipCullMember->getType(), 0);
|
||||
clipCullMember = intermediate.addIndex(EOpIndexDirect, clipCullMember,
|
||||
intermediate.addConstantUnion(clipCullArrayPos++, loc), loc);
|
||||
clipCullMember->setType(derefType);
|
||||
// If implicitly arrayed, there is an outer array dimension involved
|
||||
if (isImplicitlyArrayed)
|
||||
clipCullMember = addIndex(clipCullMember, clipCullOuterArrayPos);
|
||||
|
||||
// Index into proper array position for clip cull member
|
||||
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* clipDistanceVariable; // synthesized clip distance variable (shader might have >1)
|
||||
TVariable* cullDistanceVariable; // synthesized cull distance variable (shader might have >1)
|
||||
TVariable* clipDistanceOutput; // synthesized clip distance out 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;
|
||||
std::array<int, maxClipCullRegs> clipSemanticNSize; // vector, indexed by clip semantic ID
|
||||
std::array<int, maxClipCullRegs> cullSemanticNSize; // vector, indexed by cull semantic ID
|
||||
std::array<int, maxClipCullRegs> clipSemanticNSizeIn; // vector, indexed by clip 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
|
||||
// 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