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
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue