Finish implementing compute shaders, within #version 430, partly based on a submission.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27674 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich
2014-08-11 02:32:30 +00:00
parent ddea678e3e
commit 79cddfcb56
17 changed files with 239 additions and 43 deletions

View File

@@ -1,12 +1,38 @@
#version 430 core
layout(local_size_x = 2) in;
layout(local_size_x = 16) in; // ERROR, changing
layout(local_size_z = 4096) in; // ERROR, too large
layout(local_size_x = 2) in;
const int total = gl_MaxComputeWorkGroupCount.y
+ gl_MaxComputeUniformComponents
+ gl_MaxComputeTextureImageUnits
+ gl_MaxComputeImageUniforms
+ gl_MaxComputeAtomicCounters
+ gl_MaxComputeAtomicCounterBuffers;
void main()
{
memoryBarrierAtomicCounter();
memoryBarrierBuffer();
memoryBarrierShared();
memoryBarrierImage();
groupMemoryBarrier();
barrier();
memoryBarrier();
memoryBarrierAtomicCounter();
memoryBarrierBuffer();
memoryBarrierShared();
memoryBarrierImage();
groupMemoryBarrier();
}
layout(location = 2) in vec3 v3;
layout(location = 2) in vec3 v3; // ERROR
in float f; // ERROR
out float fo; // ERROR
shared vec4 s;
layout(location = 2) shared vec4 sl; // ERROR
shared float fs = 4.2; // ERROR
layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR
int arrX[gl_WorkGroupSize.x];
int arrY[gl_WorkGroupSize.y];
int arrZ[gl_WorkGroupSize.z];

View File

@@ -142,3 +142,16 @@ out bblck5 {
layout(xfb_offset=0) vec4 bbv1;
layout(xfb_stride=80, xfb_buffer=1, xfb_offset=64) vec4 bbv2;
} bbinst5;
shared vec4 sharedv;
void fooBarrier()
{
barrier(); // ERROR
memoryBarrier();
memoryBarrierAtomicCounter();
memoryBarrierBuffer();
memoryBarrierShared(); // ERROR
memoryBarrierImage();
groupMemoryBarrier(); // ERROR
}

View File

@@ -15,10 +15,9 @@ ERROR: 0:38: 'output block' : not supported with this profile: es
ERROR: 0:42: 'location qualifier on output' : not supported in this stage: vertex
ERROR: 0:50: 'shared' : not supported with this profile: es
ERROR: 0:50: 'shared' : not supported in this stage: vertex
ERROR: 0:50: '' : memory qualifiers can only be used on image types
ERROR: 0:54: 'layout' : cannot specify packing on a variable declaration
ERROR: 0:57: 'location' : overlapping use of location 40
ERROR: 19 compilation errors. No code generated.
ERROR: 18 compilation errors. No code generated.
Shader version: 300

View File

@@ -1,36 +1,81 @@
430.comp
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:12: 'location qualifier on input' : not supported in this stage: compute
ERROR: 1 compilation errors. No code generated.
ERROR: 0:4: 'local_size' : cannot change previously set size
ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
ERROR: 0:26: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:26: 'location qualifier on input' : not supported in this stage: compute
ERROR: 0:27: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:28: 'out' : global storage output qualifier cannot be used in a compute shader
ERROR: 0:31: 'shared' : cannot apply layout qualifiers to a shared variable
ERROR: 0:31: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:32: 'shared' : cannot initialize this type of qualifier
ERROR: 0:34: 'local_size' : can only apply to 'in'
ERROR: 0:34: 'local_size' : can only apply to 'in'
ERROR: 0:34: 'local_size' : can only apply to 'in'
ERROR: 12 compilation errors. No code generated.
Shader version: 430
local_size = (2, 1, 4096)
ERROR: node is still EOpNull!
0:3 Function Definition: main( (void)
0:3 Function Parameters:
0:5 Sequence
0:5 MemoryBarrierAtomicCounter (void)
0:6 MemoryBarrierBuffer (void)
0:7 MemoryBarrierShared (void)
0:8 MemoryBarrierImage (void)
0:9 GroupMemoryBarrier (void)
0:15 Function Definition: main( (void)
0:15 Function Parameters:
0:17 Sequence
0:17 Barrier (void)
0:18 MemoryBarrier (void)
0:19 MemoryBarrierAtomicCounter (void)
0:20 MemoryBarrierBuffer (void)
0:21 MemoryBarrierShared (void)
0:22 MemoryBarrierImage (void)
0:23 GroupMemoryBarrier (void)
0:? Linker Objects
0:? 'gl_WorkGroupSize' (const 3-component vector of uint)
0:? 2 (const uint)
0:? 1 (const uint)
0:? 4096 (const uint)
0:? 'total' (const int)
0:? 66592 (const int)
0:? 'v3' (layout(location=2 ) in 3-component vector of float)
0:? 'f' (in float)
0:? 'fo' (out float)
0:? 's' (shared 4-component vector of float)
0:? 'sl' (layout(location=2 ) shared 4-component vector of float)
0:? 'fs' (shared float)
0:? 'arrX' (2-element array of int)
0:? 'arrY' (1-element array of int)
0:? 'arrZ' (4096-element array of int)
Linked compute stage:
Shader version: 430
local_size = (2, 1, 4096)
ERROR: node is still EOpNull!
0:3 Function Definition: main( (void)
0:3 Function Parameters:
0:5 Sequence
0:5 MemoryBarrierAtomicCounter (void)
0:6 MemoryBarrierBuffer (void)
0:7 MemoryBarrierShared (void)
0:8 MemoryBarrierImage (void)
0:9 GroupMemoryBarrier (void)
0:15 Function Definition: main( (void)
0:15 Function Parameters:
0:17 Sequence
0:17 Barrier (void)
0:18 MemoryBarrier (void)
0:19 MemoryBarrierAtomicCounter (void)
0:20 MemoryBarrierBuffer (void)
0:21 MemoryBarrierShared (void)
0:22 MemoryBarrierImage (void)
0:23 GroupMemoryBarrier (void)
0:? Linker Objects
0:? 'gl_WorkGroupSize' (const 3-component vector of uint)
0:? 2 (const uint)
0:? 1 (const uint)
0:? 4096 (const uint)
0:? 'total' (const int)
0:? 66592 (const int)
0:? 'v3' (layout(location=2 ) in 3-component vector of float)
0:? 'f' (in float)
0:? 'fo' (out float)
0:? 's' (shared 4-component vector of float)
0:? 'sl' (layout(location=2 ) shared 4-component vector of float)
0:? 'fs' (shared float)
0:? 'arrX' (2-element array of int)
0:? 'arrY' (1-element array of int)
0:? 'arrZ' (4096-element array of int)

View File

@@ -44,7 +44,11 @@ ERROR: 0:92: 'transform feedback qualifier' : not supported for this version or
ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions
ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions
ERROR: 0:93: 'transform feedback qualifier' : not supported for this version or the enabled extensions
ERROR: 44 compilation errors. No code generated.
ERROR: 0:146: 'shared' : not supported in this stage: vertex
ERROR: 0:150: 'barrier' : no matching overloaded function found
ERROR: 0:154: 'memoryBarrierShared' : no matching overloaded function found
ERROR: 0:156: 'groupMemoryBarrier' : no matching overloaded function found
ERROR: 48 compilation errors. No code generated.
Shader version: 430
@@ -70,6 +74,19 @@ ERROR: node is still EOpNull!
0:31 'v3' (volatile in 3-component vector of float)
0:31 'v2' (in 2-component vector of float)
0:31 'cv3' (in 3-component vector of float)
0:148 Function Definition: fooBarrier( (void)
0:148 Function Parameters:
0:150 Sequence
0:150 Constant:
0:150 0.000000
0:151 MemoryBarrier (void)
0:152 MemoryBarrierAtomicCounter (void)
0:153 MemoryBarrierBuffer (void)
0:154 Constant:
0:154 0.000000
0:155 MemoryBarrierImage (void)
0:156 Constant:
0:156 0.000000
0:? Linker Objects
0:? 'v4' (layout(location=3 ) 4-component vector of float)
0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float)
@@ -109,6 +126,7 @@ ERROR: node is still EOpNull!
0:? 'bh' (layout(xfb_buffer=1 xfb_offset=32 xfb_stride=80 ) smooth out 4-component vector of float)
0:? 'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=1 xfb_offset=16 ) out 4-component vector of float bbv1})
0:? 'bbinst5' (out block{layout(xfb_buffer=1 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=1 xfb_offset=64 xfb_stride=80 ) out 4-component vector of float bbv2})
0:? 'sharedv' (shared 4-component vector of float)
0:? 'gl_VertexID' (gl_VertexId int)
0:? 'gl_InstanceID' (gl_InstanceId int)
@@ -142,6 +160,19 @@ ERROR: node is still EOpNull!
0:31 'v3' (volatile in 3-component vector of float)
0:31 'v2' (in 2-component vector of float)
0:31 'cv3' (in 3-component vector of float)
0:148 Function Definition: fooBarrier( (void)
0:148 Function Parameters:
0:150 Sequence
0:150 Constant:
0:150 0.000000
0:151 MemoryBarrier (void)
0:152 MemoryBarrierAtomicCounter (void)
0:153 MemoryBarrierBuffer (void)
0:154 Constant:
0:154 0.000000
0:155 MemoryBarrierImage (void)
0:156 Constant:
0:156 0.000000
0:? Linker Objects
0:? 'v4' (layout(location=3 ) 4-component vector of float)
0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float)
@@ -181,6 +212,7 @@ ERROR: node is still EOpNull!
0:? 'bh' (layout(xfb_buffer=1 xfb_offset=32 xfb_stride=80 ) smooth out 4-component vector of float)
0:? 'bbinst4' (layout(xfb_stride=80 ) out block{layout(xfb_buffer=1 xfb_offset=16 ) out 4-component vector of float bbv1})
0:? 'bbinst5' (out block{layout(xfb_buffer=1 xfb_offset=0 ) out 4-component vector of float bbv1, layout(xfb_buffer=1 xfb_offset=64 xfb_stride=80 ) out 4-component vector of float bbv2})
0:? 'sharedv' (shared 4-component vector of float)
0:? 'gl_VertexID' (gl_VertexId int)
0:? 'gl_InstanceID' (gl_InstanceId int)

View File

@@ -40,7 +40,6 @@ ERROR: 0:122: '' : memory qualifiers can only be used on image types
ERROR: 0:128: '' : memory qualifiers can only be used on image types
ERROR: 0:129: '' : memory qualifiers can only be used on image types
ERROR: 0:132: 'shared' : not supported in this stage: vertex
ERROR: 0:132: '' : memory qualifiers can only be used on image types
ERROR: 0:134: '' : function does not return a value: funcA
ERROR: 0:136: '' : function does not return a value: funcB
ERROR: 0:153: '' : function does not return a value: func3
@@ -48,7 +47,7 @@ ERROR: 0:170: 'coherent' : argument cannot drop memory qualifier when passed to
ERROR: 0:192: 'constructor' : constructing from a non-dereferenced array
ERROR: 0:193: 'constructor' : constructing from a non-dereferenced array
ERROR: 0:194: 'constructor' : constructing from a non-dereferenced array
ERROR: 46 compilation errors. No code generated.
ERROR: 45 compilation errors. No code generated.
Shader version: 430