зеркало из https://github.com/stride3d/xkslang.git
GLSL: Fix Khronos private Bugzilla 15973: local sizes can't be 0.
This commit is contained in:
Родитель
2eb135506a
Коммит
14d65beb06
|
@ -4,7 +4,7 @@ layout(local_size_x = 2) in;
|
||||||
layout(local_size_x = 16) in; // ERROR, changing
|
layout(local_size_x = 16) in; // ERROR, changing
|
||||||
layout(local_size_z = 4096) in; // ERROR, too large
|
layout(local_size_z = 4096) in; // ERROR, too large
|
||||||
layout(local_size_x = 2) in;
|
layout(local_size_x = 2) in;
|
||||||
|
layout(local_size_y = 0) in; // ERROR, 0 not allowed
|
||||||
const int total = gl_MaxComputeWorkGroupCount.y
|
const int total = gl_MaxComputeWorkGroupCount.y
|
||||||
+ gl_MaxComputeUniformComponents
|
+ gl_MaxComputeUniformComponents
|
||||||
+ gl_MaxComputeTextureImageUnits
|
+ gl_MaxComputeTextureImageUnits
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
#version 450 core
|
#version 450 core
|
||||||
|
layout(local_size_x = 0) in; // ERROR, 0 not allowed
|
|
@ -1,6 +1,7 @@
|
||||||
310.comp
|
310.comp
|
||||||
ERROR: 0:4: 'local_size' : cannot change previously set size
|
ERROR: 0:4: 'local_size' : cannot change previously set size
|
||||||
ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
|
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:23: '' : array size required
|
||||||
ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader
|
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:39: 'location qualifier on input' : not supported in this stage: compute
|
||||||
|
@ -83,7 +84,7 @@ WARNING: 0:238: '#define' : names containing consecutive underscores are reserve
|
||||||
ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group
|
ERROR: 0:244: 'gl_DeviceIndex' : required extension not requested: GL_EXT_device_group
|
||||||
ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier
|
ERROR: 0:245: 'gl_ViewIndex' : undeclared identifier
|
||||||
ERROR: 0:255: '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
|
Shader version: 310
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
450.comp
|
450.comp
|
||||||
|
ERROR: 0:2: 'local_size_x' : must be at least 1
|
||||||
|
ERROR: 1 compilation errors. No code generated.
|
||||||
|
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
local_size = (1, 1, 1)
|
local_size = (1, 1, 1)
|
||||||
0:? Sequence
|
ERROR: node is still EOpNull!
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,6 +15,6 @@ ERROR: Linking compute stage: Missing entry point: Each stage requires one entry
|
||||||
|
|
||||||
Shader version: 450
|
Shader version: 450
|
||||||
local_size = (1, 1, 1)
|
local_size = (1, 1, 1)
|
||||||
0:? Sequence
|
ERROR: node is still EOpNull!
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
|
|
||||||
|
|
|
@ -4260,6 +4260,10 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
|
||||||
if (id.compare(0, 11, "local_size_") == 0) {
|
if (id.compare(0, 11, "local_size_") == 0) {
|
||||||
profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize");
|
profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize");
|
||||||
profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "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") {
|
if (id == "local_size_x") {
|
||||||
publicType.shaderQualifiers.localSize[0] = value;
|
publicType.shaderQualifiers.localSize[0] = value;
|
||||||
return;
|
return;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче