layout(local_size_x = 16) in; // ERROR, changing\r
layout(local_size_z = 4096) in; // ERROR, too large\r
layout(local_size_x = 2) in;\r
-\r
+layout(local_size_y = 0) in; // ERROR, 0 not allowed\r
const int total = gl_MaxComputeWorkGroupCount.y \r
+ gl_MaxComputeUniformComponents\r
+ gl_MaxComputeTextureImageUnits\r
#version 450 core\r
+layout(local_size_x = 0) in; // ERROR, 0 not allowed
\ No newline at end of file
310.comp
ERROR: 0:4: 'local_size' : cannot change previously set size
ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
+ERROR: 0:7: 'local_size_y' : must be at least 1
ERROR: 0:23: '' : array size required
ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute
ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group
ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier
ERROR: 0:255: 'gl_ViewIndex' : undeclared identifier
-ERROR: 82 compilation errors. No code generated.
+ERROR: 83 compilation errors. No code generated.
Shader version: 310
450.comp
+ERROR: 0:2: 'local_size_x' : must be at least 1
+ERROR: 1 compilation errors. No code generated.
+
+
Shader version: 450
local_size = (1, 1, 1)
-0:? Sequence
+ERROR: node is still EOpNull!
0:? Linker Objects
Shader version: 450
local_size = (1, 1, 1)
-0:? Sequence
+ERROR: node is still EOpNull!
0:? Linker Objects
if (id.compare(0, 11, "local_size_") == 0) {
profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize");
profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize");
+ if (id.size() == 12 && value == 0) {
+ error(loc, "must be at least 1", id.c_str(), "");
+ return;
+ }
if (id == "local_size_x") {
publicType.shaderQualifiers.localSize[0] = value;
return;