Mesa (master): main/cs: Implement query for COMPUTE_WORK_GROUP_SIZE.

Paul Berry stereotype441 at kemper.freedesktop.org
Wed Feb 5 17:26:00 UTC 2014


Module: Mesa
Branch: master
Commit: f5c5438e1fb9b5b1e83c7081da518d9943fc82e8
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f5c5438e1fb9b5b1e83c7081da518d9943fc82e8

Author: Paul Berry <stereotype441 at gmail.com>
Date:   Thu Jan  9 04:03:30 2014 -0800

main/cs: Implement query for COMPUTE_WORK_GROUP_SIZE.

v2: Improve error message.

Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

---

 src/mesa/main/shaderapi.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 571e13c..65b6b16 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -663,6 +663,24 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname, GLint *param
 
       *params = shProg->NumAtomicBuffers;
       return;
+   case GL_COMPUTE_WORK_GROUP_SIZE: {
+      int i;
+      if (!_mesa_is_desktop_gl(ctx) || !ctx->Extensions.ARB_compute_shader)
+         break;
+      if (!shProg->LinkStatus) {
+         _mesa_error(ctx, GL_INVALID_OPERATION, "glGetProgramiv(program not "
+                     "linked)");
+         return;
+      }
+      if (shProg->_LinkedShaders[MESA_SHADER_COMPUTE] == NULL) {
+         _mesa_error(ctx, GL_INVALID_OPERATION, "glGetProgramiv(no compute "
+                     "shaders)");
+         return;
+      }
+      for (i = 0; i < 3; i++)
+         params[i] = shProg->Comp.LocalSize[i];
+      return;
+   }
    default:
       break;
    }




More information about the mesa-commit mailing list