HLSL: add geometry stage support for clip/cull distance
Changes:
(1) Allow clip/cull builtins as both input and output in the same shader stage. Previously,
not enough data was tracked to handle this.
(2) Handle the extra array dimension in GS inputs. The synthesized external variable can
now be created with the extra array dimension if needed, and the form conversion code is
able to handle it as well.
For example, both of these GS inputs would result in the same synthesized external type:
triangle in float4 clip[3] : SV_ClipDistance
triangle in float2 clip[3][2] : SV_ClipDistance
In the second case, the inner array dimension packs with the 2-vector of floats into an array[4],
which there is an array[3] of due to the triangle geometry.
This commit is contained in:
parent
ea0c1643ab
commit
5e5b12e931
13 changed files with 3448 additions and 204 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue