Updated glslang.

This commit is contained in:
Branimir Karadžić 2017-09-01 19:08:30 -07:00
parent 29c334fc19
commit 369669b17d
50 changed files with 4332 additions and 393 deletions

View File

@ -23,7 +23,7 @@
#include <limits>
#include <sstream>
#if defined(_MSC_VER) && _MSC_VER < 1700
#if defined(_MSC_VER) && _MSC_VER < 1800
namespace std {
bool isnan(double f)
{

View File

@ -65,6 +65,14 @@ const Id NoResult = 0;
const Id NoType = 0;
const Decoration NoPrecision = DecorationMax;
#ifdef __GNUC__
# define POTENTIALLY_UNUSED __attribute__((unused))
#else
# define POTENTIALLY_UNUSED
#endif
POTENTIALLY_UNUSED
const MemorySemanticsMask MemorySemanticsAllMemory =
(MemorySemanticsMask)(MemorySemanticsSequentiallyConsistentMask |
MemorySemanticsUniformMemoryMask |

View File

@ -1,10 +1,9 @@
glspv.frag
ERROR: 0:4: '#error' : GL_SPIRV is set ( correct , not an error )
ERROR: 0:6: '#error' : GL_SPIR is 100
ERROR: 0:14: 'f' : non-opaque uniform variables need a layout(location=L)
ERROR: 0:19: 'input_attachment_index' : only allowed when using GLSL for Vulkan
ERROR: 0:19: '' : syntax error, unexpected IDENTIFIER, expecting LEFT_BRACE or COMMA or SEMICOLON
ERROR: 5 compilation errors. No code generated.
ERROR: 4 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View File

@ -23,14 +23,14 @@ gl_FragCoord origin is upper left
0:? Sequence
0:4 move second child to first child ( temp float)
0:? 'clip' ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 1-element array of float ClipDistance)
0:4 Constant:
0:4 0 (const int)
0:? Sequence
0:4 move second child to first child ( temp float)
0:? 'cull' ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 1-element array of float CullDistance)
0:4 Constant:
0:4 0 (const int)
@ -74,14 +74,14 @@ gl_FragCoord origin is upper left
0:? Sequence
0:4 move second child to first child ( temp float)
0:? 'clip' ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 1-element array of float ClipDistance)
0:4 Constant:
0:4 0 (const int)
0:? Sequence
0:4 move second child to first child ( temp float)
0:? 'cull' ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 1-element array of float CullDistance)
0:4 Constant:
0:4 0 (const int)

View File

@ -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

View File

@ -34,14 +34,14 @@ Shader version: 500
0:? 'pos' ( temp 4-component vector of float)
0:? Sequence
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 1-element array of float ClipDistance)
0:4 Constant:
0:4 0 (const int)
0:? 'clip' ( temp float)
0:? Sequence
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 1-element array of float CullDistance)
0:4 Constant:
0:4 0 (const int)
@ -90,14 +90,14 @@ Shader version: 500
0:? 'pos' ( temp 4-component vector of float)
0:? Sequence
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 1-element array of float ClipDistance)
0:4 Constant:
0:4 0 (const int)
0:? 'clip' ( temp float)
0:? Sequence
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 1-element array of float CullDistance)
0:4 Constant:
0:4 0 (const int)

View File

@ -41,7 +41,7 @@ gl_FragCoord origin is upper left
0:4 0 (const int)
0:4 Constant:
0:4 0 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 4-element array of float ClipDistance)
0:4 Constant:
0:4 0 (const int)
@ -53,7 +53,7 @@ gl_FragCoord origin is upper left
0:4 0 (const int)
0:4 Constant:
0:4 1 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 4-element array of float ClipDistance)
0:4 Constant:
0:4 1 (const int)
@ -65,7 +65,7 @@ gl_FragCoord origin is upper left
0:4 1 (const int)
0:4 Constant:
0:4 0 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 4-element array of float ClipDistance)
0:4 Constant:
0:4 2 (const int)
@ -77,7 +77,7 @@ gl_FragCoord origin is upper left
0:4 1 (const int)
0:4 Constant:
0:4 1 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 4-element array of float ClipDistance)
0:4 Constant:
0:4 3 (const int)
@ -90,7 +90,7 @@ gl_FragCoord origin is upper left
0:4 0 (const int)
0:4 Constant:
0:4 0 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 4-element array of float CullDistance)
0:4 Constant:
0:4 0 (const int)
@ -102,7 +102,7 @@ gl_FragCoord origin is upper left
0:4 0 (const int)
0:4 Constant:
0:4 1 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 4-element array of float CullDistance)
0:4 Constant:
0:4 1 (const int)
@ -114,7 +114,7 @@ gl_FragCoord origin is upper left
0:4 1 (const int)
0:4 Constant:
0:4 0 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 4-element array of float CullDistance)
0:4 Constant:
0:4 2 (const int)
@ -126,7 +126,7 @@ gl_FragCoord origin is upper left
0:4 1 (const int)
0:4 Constant:
0:4 1 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 4-element array of float CullDistance)
0:4 Constant:
0:4 3 (const int)
@ -188,7 +188,7 @@ gl_FragCoord origin is upper left
0:4 0 (const int)
0:4 Constant:
0:4 0 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 4-element array of float ClipDistance)
0:4 Constant:
0:4 0 (const int)
@ -200,7 +200,7 @@ gl_FragCoord origin is upper left
0:4 0 (const int)
0:4 Constant:
0:4 1 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 4-element array of float ClipDistance)
0:4 Constant:
0:4 1 (const int)
@ -212,7 +212,7 @@ gl_FragCoord origin is upper left
0:4 1 (const int)
0:4 Constant:
0:4 0 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 4-element array of float ClipDistance)
0:4 Constant:
0:4 2 (const int)
@ -224,7 +224,7 @@ gl_FragCoord origin is upper left
0:4 1 (const int)
0:4 Constant:
0:4 1 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float ClipDistance)
0:? 'clip' ( in 4-element array of float ClipDistance)
0:4 Constant:
0:4 3 (const int)
@ -237,7 +237,7 @@ gl_FragCoord origin is upper left
0:4 0 (const int)
0:4 Constant:
0:4 0 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 4-element array of float CullDistance)
0:4 Constant:
0:4 0 (const int)
@ -249,7 +249,7 @@ gl_FragCoord origin is upper left
0:4 0 (const int)
0:4 Constant:
0:4 1 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 4-element array of float CullDistance)
0:4 Constant:
0:4 1 (const int)
@ -261,7 +261,7 @@ gl_FragCoord origin is upper left
0:4 1 (const int)
0:4 Constant:
0:4 0 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 4-element array of float CullDistance)
0:4 Constant:
0:4 2 (const int)
@ -273,7 +273,7 @@ gl_FragCoord origin is upper left
0:4 1 (const int)
0:4 Constant:
0:4 1 (const int)
0:4 direct index ( temp float)
0:4 direct index ( in float CullDistance)
0:? 'cull' ( in 4-element array of float CullDistance)
0:4 Constant:
0:4 3 (const int)

View File

@ -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

View File

@ -106,7 +106,7 @@ Shader version: 500
0:? 'pos' ( temp 4-component vector of float)
0:? Sequence
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 4-element array of float ClipDistance)
0:4 Constant:
0:4 0 (const int)
@ -118,7 +118,7 @@ Shader version: 500
0:4 Constant:
0:4 0 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 4-element array of float ClipDistance)
0:4 Constant:
0:4 1 (const int)
@ -130,7 +130,7 @@ Shader version: 500
0:4 Constant:
0:4 1 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 4-element array of float ClipDistance)
0:4 Constant:
0:4 2 (const int)
@ -142,7 +142,7 @@ Shader version: 500
0:4 Constant:
0:4 0 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 4-element array of float ClipDistance)
0:4 Constant:
0:4 3 (const int)
@ -155,7 +155,7 @@ Shader version: 500
0:4 1 (const int)
0:? Sequence
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 4-element array of float CullDistance)
0:4 Constant:
0:4 0 (const int)
@ -167,7 +167,7 @@ Shader version: 500
0:4 Constant:
0:4 0 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 4-element array of float CullDistance)
0:4 Constant:
0:4 1 (const int)
@ -179,7 +179,7 @@ Shader version: 500
0:4 Constant:
0:4 1 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 4-element array of float CullDistance)
0:4 Constant:
0:4 2 (const int)
@ -191,7 +191,7 @@ Shader version: 500
0:4 Constant:
0:4 0 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 4-element array of float CullDistance)
0:4 Constant:
0:4 3 (const int)
@ -318,7 +318,7 @@ Shader version: 500
0:? 'pos' ( temp 4-component vector of float)
0:? Sequence
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 4-element array of float ClipDistance)
0:4 Constant:
0:4 0 (const int)
@ -330,7 +330,7 @@ Shader version: 500
0:4 Constant:
0:4 0 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 4-element array of float ClipDistance)
0:4 Constant:
0:4 1 (const int)
@ -342,7 +342,7 @@ Shader version: 500
0:4 Constant:
0:4 1 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 4-element array of float ClipDistance)
0:4 Constant:
0:4 2 (const int)
@ -354,7 +354,7 @@ Shader version: 500
0:4 Constant:
0:4 0 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float ClipDistance)
0:? 'clip' ( out 4-element array of float ClipDistance)
0:4 Constant:
0:4 3 (const int)
@ -367,7 +367,7 @@ Shader version: 500
0:4 1 (const int)
0:? Sequence
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 4-element array of float CullDistance)
0:4 Constant:
0:4 0 (const int)
@ -379,7 +379,7 @@ Shader version: 500
0:4 Constant:
0:4 0 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 4-element array of float CullDistance)
0:4 Constant:
0:4 1 (const int)
@ -391,7 +391,7 @@ Shader version: 500
0:4 Constant:
0:4 1 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 4-element array of float CullDistance)
0:4 Constant:
0:4 2 (const int)
@ -403,7 +403,7 @@ Shader version: 500
0:4 Constant:
0:4 0 (const int)
0:4 move second child to first child ( temp float)
0:4 direct index ( temp float)
0:4 direct index ( out float CullDistance)
0:? 'cull' ( out 4-element array of float CullDistance)
0:4 Constant:
0:4 3 (const int)

View 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

View File

@ -35,7 +35,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 0 (const int)
@ -47,7 +47,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 1 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 1 (const int)
@ -59,7 +59,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 2 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 2 (const int)
@ -71,7 +71,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 3 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 3 (const int)
@ -124,7 +124,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 0 (const int)
@ -136,7 +136,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 1 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 1 (const int)
@ -148,7 +148,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 2 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 2 (const int)
@ -160,7 +160,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 3 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 3 (const int)

View 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

View File

@ -80,7 +80,7 @@ Shader version: 500
0:11 0 (const int)
0:? Sequence
0:11 move second child to first child ( temp float)
0:11 direct index ( temp float)
0:11 direct index ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 0 (const int)
@ -92,7 +92,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 1 (const int)
@ -104,7 +104,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 2 (const int)
@ -116,7 +116,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 3 (const int)
@ -217,7 +217,7 @@ Shader version: 500
0:11 0 (const int)
0:? Sequence
0:11 move second child to first child ( temp float)
0:11 direct index ( temp float)
0:11 direct index ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 0 (const int)
@ -229,7 +229,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 1 (const int)
@ -241,7 +241,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 2 (const int)
@ -253,7 +253,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 3 (const int)

View File

@ -55,7 +55,7 @@ gl_FragCoord origin is upper left
0:7 0 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 0 (const int)
@ -70,7 +70,7 @@ gl_FragCoord origin is upper left
0:7 0 (const int)
0:7 Constant:
0:7 1 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 1 (const int)
@ -85,7 +85,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 2 (const int)
@ -100,7 +100,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 1 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 3 (const int)
@ -173,7 +173,7 @@ gl_FragCoord origin is upper left
0:7 0 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 0 (const int)
@ -188,7 +188,7 @@ gl_FragCoord origin is upper left
0:7 0 (const int)
0:7 Constant:
0:7 1 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 1 (const int)
@ -203,7 +203,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 2 (const int)
@ -218,7 +218,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int)
0:7 Constant:
0:7 1 (const int)
0:7 direct index ( temp float)
0:7 direct index ( in float ClipDistance)
0:? 'v.ClipRect' ( in 4-element array of float ClipDistance)
0:7 Constant:
0:7 3 (const int)

View File

@ -92,7 +92,7 @@ Shader version: 500
0:11 0 (const int)
0:? Sequence
0:11 move second child to first child ( temp float)
0:11 direct index ( temp float)
0:11 direct index ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 0 (const int)
@ -107,7 +107,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 1 (const int)
@ -122,7 +122,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 2 (const int)
@ -137,7 +137,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 3 (const int)
@ -253,7 +253,7 @@ Shader version: 500
0:11 0 (const int)
0:? Sequence
0:11 move second child to first child ( temp float)
0:11 direct index ( temp float)
0:11 direct index ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 0 (const int)
@ -268,7 +268,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 1 (const int)
@ -283,7 +283,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 2 (const int)
@ -298,7 +298,7 @@ Shader version: 500
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 ( out float ClipDistance)
0:? '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11 Constant:
0:11 3 (const int)

View File

@ -40,7 +40,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -52,7 +52,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -64,7 +64,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -76,7 +76,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 3 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 3 (const int)
@ -89,7 +89,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 4 (const int)
@ -101,7 +101,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 5 (const int)
@ -113,7 +113,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 6 (const int)
@ -125,7 +125,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 3 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 7 (const int)
@ -183,7 +183,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -195,7 +195,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -207,7 +207,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -219,7 +219,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 3 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 3 (const int)
@ -232,7 +232,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 4 (const int)
@ -244,7 +244,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 5 (const int)
@ -256,7 +256,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 6 (const int)
@ -268,7 +268,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 3 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 7 (const int)

View File

@ -111,7 +111,7 @@ Shader version: 500
0:8 0 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -123,7 +123,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -135,7 +135,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -147,7 +147,7 @@ Shader version: 500
0:8 Constant:
0:8 2 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 3 (const int)
@ -160,7 +160,7 @@ Shader version: 500
0:8 3 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 4 (const int)
@ -172,7 +172,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 5 (const int)
@ -184,7 +184,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 6 (const int)
@ -196,7 +196,7 @@ Shader version: 500
0:8 Constant:
0:8 2 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 7 (const int)
@ -327,7 +327,7 @@ Shader version: 500
0:8 0 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -339,7 +339,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -351,7 +351,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -363,7 +363,7 @@ Shader version: 500
0:8 Constant:
0:8 2 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 3 (const int)
@ -376,7 +376,7 @@ Shader version: 500
0:8 3 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 4 (const int)
@ -388,7 +388,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 5 (const int)
@ -400,7 +400,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 6 (const int)
@ -412,7 +412,7 @@ Shader version: 500
0:8 Constant:
0:8 2 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 7 (const int)

View File

@ -46,7 +46,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -58,7 +58,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -70,7 +70,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -83,7 +83,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 4 (const int)
@ -95,7 +95,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 5 (const int)
@ -107,7 +107,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 6 (const int)
@ -119,7 +119,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 3 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 7 (const int)
@ -183,7 +183,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -195,7 +195,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -207,7 +207,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -220,7 +220,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 4 (const int)
@ -232,7 +232,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 5 (const int)
@ -244,7 +244,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 6 (const int)
@ -256,7 +256,7 @@ gl_FragCoord origin is upper left
0:8 2 (const int)
0:8 Constant:
0:8 3 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 8-element array of float ClipDistance)
0:8 Constant:
0:8 7 (const int)

View File

@ -101,7 +101,7 @@ Shader version: 500
0:8 0 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -113,7 +113,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -125,7 +125,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -138,7 +138,7 @@ Shader version: 500
0:8 2 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 4 (const int)
@ -150,7 +150,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 5 (const int)
@ -162,7 +162,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 6 (const int)
@ -174,7 +174,7 @@ Shader version: 500
0:8 Constant:
0:8 2 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 7 (const int)
@ -295,7 +295,7 @@ Shader version: 500
0:8 0 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -307,7 +307,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -319,7 +319,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -332,7 +332,7 @@ Shader version: 500
0:8 2 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 4 (const int)
@ -344,7 +344,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 5 (const int)
@ -356,7 +356,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 6 (const int)
@ -368,7 +368,7 @@ Shader version: 500
0:8 Constant:
0:8 2 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8 Constant:
0:8 7 (const int)

View File

@ -43,7 +43,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -55,7 +55,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -67,7 +67,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -77,7 +77,7 @@ gl_FragCoord origin is upper left
0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
0:8 Constant:
0:8 3 (const int)
@ -138,7 +138,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 0 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -150,7 +150,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 1 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -162,7 +162,7 @@ gl_FragCoord origin is upper left
0:8 1 (const int)
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -172,7 +172,7 @@ gl_FragCoord origin is upper left
0:? 'v' ( temp structure{ temp 4-component vector of float Position, temp 3-component vector of float clip0, temp float clip1})
0:8 Constant:
0:8 2 (const int)
0:8 direct index ( temp float)
0:8 direct index ( in float ClipDistance)
0:? 'v.clip1' ( in 4-element array of float ClipDistance)
0:8 Constant:
0:8 3 (const int)

View File

@ -68,7 +68,7 @@ Shader version: 500
0:8 0 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -80,7 +80,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -92,7 +92,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -105,7 +105,7 @@ Shader version: 500
0:8 2 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
0:8 Constant:
0:8 3 (const int)
@ -190,7 +190,7 @@ Shader version: 500
0:8 0 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
0:8 Constant:
0:8 0 (const int)
@ -202,7 +202,7 @@ Shader version: 500
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
0:8 Constant:
0:8 1 (const int)
@ -214,7 +214,7 @@ Shader version: 500
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
0:8 Constant:
0:8 2 (const int)
@ -227,7 +227,7 @@ Shader version: 500
0:8 2 (const int)
0:? Sequence
0:8 move second child to first child ( temp float)
0:8 direct index ( temp float)
0:8 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
0:8 Constant:
0:8 3 (const int)

View File

@ -29,7 +29,7 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( temp 3-component vector of float)
0:6 Constant:
0:6 0 (const int)
0:6 direct index ( temp float)
0:6 direct index ( in float ClipDistance)
0:? 'clip0' ( in 4-element array of float ClipDistance)
0:6 Constant:
0:6 0 (const int)
@ -38,7 +38,7 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( temp 3-component vector of float)
0:6 Constant:
0:6 1 (const int)
0:6 direct index ( temp float)
0:6 direct index ( in float ClipDistance)
0:? 'clip0' ( in 4-element array of float ClipDistance)
0:6 Constant:
0:6 1 (const int)
@ -47,14 +47,14 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( temp 3-component vector of float)
0:6 Constant:
0:6 2 (const int)
0:6 direct index ( temp float)
0:6 direct index ( in float ClipDistance)
0:? 'clip0' ( in 4-element array of float ClipDistance)
0:6 Constant:
0:6 2 (const int)
0:? Sequence
0:6 move second child to first child ( temp float)
0:? 'clip1' ( temp float)
0:6 direct index ( temp float)
0:6 direct index ( in float ClipDistance)
0:? 'clip0' ( in 4-element array of float ClipDistance)
0:6 Constant:
0:6 3 (const int)
@ -103,7 +103,7 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( temp 3-component vector of float)
0:6 Constant:
0:6 0 (const int)
0:6 direct index ( temp float)
0:6 direct index ( in float ClipDistance)
0:? 'clip0' ( in 4-element array of float ClipDistance)
0:6 Constant:
0:6 0 (const int)
@ -112,7 +112,7 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( temp 3-component vector of float)
0:6 Constant:
0:6 1 (const int)
0:6 direct index ( temp float)
0:6 direct index ( in float ClipDistance)
0:? 'clip0' ( in 4-element array of float ClipDistance)
0:6 Constant:
0:6 1 (const int)
@ -121,14 +121,14 @@ gl_FragCoord origin is upper left
0:? 'clip0' ( temp 3-component vector of float)
0:6 Constant:
0:6 2 (const int)
0:6 direct index ( temp float)
0:6 direct index ( in float ClipDistance)
0:? 'clip0' ( in 4-element array of float ClipDistance)
0:6 Constant:
0:6 2 (const int)
0:? Sequence
0:6 move second child to first child ( temp float)
0:? 'clip1' ( temp float)
0:6 direct index ( temp float)
0:6 direct index ( in float ClipDistance)
0:? 'clip0' ( in 4-element array of float ClipDistance)
0:6 Constant:
0:6 3 (const int)

View File

@ -57,7 +57,7 @@ Shader version: 500
0:7 0 (const int)
0:? Sequence
0:7 move second child to first child ( temp float)
0:7 direct index ( temp float)
0:7 direct index ( out float ClipDistance)
0:? 'clip0' ( out 4-element array of float ClipDistance)
0:7 Constant:
0:7 0 (const int)
@ -66,7 +66,7 @@ Shader version: 500
0:7 Constant:
0:7 0 (const int)
0:7 move second child to first child ( temp float)
0:7 direct index ( temp float)
0:7 direct index ( out float ClipDistance)
0:? 'clip0' ( out 4-element array of float ClipDistance)
0:7 Constant:
0:7 1 (const int)
@ -75,7 +75,7 @@ Shader version: 500
0:7 Constant:
0:7 1 (const int)
0:7 move second child to first child ( temp float)
0:7 direct index ( temp float)
0:7 direct index ( out float ClipDistance)
0:? 'clip0' ( out 4-element array of float ClipDistance)
0:7 Constant:
0:7 2 (const int)
@ -85,7 +85,7 @@ Shader version: 500
0:7 2 (const int)
0:? Sequence
0:7 move second child to first child ( temp float)
0:7 direct index ( temp float)
0:7 direct index ( out float ClipDistance)
0:? 'clip0' ( out 4-element array of float ClipDistance)
0:7 Constant:
0:7 3 (const int)
@ -156,7 +156,7 @@ Shader version: 500
0:7 0 (const int)
0:? Sequence
0:7 move second child to first child ( temp float)
0:7 direct index ( temp float)
0:7 direct index ( out float ClipDistance)
0:? 'clip0' ( out 4-element array of float ClipDistance)
0:7 Constant:
0:7 0 (const int)
@ -165,7 +165,7 @@ Shader version: 500
0:7 Constant:
0:7 0 (const int)
0:7 move second child to first child ( temp float)
0:7 direct index ( temp float)
0:7 direct index ( out float ClipDistance)
0:? 'clip0' ( out 4-element array of float ClipDistance)
0:7 Constant:
0:7 1 (const int)
@ -174,7 +174,7 @@ Shader version: 500
0:7 Constant:
0:7 1 (const int)
0:7 move second child to first child ( temp float)
0:7 direct index ( temp float)
0:7 direct index ( out float ClipDistance)
0:? 'clip0' ( out 4-element array of float ClipDistance)
0:7 Constant:
0:7 2 (const int)
@ -184,7 +184,7 @@ Shader version: 500
0:7 2 (const int)
0:? Sequence
0:7 move second child to first child ( temp float)
0:7 direct index ( temp float)
0:7 direct index ( out float ClipDistance)
0:? 'clip0' ( out 4-element array of float ClipDistance)
0:7 Constant:
0:7 3 (const int)

View File

@ -0,0 +1,163 @@
hlsl.preprocessor.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:9 Function Definition: @main(vf4; ( temp 4-component vector of float)
0:9 Function Parameters:
0:9 'input' ( in 4-component vector of float)
0:? Sequence
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 'tex' ( temp 4-component vector of float)
0:10 texture ( temp 4-component vector of float)
0:10 Construct combined texture-sampler ( temp sampler2D)
0:10 'test_texture' ( uniform texture2D)
0:10 'test_texture_ss' ( uniform sampler)
0:10 vector swizzle ( temp 2-component vector of float)
0:10 vector swizzle ( temp 2-component vector of float)
0:10 'input' ( in 4-component vector of float)
0:10 Sequence
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 Sequence
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:11 Branch: Return with expression
0:11 'tex' ( temp 4-component vector of float)
0:9 Function Definition: main( ( temp void)
0:9 Function Parameters:
0:? Sequence
0:9 move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
0:9 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:9 Function Call: @main(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'test_texture' ( uniform texture2D)
0:? 'test_texture_ss' ( uniform sampler)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:9 Function Definition: @main(vf4; ( temp 4-component vector of float)
0:9 Function Parameters:
0:9 'input' ( in 4-component vector of float)
0:? Sequence
0:10 Sequence
0:10 move second child to first child ( temp 4-component vector of float)
0:10 'tex' ( temp 4-component vector of float)
0:10 texture ( temp 4-component vector of float)
0:10 Construct combined texture-sampler ( temp sampler2D)
0:10 'test_texture' ( uniform texture2D)
0:10 'test_texture_ss' ( uniform sampler)
0:10 vector swizzle ( temp 2-component vector of float)
0:10 vector swizzle ( temp 2-component vector of float)
0:10 'input' ( in 4-component vector of float)
0:10 Sequence
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 Sequence
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:11 Branch: Return with expression
0:11 'tex' ( temp 4-component vector of float)
0:9 Function Definition: main( ( temp void)
0:9 Function Parameters:
0:? Sequence
0:9 move second child to first child ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
0:9 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:9 Function Call: @main(vf4; ( temp 4-component vector of float)
0:? 'input' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'test_texture' ( uniform texture2D)
0:? 'test_texture_ss' ( uniform sampler)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 40
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 33 36
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 11 "@main(vf4;"
Name 10 "input"
Name 13 "tex"
Name 16 "test_texture"
Name 20 "test_texture_ss"
Name 31 "input"
Name 33 "input"
Name 36 "@entryPointOutput"
Name 37 "param"
Decorate 16(test_texture) DescriptorSet 0
Decorate 20(test_texture_ss) DescriptorSet 0
Decorate 33(input) Location 0
Decorate 36(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr)
14: TypeImage 6(float) 2D sampled format:Unknown
15: TypePointer UniformConstant 14
16(test_texture): 15(ptr) Variable UniformConstant
18: TypeSampler
19: TypePointer UniformConstant 18
20(test_texture_ss): 19(ptr) Variable UniformConstant
22: TypeSampledImage 14
24: TypeVector 6(float) 2
32: TypePointer Input 7(fvec4)
33(input): 32(ptr) Variable Input
35: TypePointer Output 7(fvec4)
36(@entryPointOutput): 35(ptr) Variable Output
4(main): 2 Function None 3
5: Label
31(input): 8(ptr) Variable Function
37(param): 8(ptr) Variable Function
34: 7(fvec4) Load 33(input)
Store 31(input) 34
38: 7(fvec4) Load 31(input)
Store 37(param) 38
39: 7(fvec4) FunctionCall 11(@main(vf4;) 37(param)
Store 36(@entryPointOutput) 39
Return
FunctionEnd
11(@main(vf4;): 7(fvec4) Function None 9
10(input): 8(ptr) FunctionParameter
12: Label
13(tex): 8(ptr) Variable Function
17: 14 Load 16(test_texture)
21: 18 Load 20(test_texture_ss)
23: 22 SampledImage 17 21
25: 7(fvec4) Load 10(input)
26: 24(fvec2) VectorShuffle 25 25 0 1
27: 7(fvec4) ImageSampleImplicitLod 23 26
Store 13(tex) 27
28: 7(fvec4) Load 13(tex)
ReturnValue 28
FunctionEnd

View File

@ -0,0 +1,374 @@
hlsl.semantic-1.vert
Shader version: 500
0:? Sequence
0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Function Parameters:
0:16 'v' ( in 4-component vector of float)
0:? Sequence
0:18 move second child to first child ( temp 4-component vector of float)
0:18 pos: direct index for structure ( temp 4-component vector of float)
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:18 Constant:
0:18 0 (const int)
0:18 'v' ( in 4-component vector of float)
0:19 move second child to first child ( temp 2-component vector of float)
0:19 UV0: 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 UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:19 Constant:
0:19 1 (const int)
0:? Construct vec2 ( temp 2-component vector of float)
0:19 direct index ( temp float)
0:19 'v' ( in 4-component vector of float)
0:19 Constant:
0:19 0 (const int)
0:19 direct index ( temp float)
0:19 'v' ( in 4-component vector of float)
0:19 Constant:
0:19 0 (const int)
0:20 move second child to first child ( temp 2-component vector of float)
0:20 UV1: 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 UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:20 Constant:
0:20 2 (const int)
0:? Construct vec2 ( temp 2-component vector of float)
0:20 direct index ( temp float)
0:20 'v' ( in 4-component vector of float)
0:20 Constant:
0:20 1 (const int)
0:20 direct index ( temp float)
0:20 'v' ( in 4-component vector of float)
0:20 Constant:
0:20 1 (const int)
0:21 move second child to first child ( temp 2-component vector of float)
0:21 UV2: direct index for structure ( temp 2-component vector of float)
0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:21 Constant:
0:21 3 (const int)
0:? Construct vec2 ( temp 2-component vector of float)
0:21 direct index ( temp float)
0:21 'v' ( in 4-component vector of float)
0:21 Constant:
0:21 2 (const int)
0:21 direct index ( temp float)
0:21 'v' ( in 4-component vector of float)
0:21 Constant:
0:21 2 (const int)
0:22 move second child to first child ( temp 2-component vector of float)
0:22 UV3: direct index for structure ( temp 2-component vector of float)
0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:22 Constant:
0:22 4 (const int)
0:? Construct vec2 ( temp 2-component vector of float)
0:22 direct index ( temp float)
0:22 'v' ( in 4-component vector of float)
0:22 Constant:
0:22 3 (const int)
0:22 direct index ( temp float)
0:22 'v' ( in 4-component vector of float)
0:22 Constant:
0:22 3 (const int)
0:23 Branch: Return with expression
0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Function Definition: main( ( temp void)
0:16 Function Parameters:
0:? Sequence
0:16 move second child to first child ( temp 4-component vector of float)
0:? 'v' ( temp 4-component vector of float)
0:? 'v' (layout( location=0) in 4-component vector of float)
0:16 Sequence
0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:? 'v' ( temp 4-component vector of float)
0:16 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:16 pos: direct index for structure ( temp 4-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 0 (const int)
0:16 move second child to first child ( temp 2-component vector of float)
0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
0:16 UV0: direct index for structure ( temp 2-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 1 (const int)
0:16 move second child to first child ( temp 2-component vector of float)
0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
0:16 UV1: direct index for structure ( temp 2-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 2 (const int)
0:16 move second child to first child ( temp 2-component vector of float)
0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
0:16 UV2: direct index for structure ( temp 2-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 3 (const int)
0:16 move second child to first child ( temp 2-component vector of float)
0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
0:16 UV3: direct index for structure ( temp 2-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 4 (const int)
0:? Linker Objects
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
0:? 'v' (layout( location=0) in 4-component vector of float)
Linked vertex stage:
Shader version: 500
0:? Sequence
0:16 Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Function Parameters:
0:16 'v' ( in 4-component vector of float)
0:? Sequence
0:18 move second child to first child ( temp 4-component vector of float)
0:18 pos: direct index for structure ( temp 4-component vector of float)
0:18 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:18 Constant:
0:18 0 (const int)
0:18 'v' ( in 4-component vector of float)
0:19 move second child to first child ( temp 2-component vector of float)
0:19 UV0: 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 UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:19 Constant:
0:19 1 (const int)
0:? Construct vec2 ( temp 2-component vector of float)
0:19 direct index ( temp float)
0:19 'v' ( in 4-component vector of float)
0:19 Constant:
0:19 0 (const int)
0:19 direct index ( temp float)
0:19 'v' ( in 4-component vector of float)
0:19 Constant:
0:19 0 (const int)
0:20 move second child to first child ( temp 2-component vector of float)
0:20 UV1: 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 UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:20 Constant:
0:20 2 (const int)
0:? Construct vec2 ( temp 2-component vector of float)
0:20 direct index ( temp float)
0:20 'v' ( in 4-component vector of float)
0:20 Constant:
0:20 1 (const int)
0:20 direct index ( temp float)
0:20 'v' ( in 4-component vector of float)
0:20 Constant:
0:20 1 (const int)
0:21 move second child to first child ( temp 2-component vector of float)
0:21 UV2: direct index for structure ( temp 2-component vector of float)
0:21 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:21 Constant:
0:21 3 (const int)
0:? Construct vec2 ( temp 2-component vector of float)
0:21 direct index ( temp float)
0:21 'v' ( in 4-component vector of float)
0:21 Constant:
0:21 2 (const int)
0:21 direct index ( temp float)
0:21 'v' ( in 4-component vector of float)
0:21 Constant:
0:21 2 (const int)
0:22 move second child to first child ( temp 2-component vector of float)
0:22 UV3: direct index for structure ( temp 2-component vector of float)
0:22 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:22 Constant:
0:22 4 (const int)
0:? Construct vec2 ( temp 2-component vector of float)
0:22 direct index ( temp float)
0:22 'v' ( in 4-component vector of float)
0:22 Constant:
0:22 3 (const int)
0:22 direct index ( temp float)
0:22 'v' ( in 4-component vector of float)
0:22 Constant:
0:22 3 (const int)
0:23 Branch: Return with expression
0:23 's' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Function Definition: main( ( temp void)
0:16 Function Parameters:
0:? Sequence
0:16 move second child to first child ( temp 4-component vector of float)
0:? 'v' ( temp 4-component vector of float)
0:? 'v' (layout( location=0) in 4-component vector of float)
0:16 Sequence
0:16 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:? 'v' ( temp 4-component vector of float)
0:16 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:16 pos: direct index for structure ( temp 4-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 0 (const int)
0:16 move second child to first child ( temp 2-component vector of float)
0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
0:16 UV0: direct index for structure ( temp 2-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 1 (const int)
0:16 move second child to first child ( temp 2-component vector of float)
0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
0:16 UV1: direct index for structure ( temp 2-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 2 (const int)
0:16 move second child to first child ( temp 2-component vector of float)
0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
0:16 UV2: direct index for structure ( temp 2-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 3 (const int)
0:16 move second child to first child ( temp 2-component vector of float)
0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
0:16 UV3: direct index for structure ( temp 2-component vector of float)
0:16 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float UV0, temp 2-component vector of float UV1, temp 2-component vector of float UV2, temp 2-component vector of float UV3})
0:16 Constant:
0:16 4 (const int)
0:? Linker Objects
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:? '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
0:? '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
0:? '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
0:? '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
0:? 'v' (layout( location=0) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 84
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 61 68 72 75 78 81
Source HLSL 500
Name 4 "main"
Name 10 "S"
MemberName 10(S) 0 "pos"
MemberName 10(S) 1 "UV0"
MemberName 10(S) 2 "UV1"
MemberName 10(S) 3 "UV2"
MemberName 10(S) 4 "UV3"
Name 13 "@main(vf4;"
Name 12 "v"
Name 16 "s"
Name 59 "v"
Name 61 "v"
Name 63 "flattenTemp"
Name 64 "param"
Name 68 "@entryPointOutput.pos"
Name 72 "@entryPointOutput.UV0"
Name 75 "@entryPointOutput.UV1"
Name 78 "@entryPointOutput.UV2"
Name 81 "@entryPointOutput.UV3"
Decorate 61(v) Location 0
Decorate 68(@entryPointOutput.pos) Location 0
Decorate 72(@entryPointOutput.UV0) Location 1
Decorate 75(@entryPointOutput.UV1) Location 2
Decorate 78(@entryPointOutput.UV2) Location 3
Decorate 81(@entryPointOutput.UV3) Location 4
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeVector 6(float) 2
10(S): TypeStruct 7(fvec4) 9(fvec2) 9(fvec2) 9(fvec2) 9(fvec2)
11: TypeFunction 10(S) 8(ptr)
15: TypePointer Function 10(S)
17: TypeInt 32 1
18: 17(int) Constant 0
21: 17(int) Constant 1
22: TypeInt 32 0
23: 22(int) Constant 0
24: TypePointer Function 6(float)
30: TypePointer Function 9(fvec2)
32: 17(int) Constant 2
33: 22(int) Constant 1
40: 17(int) Constant 3
41: 22(int) Constant 2
48: 17(int) Constant 4
49: 22(int) Constant 3
60: TypePointer Input 7(fvec4)
61(v): 60(ptr) Variable Input
67: TypePointer Output 7(fvec4)
68(@entryPointOutput.pos): 67(ptr) Variable Output
71: TypePointer Output 9(fvec2)
72(@entryPointOutput.UV0): 71(ptr) Variable Output
75(@entryPointOutput.UV1): 71(ptr) Variable Output
78(@entryPointOutput.UV2): 71(ptr) Variable Output
81(@entryPointOutput.UV3): 71(ptr) Variable Output
4(main): 2 Function None 3
5: Label
59(v): 8(ptr) Variable Function
63(flattenTemp): 15(ptr) Variable Function
64(param): 8(ptr) Variable Function
62: 7(fvec4) Load 61(v)
Store 59(v) 62
65: 7(fvec4) Load 59(v)
Store 64(param) 65
66: 10(S) FunctionCall 13(@main(vf4;) 64(param)
Store 63(flattenTemp) 66
69: 8(ptr) AccessChain 63(flattenTemp) 18
70: 7(fvec4) Load 69
Store 68(@entryPointOutput.pos) 70
73: 30(ptr) AccessChain 63(flattenTemp) 21
74: 9(fvec2) Load 73
Store 72(@entryPointOutput.UV0) 74
76: 30(ptr) AccessChain 63(flattenTemp) 32
77: 9(fvec2) Load 76
Store 75(@entryPointOutput.UV1) 77
79: 30(ptr) AccessChain 63(flattenTemp) 40
80: 9(fvec2) Load 79
Store 78(@entryPointOutput.UV2) 80
82: 30(ptr) AccessChain 63(flattenTemp) 48
83: 9(fvec2) Load 82
Store 81(@entryPointOutput.UV3) 83
Return
FunctionEnd
13(@main(vf4;): 10(S) Function None 11
12(v): 8(ptr) FunctionParameter
14: Label
16(s): 15(ptr) Variable Function
19: 7(fvec4) Load 12(v)
20: 8(ptr) AccessChain 16(s) 18
Store 20 19
25: 24(ptr) AccessChain 12(v) 23
26: 6(float) Load 25
27: 24(ptr) AccessChain 12(v) 23
28: 6(float) Load 27
29: 9(fvec2) CompositeConstruct 26 28
31: 30(ptr) AccessChain 16(s) 21
Store 31 29
34: 24(ptr) AccessChain 12(v) 33
35: 6(float) Load 34
36: 24(ptr) AccessChain 12(v) 33
37: 6(float) Load 36
38: 9(fvec2) CompositeConstruct 35 37
39: 30(ptr) AccessChain 16(s) 32
Store 39 38
42: 24(ptr) AccessChain 12(v) 41
43: 6(float) Load 42
44: 24(ptr) AccessChain 12(v) 41
45: 6(float) Load 44
46: 9(fvec2) CompositeConstruct 43 45
47: 30(ptr) AccessChain 16(s) 40
Store 47 46
50: 24(ptr) AccessChain 12(v) 49
51: 6(float) Load 50
52: 24(ptr) AccessChain 12(v) 49
53: 6(float) Load 52
54: 9(fvec2) CompositeConstruct 51 53
55: 30(ptr) AccessChain 16(s) 48
Store 55 54
56: 10(S) Load 16(s)
ReturnValue 56
FunctionEnd

View File

@ -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

View File

@ -48,7 +48,7 @@ Shader version: 500
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
0:? Sequence
0:10 move second child to first child ( temp float)
0:10 direct index ( temp float)
0:10 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:10 Constant:
0:10 0 (const int)
@ -58,7 +58,7 @@ Shader version: 500
0:10 0 (const int)
0:? Sequence
0:10 move second child to first child ( temp float)
0:10 direct index ( temp float)
0:10 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:10 Constant:
0:10 1 (const int)
@ -68,7 +68,7 @@ Shader version: 500
0:10 1 (const int)
0:? Sequence
0:10 move second child to first child ( temp float)
0:10 direct index ( temp float)
0:10 direct index ( out float CullDistance)
0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
0:10 Constant:
0:10 0 (const int)
@ -78,7 +78,7 @@ Shader version: 500
0:10 2 (const int)
0:? Sequence
0:10 move second child to first child ( temp float)
0:10 direct index ( temp float)
0:10 direct index ( out float CullDistance)
0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
0:10 Constant:
0:10 1 (const int)
@ -155,7 +155,7 @@ Shader version: 500
0:? 'ins' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
0:? Sequence
0:10 move second child to first child ( temp float)
0:10 direct index ( temp float)
0:10 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:10 Constant:
0:10 0 (const int)
@ -165,7 +165,7 @@ Shader version: 500
0:10 0 (const int)
0:? Sequence
0:10 move second child to first child ( temp float)
0:10 direct index ( temp float)
0:10 direct index ( out float ClipDistance)
0:? '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:10 Constant:
0:10 1 (const int)
@ -175,7 +175,7 @@ Shader version: 500
0:10 1 (const int)
0:? Sequence
0:10 move second child to first child ( temp float)
0:10 direct index ( temp float)
0:10 direct index ( out float CullDistance)
0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
0:10 Constant:
0:10 0 (const int)
@ -185,7 +185,7 @@ Shader version: 500
0:10 2 (const int)
0:? Sequence
0:10 move second child to first child ( temp float)
0:10 direct index ( temp float)
0:10 direct index ( out float CullDistance)
0:? '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
0:10 Constant:
0:10 1 (const int)

View File

@ -0,0 +1,8 @@
spv.looseUniformNoLoc.vert
ERROR: spv.looseUniformNoLoc.vert:9: 'uv' : non-opaque uniform variables need a layout(location=L)
ERROR: 1 compilation errors. No code generated.
ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point
SPIR-V is not generated for failed compile or link

View File

@ -1,12 +1,12 @@
spv.noBuiltInLoc.vert
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 23
// Id's are bound by 33
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 11 18
EntryPoint Vertex 4 "main" 9 11 18 31 32
Source GLSL 450
Name 4 "main"
Name 9 "bar"
@ -17,6 +17,11 @@ spv.noBuiltInLoc.vert
MemberName 16(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 16(gl_PerVertex) 3 "gl_CullDistance"
Name 18 ""
Name 24 "uv1"
Name 26 "uv2"
Name 29 "uv3"
Name 31 "gl_VertexID"
Name 32 "gl_InstanceID"
Decorate 9(bar) Location 0
Decorate 11(foo) Location 0
MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position
@ -24,6 +29,14 @@ spv.noBuiltInLoc.vert
MemberDecorate 16(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 16(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 16(gl_PerVertex) Block
Decorate 24(uv1) Location 0
Decorate 24(uv1) DescriptorSet 0
Decorate 26(uv2) Location 1
Decorate 26(uv2) DescriptorSet 0
Decorate 29(uv3) Location 2
Decorate 29(uv3) DescriptorSet 0
Decorate 31(gl_VertexID) BuiltIn VertexId
Decorate 32(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -40,6 +53,16 @@ spv.noBuiltInLoc.vert
18: 17(ptr) Variable Output
19: TypeInt 32 1
20: 19(int) Constant 0
23: TypePointer UniformConstant 7(fvec4)
24(uv1): 23(ptr) Variable UniformConstant
25: TypePointer UniformConstant 6(float)
26(uv2): 25(ptr) Variable UniformConstant
27: TypeVector 6(float) 3
28: TypePointer UniformConstant 27(fvec3)
29(uv3): 28(ptr) Variable UniformConstant
30: TypePointer Input 19(int)
31(gl_VertexID): 30(ptr) Variable Input
32(gl_InstanceID): 30(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12: 7(fvec4) Load 11(foo)

View File

@ -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);
}

View File

@ -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;

View File

@ -4,5 +4,3 @@ float4 main(in float4 pos : SV_Position,
{
return pos + clip[0] + cull[0];
}

View 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);
}

View 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);
}

View File

@ -0,0 +1,13 @@
#define DEFINE_TEXTURE(name) Texture2D name; SamplerState name##_ss;
#define SAMPLE_TEXTURE(name, uv) name.Sample(name##_ss, (uv).xy)
#define test_texture2 test_texture
DEFINE_TEXTURE(test_texture)
float4 main(float4 input : TEXCOORD0) : SV_TARGET
{
float4 tex = SAMPLE_TEXTURE(test_texture2, input.xy);
return tex;
}

View File

@ -0,0 +1,24 @@
#define DLAYER 3
#define DMACRO1 TEXCOORD1
#define DMACRO(num) TEXCOORD##num
struct S {
float4 pos : POSITION;
float2 UV0 : TEXCOORD0;
float2 UV1 : DMACRO1;
float2 UV2 : DMACRO(2);
float2 UV3 : DMACRO(DLAYER);
};
S main(float4 v : POSITION)
{
S s;
s.pos = v;
s.UV0 = float2(v.x,v.x);
s.UV1 = float2(v.y,v.y);
s.UV2 = float2(v.z,v.z);
s.UV3 = float2(v.w,v.w);
return s;
}

View File

@ -109,8 +109,10 @@ diff -b $BASEDIR/hlsl.explicitDescriptorSet-2.frag.out $TARGETDIR/hlsl.explicitD
echo Testing SPV no location
$EXE -V -C spv.noLocation.vert > $TARGETDIR/spv.noLocation.vert.out
diff -b $BASEDIR/spv.noLocation.vert.out $TARGETDIR/spv.noLocation.vert.out || HASERROR=1
$EXE -H --aml spv.noBuiltInLoc.vert > $TARGETDIR/spv.noBuiltInLoc.vert.out
$EXE -G -H --aml spv.noBuiltInLoc.vert > $TARGETDIR/spv.noBuiltInLoc.vert.out
diff -b $BASEDIR/spv.noBuiltInLoc.vert.out $TARGETDIR/spv.noBuiltInLoc.vert.out || HASERROR=1
$EXE -G spv.looseUniformNoLoc.vert > $TARGETDIR/spv.looseUniformNoLoc.vert.out
diff -b $BASEDIR/spv.looseUniformNoLoc.vert.out $TARGETDIR/spv.looseUniformNoLoc.vert.out || HASERROR=1
#
# Testing debug information

View File

@ -0,0 +1,15 @@
#version 450 core
layout(location = 0)
in vec4 foo;
layout(location = 0)
out vec4 bar;
uniform vec4 uv;
void main()
{
bar = foo;
gl_Position = foo;
}

View File

@ -6,6 +6,10 @@ in vec4 foo;
layout(location = 0)
out vec4 bar;
uniform vec4 uv1;
uniform float uv2;
uniform vec3 uv3;
void main()
{
bar = foo;

View File

@ -63,7 +63,7 @@ std::string to_string(const T& val) {
}
#endif
#if defined(_MSC_VER) && _MSC_VER < 1700
#if defined(_MSC_VER) && _MSC_VER < 1800
inline long long int strtoll (const char* str, char** endptr, int base)
{
return _strtoi64(str, endptr, base);

View File

@ -3425,6 +3425,12 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"in int gl_DrawIDARB;"
);
}
if (version >= 450) {
stageBuiltins[EShLangVertex].append(
"out int gl_ViewportIndex;"
"out int gl_Layer;"
);
}
if (version >= 460) {
stageBuiltins[EShLangVertex].append(
"in int gl_BaseVertex;"
@ -3436,8 +3442,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
#ifdef NV_EXTENSIONS
if (version >= 450)
stageBuiltins[EShLangVertex].append(
"out int gl_ViewportIndex;"
"out int gl_Layer;"
"out int gl_ViewportMask[];" // GL_NV_viewport_array2
"out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering
"out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering
@ -3730,11 +3734,15 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
"};"
"\n");
if (version >= 450)
stageBuiltins[EShLangTessEvaluation].append(
"out int gl_ViewportIndex;"
"out int gl_Layer;"
);
#ifdef NV_EXTENSIONS
if (version >= 450)
stageBuiltins[EShLangTessEvaluation].append(
"out int gl_ViewportIndex;"
"out int gl_Layer;"
"out int gl_ViewportMask[];" // GL_NV_viewport_array2
"out vec4 gl_SecondaryPositionNV;" // GL_NV_stereo_view_rendering
"out int gl_SecondaryViewportMaskNV[];" // GL_NV_stereo_view_rendering
@ -5467,6 +5475,14 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.setVariableExtensions("gl_Layer", Num_viewportEXTs, viewportEXTs);
symbolTable.setVariableExtensions("gl_ViewportIndex", Num_viewportEXTs, viewportEXTs);
}
#else
if (language == EShLangVertex || language == EShLangTessEvaluation) {
symbolTable.setVariableExtensions("gl_Layer", 1, &E_GL_ARB_shader_viewport_layer_array);
symbolTable.setVariableExtensions("gl_ViewportIndex", 1, &E_GL_ARB_shader_viewport_layer_array);
}
#endif
#ifdef NV_EXTENSIONS
symbolTable.setVariableExtensions("gl_ViewportMask", 1, &E_GL_NV_viewport_array2);
symbolTable.setVariableExtensions("gl_SecondaryPositionNV", 1, &E_GL_NV_stereo_view_rendering);
symbolTable.setVariableExtensions("gl_SecondaryViewportMaskNV", 1, &E_GL_NV_stereo_view_rendering);

View File

@ -2493,8 +2493,8 @@ void TParseContext::transparentOpaqueCheck(const TSourceLoc& loc, const TType& t
// Vulkan doesn't allow transparent uniforms outside of blocks
if (spvVersion.vulkan > 0)
vulkanRemoved(loc, "non-opaque uniforms outside a block");
// OpenGL wants locations on these
if (spvVersion.openGl > 0 && !type.getQualifier().hasLocation())
// OpenGL wants locations on these (unless they are getting automapped)
if (spvVersion.openGl > 0 && !type.getQualifier().hasLocation() && !intermediate.getAutoMapLocations())
error(loc, "non-opaque uniform variables need a layout(location=L)", identifier.c_str(), "");
}
}

View File

@ -76,6 +76,7 @@ public:
EProfile profile, const SpvVersion& spvVersion, EShLanguage language,
TInfoSink& infoSink, bool forwardCompatible, EShMessages messages)
: TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages),
scopeMangler("::"),
symbolTable(symbolTable),
statementNestingLevel(0), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0),
postEntryPointReturn(false),
@ -143,7 +144,7 @@ public:
virtual bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*);
virtual void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*);
const char* const scopeMangler = "::";
const char* const scopeMangler;
// Basic parsing state, easily accessible to the grammar

View File

@ -253,10 +253,14 @@ struct TResolverUniformAdaptor
ent.newBinding = -1;
ent.newSet = -1;
ent.newIndex = -1;
const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live);
const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(),
ent.live);
if (isValid) {
ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live);
ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(),
ent.live);
ent.newSet = resolver.resolveSet(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live);
ent.newLocation = resolver.resolveUniformLocation(stage, ent.symbol->getName().c_str(),
ent.symbol->getType(), ent.live);
if (ent.newBinding != -1) {
if (ent.newBinding >= int(TQualifier::layoutBindingEnd)) {
@ -356,6 +360,7 @@ struct TDefaultIoResolverBase : public glslang::TIoMapResolver
std::vector<std::string> baseResourceSetBinding;
bool doAutoBindingMapping;
bool doAutoLocationMapping;
int nextUniformLocation;
typedef std::vector<int> TSlotSet;
typedef std::unordered_map<int, TSlotSet> TSlotSetMap;
TSlotSetMap slots;
@ -411,7 +416,27 @@ struct TDefaultIoResolverBase : public glslang::TIoMapResolver
return 0;
}
int resolveUniformLocation(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override
{
// kick out of not doing this
if (!doAutoLocationMapping)
return -1;
// no locations added if already present, a built-in variable, a block, or an opaque
if (type.getQualifier().hasLocation() || type.isBuiltIn() ||
type.getBasicType() == EbtBlock || type.containsOpaque())
return -1;
// no locations on blocks of built-in variables
if (type.isStruct()) {
if (type.getStruct()->size() < 1)
return -1;
if ((*type.getStruct())[0].type->isBuiltIn())
return -1;
}
return nextUniformLocation++;
}
bool validateInOut(EShLanguage /*stage*/, const char* /*name*/, const TType& /*type*/, bool /*is_live*/) override
{
return true;
@ -700,6 +725,7 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi
resolverBase->baseResourceSetBinding = intermediate.getResourceSetBinding();
resolverBase->doAutoBindingMapping = intermediate.getAutoMapBindings();
resolverBase->doAutoLocationMapping = intermediate.getAutoMapLocations();
resolverBase->nextUniformLocation = 0;
resolver = resolverBase;
}

View File

@ -208,11 +208,14 @@ class TVariable;
class TIntermediate {
public:
explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) :
implicitThisName("@this"),
language(l), source(EShSourceNone), profile(p), version(v), treeRoot(0),
numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false),
invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), inputPrimitive(ElgNone), outputPrimitive(ElgNone),
invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet),
inputPrimitive(ElgNone), outputPrimitive(ElgNone),
pixelCenterInteger(false), originUpperLeft(false),
vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), postDepthCoverage(false), depthLayout(EldNone), depthReplacing(false),
vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false),
postDepthCoverage(false), depthLayout(EldNone), depthReplacing(false),
blendEquations(0), xfbMode(false), multiStream(false),
#ifdef NV_EXTENSIONS
layoutOverrideCoverage(false),
@ -607,7 +610,7 @@ public:
void addProcessArgument(const std::string& arg) { processes.addArgument(arg); }
const std::vector<std::string>& getProcesses() const { return processes.getProcesses(); }
const char* const implicitThisName = "@this";
const char* const implicitThisName;
protected:
TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);

View File

@ -1068,6 +1068,10 @@ int TPpContext::tMacroInput::scan(TPpToken* ppToken)
pasting = true;
}
// HLSL does expand macros before concatenation
if (pasting && pp->parseContext.isReadingHLSL())
pasting = false;
// TODO: preprocessor: properly handle whitespace (or lack of it) between tokens when expanding
if (token == PpAtomIdentifier) {
int i;

View File

@ -533,9 +533,10 @@ class TIoMapper;
// Allows to customize the binding layout after linking.
// All used uniform variables will invoke at least validateBinding.
// If validateBinding returned true then the other resolveBinding
// and resolveSet are invoked to resolve the binding and descriptor
// set index respectively.
// If validateBinding returned true then the other resolveBinding,
// resolveSet, and resolveLocation are invoked to resolve the binding
// and descriptor set index respectively.
//
// Invocations happen in a particular order:
// 1) all shader inputs
// 2) all shader outputs
@ -567,6 +568,9 @@ public:
// Should return a value >= 0 if the current set should be overridden.
// Return -1 if the current set (including no set) should be kept.
virtual int resolveSet(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0;
// Should return a value >= 0 if the current location should be overridden.
// Return -1 if the current location (including no location) should be kept.
virtual int resolveUniformLocation(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0;
// Should return true if the resulting/current setup would be okay.
// Basic idea is to do aliasing checks and reject invalid semantic names.
virtual bool validateInOut(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0;

View File

@ -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"},
@ -311,11 +313,13 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.matType.bool.frag", "main"},
{"hlsl.matType.int.frag", "main"},
{"hlsl.max.frag", "PixelShaderFunction"},
{"hlsl.preprocessor.frag", "main"},
{"hlsl.precedence.frag", "PixelShaderFunction"},
{"hlsl.precedence2.frag", "PixelShaderFunction"},
{"hlsl.scalar2matrix.frag", "main"},
{"hlsl.semantic.geom", "main"},
{"hlsl.semantic.vert", "main"},
{"hlsl.semantic-1.vert", "main"},
{"hlsl.scope.frag", "PixelShaderFunction"},
{"hlsl.sin.frag", "PixelShaderFunction"},
{"hlsl.struct.frag", "PixelShaderFunction"},

View File

@ -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,41 +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) {
// array member to read from / write to:
TIntermTyped* clipCullMember = intermediate.addIndex(EOpIndexDirect, clipCullSym,
intermediate.addConstantUnion(clipCullArrayPos++, loc), loc);
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;
TIntermTyped* internalMember = internalNode;
// If implicitly arrayed, there is an outer array dimension involved
if (isImplicitlyArrayed)
clipCullMember = addIndex(clipCullMember, clipCullOuterArrayPos);
// 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);
// 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);
}
// 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);
}
}
@ -5089,7 +5150,7 @@ void HlslParseContext::expandArguments(const TSourceLoc& loc, const TFunction& f
const auto setArgList = [&](int paramNum, const TVector<TIntermTyped*>& args) {
if (args.size() == 1)
setArg(paramNum, args.front());
else {
else if (args.size() > 1) {
if (function.getParamCount() + functionParamNumberOffset == 1) {
arguments = intermediate.makeAggregate(args.front());
std::for_each(args.begin() + 1, args.end(),
@ -5100,8 +5161,8 @@ void HlslParseContext::expandArguments(const TSourceLoc& loc, const TFunction& f
auto it = aggregate->getSequence().erase(aggregate->getSequence().begin() + paramNum);
aggregate->getSequence().insert(it, args.begin(), args.end());
}
functionParamNumberOffset += (int)(args.size() - 1);
}
functionParamNumberOffset += (args.size() - 1);
};
// Process each argument's conversion

View File

@ -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