diff options
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/context.c | 3 | ||||
-rw-r--r-- | src/mesa/main/get.c | 8 | ||||
-rw-r--r-- | src/mesa/main/mtypes.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 4cf86bc5150..f2f9bb3ed5c 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -702,6 +702,9 @@ _mesa_init_constants(struct gl_context *ctx) ctx->Const.MaxVertexAttribBindings = MAX_VERTEX_GENERIC_ATTRIBS; /* GL_ARB_compute_shader */ + ctx->Const.MaxComputeWorkGroupCount[0] = 65535; + ctx->Const.MaxComputeWorkGroupCount[1] = 65535; + ctx->Const.MaxComputeWorkGroupCount[2] = 65535; ctx->Const.MaxComputeWorkGroupSize[0] = 1024; ctx->Const.MaxComputeWorkGroupSize[1] = 1024; ctx->Const.MaxComputeWorkGroupSize[2] = 64; diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index 2833a15a433..32aa7364a91 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -1929,6 +1929,14 @@ find_value_indexed(const char *func, GLenum pname, GLuint index, union value *v) v->value_int = ctx->ImageUnits[index].Format; return TYPE_INT; + case GL_MAX_COMPUTE_WORK_GROUP_COUNT: + if (!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_compute_shader) + goto invalid_enum; + if (index >= 3) + goto invalid_value; + v->value_int = ctx->Const.MaxComputeWorkGroupCount[index]; + return TYPE_INT; + case GL_MAX_COMPUTE_WORK_GROUP_SIZE: if (!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_compute_shader) goto invalid_enum; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 40e2e68f2d7..bd22d5003fd 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -3380,6 +3380,7 @@ struct gl_constants GLuint MaxCombinedImageUniforms; /** GL_ARB_compute_shader */ + GLuint MaxComputeWorkGroupCount[3]; /* Array of x, y, z dimensions */ GLuint MaxComputeWorkGroupSize[3]; /* Array of x, y, z dimensions */ GLuint MaxComputeWorkGroupInvocations; }; |