mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 12:00:05 +00:00
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
@ -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…
Reference in New Issue
Block a user