Implement cull distances for GLSL 4.5 (but not as an extension yet, just a 4.5 feature).
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27714 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
1
Test/450.comp
Normal file
1
Test/450.comp
Normal file
@@ -0,0 +1 @@
|
||||
#version 450 core
|
||||
@@ -14,4 +14,7 @@ void main()
|
||||
v3 = dFdyFine(in3);
|
||||
float f = dFdx(in1) + dFdxFine(in1) + dFdxCoarse(in1);
|
||||
v4 = fwidthCoarse(in4) + fwidthFine(in4);
|
||||
|
||||
float cull = gl_CullDistance[2];
|
||||
float consts = gl_MaxCullDistances + gl_MaxCombinedClipAndCullDistances;
|
||||
}
|
||||
|
||||
14
Test/450.geom
Normal file
14
Test/450.geom
Normal file
@@ -0,0 +1,14 @@
|
||||
#version 450 core
|
||||
|
||||
in gl_PerVertex {
|
||||
float gl_CullDistance[3];
|
||||
} gl_in[];
|
||||
|
||||
out gl_PerVertex {
|
||||
float gl_CullDistance[3];
|
||||
};
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
|
||||
}
|
||||
14
Test/450.tesc
Normal file
14
Test/450.tesc
Normal file
@@ -0,0 +1,14 @@
|
||||
#version 450 core
|
||||
|
||||
in gl_PerVertex {
|
||||
float gl_CullDistance[3];
|
||||
} gl_in[gl_MaxPatchVertices];
|
||||
|
||||
out gl_PerVertex {
|
||||
float gl_CullDistance[3];
|
||||
} gl_out[];
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_out[0].gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
|
||||
}
|
||||
14
Test/450.tese
Normal file
14
Test/450.tese
Normal file
@@ -0,0 +1,14 @@
|
||||
#version 450 core
|
||||
|
||||
in gl_PerVertex {
|
||||
float gl_CullDistance[3];
|
||||
} gl_in[gl_MaxPatchVertices];
|
||||
|
||||
out gl_PerVertex {
|
||||
float gl_CullDistance[3];
|
||||
};
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
|
||||
}
|
||||
10
Test/450.vert
Normal file
10
Test/450.vert
Normal file
@@ -0,0 +1,10 @@
|
||||
#version 450 core
|
||||
|
||||
out gl_PerVertex {
|
||||
float gl_CullDistance[3];
|
||||
};
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_CullDistance[2] = 4.5;
|
||||
}
|
||||
18
Test/baseResults/450.comp.out
Normal file
18
Test/baseResults/450.comp.out
Normal file
@@ -0,0 +1,18 @@
|
||||
450.comp
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
||||
ERROR: Linking compute stage: Missing entry point: Each stage requires one "void main()" entry point
|
||||
|
||||
Shader version: 450
|
||||
local_size = (1, 1, 1)
|
||||
0:? Sequence
|
||||
0:? Linker Objects
|
||||
|
||||
@@ -47,11 +47,24 @@ Shader version: 450
|
||||
0:16 'in4' (smooth in 4-component vector of float)
|
||||
0:16 fwidthFine (4-component vector of float)
|
||||
0:16 'in4' (smooth in 4-component vector of float)
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child (float)
|
||||
0:18 'cull' (float)
|
||||
0:18 direct index (smooth float)
|
||||
0:18 'gl_CullDistance' (smooth in implicitly-sized array of float)
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child (float)
|
||||
0:19 'consts' (float)
|
||||
0:19 Constant:
|
||||
0:19 16.000000
|
||||
0:? Linker Objects
|
||||
0:? 'in1' (smooth in float)
|
||||
0:? 'in2' (smooth in 2-component vector of float)
|
||||
0:? 'in3' (smooth in 3-component vector of float)
|
||||
0:? 'in4' (smooth in 4-component vector of float)
|
||||
0:? 'gl_CullDistance' (smooth in implicitly-sized array of float)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@@ -103,9 +116,22 @@ Shader version: 450
|
||||
0:16 'in4' (smooth in 4-component vector of float)
|
||||
0:16 fwidthFine (4-component vector of float)
|
||||
0:16 'in4' (smooth in 4-component vector of float)
|
||||
0:18 Sequence
|
||||
0:18 move second child to first child (float)
|
||||
0:18 'cull' (float)
|
||||
0:18 direct index (smooth float)
|
||||
0:18 'gl_CullDistance' (smooth in 3-element array of float)
|
||||
0:18 Constant:
|
||||
0:18 2 (const int)
|
||||
0:19 Sequence
|
||||
0:19 move second child to first child (float)
|
||||
0:19 'consts' (float)
|
||||
0:19 Constant:
|
||||
0:19 16.000000
|
||||
0:? Linker Objects
|
||||
0:? 'in1' (smooth in float)
|
||||
0:? 'in2' (smooth in 2-component vector of float)
|
||||
0:? 'in3' (smooth in 3-component vector of float)
|
||||
0:? 'in4' (smooth in 4-component vector of float)
|
||||
0:? 'gl_CullDistance' (smooth in 3-element array of float)
|
||||
|
||||
|
||||
72
Test/baseResults/450.geom.out
Normal file
72
Test/baseResults/450.geom.out
Normal file
@@ -0,0 +1,72 @@
|
||||
450.geom
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 450
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
input primitive = none
|
||||
output primitive = none
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main( (void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (float)
|
||||
0:13 direct index (layout(stream=0 ) float)
|
||||
0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out implicitly-sized array of float)
|
||||
0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out implicitly-sized array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 3 (const uint)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (in implicitly-sized array of float)
|
||||
0:13 direct index (block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:13 'gl_in' (in implicitly-sized array of block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_in' (in implicitly-sized array of block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out implicitly-sized array of float gl_CullDistance})
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
|
||||
ERROR: Linking geometry stage: At least one shader must specify an input layout primitive
|
||||
ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
|
||||
ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
|
||||
|
||||
Shader version: 450
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
input primitive = none
|
||||
output primitive = none
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main( (void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (float)
|
||||
0:13 direct index (layout(stream=0 ) float)
|
||||
0:13 gl_CullDistance: direct index for structure (layout(stream=0 ) out 3-element array of float)
|
||||
0:13 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 3 (const uint)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (in 1-element array of float)
|
||||
0:13 direct index (block{in 1-element array of float gl_CullDistance})
|
||||
0:13 'gl_in' (in 2-element array of block{in 1-element array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_in' (in 2-element array of block{in 1-element array of float gl_CullDistance})
|
||||
0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) out 3-element array of float gl_CullDistance})
|
||||
|
||||
70
Test/baseResults/450.tesc.out
Normal file
70
Test/baseResults/450.tesc.out
Normal file
@@ -0,0 +1,70 @@
|
||||
450.tesc
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 450
|
||||
vertices = 0
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main( (void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (float)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (out implicitly-sized array of float)
|
||||
0:13 direct index (block{out implicitly-sized array of float gl_CullDistance})
|
||||
0:13 'gl_out' (out implicitly-sized array of block{out implicitly-sized array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (in implicitly-sized array of float)
|
||||
0:13 direct index (block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:13 'gl_in' (in 32-element array of block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_in' (in 32-element array of block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:? 'gl_out' (out implicitly-sized array of block{out implicitly-sized array of float gl_CullDistance})
|
||||
|
||||
|
||||
Linked tessellation control stage:
|
||||
|
||||
ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
|
||||
|
||||
Shader version: 450
|
||||
vertices = 0
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main( (void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (float)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (out 1-element array of float)
|
||||
0:13 direct index (block{out 1-element array of float gl_CullDistance})
|
||||
0:13 'gl_out' (out 1-element array of block{out 1-element array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (in 1-element array of float)
|
||||
0:13 direct index (block{in 1-element array of float gl_CullDistance})
|
||||
0:13 'gl_in' (in 32-element array of block{in 1-element array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_in' (in 32-element array of block{in 1-element array of float gl_CullDistance})
|
||||
0:? 'gl_out' (out 1-element array of block{out 1-element array of float gl_CullDistance})
|
||||
|
||||
68
Test/baseResults/450.tese.out
Normal file
68
Test/baseResults/450.tese.out
Normal file
@@ -0,0 +1,68 @@
|
||||
450.tese
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 450
|
||||
input primitive = none
|
||||
vertex spacing = none
|
||||
triangle order = none
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main( (void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (float)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (out implicitly-sized array of float)
|
||||
0:13 'anon@0' (out block{out implicitly-sized array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 3 (const uint)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (in implicitly-sized array of float)
|
||||
0:13 direct index (block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:13 'gl_in' (in 32-element array of block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_in' (in 32-element array of block{in implicitly-sized array of float gl_CullDistance})
|
||||
0:? 'anon@0' (out block{out implicitly-sized array of float gl_CullDistance})
|
||||
|
||||
|
||||
Linked tessellation evaluation stage:
|
||||
|
||||
ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive
|
||||
|
||||
Shader version: 450
|
||||
input primitive = none
|
||||
vertex spacing = equal_spacing
|
||||
triangle order = ccw
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main( (void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 move second child to first child (float)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (out 3-element array of float)
|
||||
0:13 'anon@0' (out block{out 3-element array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 3 (const uint)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:13 direct index (float)
|
||||
0:13 gl_CullDistance: direct index for structure (in 1-element array of float)
|
||||
0:13 direct index (block{in 1-element array of float gl_CullDistance})
|
||||
0:13 'gl_in' (in 32-element array of block{in 1-element array of float gl_CullDistance})
|
||||
0:13 Constant:
|
||||
0:13 1 (const int)
|
||||
0:13 Constant:
|
||||
0:13 0 (const int)
|
||||
0:13 Constant:
|
||||
0:13 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_in' (in 32-element array of block{in 1-element array of float gl_CullDistance})
|
||||
0:? 'anon@0' (out block{out 3-element array of float gl_CullDistance})
|
||||
|
||||
47
Test/baseResults/450.vert.out
Normal file
47
Test/baseResults/450.vert.out
Normal file
@@ -0,0 +1,47 @@
|
||||
450.vert
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:7 Function Definition: main( (void)
|
||||
0:7 Function Parameters:
|
||||
0:9 Sequence
|
||||
0:9 move second child to first child (float)
|
||||
0:9 direct index (float)
|
||||
0:9 gl_CullDistance: direct index for structure (out implicitly-sized array of float)
|
||||
0:9 'anon@0' (out block{out implicitly-sized array of float gl_CullDistance})
|
||||
0:9 Constant:
|
||||
0:9 10 (const uint)
|
||||
0:9 Constant:
|
||||
0:9 2 (const int)
|
||||
0:9 Constant:
|
||||
0:9 4.500000
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (out block{out implicitly-sized array of float gl_CullDistance})
|
||||
0:? 'gl_VertexID' (gl_VertexId int)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int)
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:7 Function Definition: main( (void)
|
||||
0:7 Function Parameters:
|
||||
0:9 Sequence
|
||||
0:9 move second child to first child (float)
|
||||
0:9 direct index (float)
|
||||
0:9 gl_CullDistance: direct index for structure (out 3-element array of float)
|
||||
0:9 'anon@0' (out block{out 3-element array of float gl_CullDistance})
|
||||
0:9 Constant:
|
||||
0:9 10 (const uint)
|
||||
0:9 Constant:
|
||||
0:9 2 (const int)
|
||||
0:9 Constant:
|
||||
0:9 4.500000
|
||||
0:? Linker Objects
|
||||
0:? 'anon@0' (out block{out 3-element array of float gl_CullDistance})
|
||||
0:? 'gl_VertexID' (gl_VertexId int)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int)
|
||||
|
||||
@@ -78,6 +78,8 @@ MaxCombinedAtomicCounterBuffers 1
|
||||
MaxAtomicCounterBufferSize 16384
|
||||
MaxTransformFeedbackBuffers 4
|
||||
MaxTransformFeedbackInterleavedComponents 64
|
||||
MaxCullDistances 8
|
||||
MaxCombinedClipAndCullDistances 8
|
||||
nonInductiveForLoops 1
|
||||
whileLoops 1
|
||||
doWhileLoops 1
|
||||
|
||||
@@ -71,7 +71,12 @@ numeral.frag
|
||||
430.comp
|
||||
440.vert
|
||||
440.frag
|
||||
450.vert
|
||||
450.geom
|
||||
450.tesc
|
||||
450.tese
|
||||
450.frag
|
||||
450.comp
|
||||
dce.frag
|
||||
atomic_uint.frag
|
||||
../../LunarGLASS/test/aggOps.frag
|
||||
|
||||
Reference in New Issue
Block a user