summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
authorPaul Berry <[email protected]>2014-01-06 13:31:58 -0800
committerPaul Berry <[email protected]>2014-02-05 09:01:54 -0800
commit347dde82e65663562d6d2930bf861ec8c8079362 (patch)
tree5d01ef522b21bf323892375a5d3cd406efcc1b38 /src/mesa/main
parent47d480e3e4850ef8934775570444feea503295d7 (diff)
mesa/cs: Implement MAX_COMPUTE_WORK_GROUP_SIZE constant.
v2: Document that the 3-element array MaxComputeWorkGroupSize is indexed by dimension. Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/context.c5
-rw-r--r--src/mesa/main/get.c8
-rw-r--r--src/mesa/main/mtypes.h3
3 files changed, 16 insertions, 0 deletions
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 69835a59eaf..abebd82874a 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -700,6 +700,11 @@ _mesa_init_constants(struct gl_context *ctx)
/* GL_ARB_vertex_attrib_binding */
ctx->Const.MaxVertexAttribRelativeOffset = 2047;
ctx->Const.MaxVertexAttribBindings = MAX_VERTEX_GENERIC_ATTRIBS;
+
+ /* GL_ARB_compute_shader */
+ 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 f22acff0b36..acd4d8c290b 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1927,6 +1927,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_SIZE:
+ 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.MaxComputeWorkGroupSize[index];
+ return TYPE_INT;
}
invalid_enum:
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 6af4db65c2e..08c5505f8c1 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -3378,6 +3378,9 @@ struct gl_constants
GLuint MaxCombinedImageUnitsAndFragmentOutputs;
GLuint MaxImageSamples;
GLuint MaxCombinedImageUniforms;
+
+ /** GL_ARB_compute_shader */
+ GLuint MaxComputeWorkGroupSize[3]; /* Array of x, y, z dimensions */
};