<div dir="ltr">On 1 February 2014 21:25, Jordan Justen <span dir="ltr"><<a href="mailto:jljusten@gmail.com" target="_blank">jljusten@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div><div>On Thu, Jan 9, 2014 at 6:19 PM, Paul Berry <<a href="mailto:stereotype441@gmail.com" target="_blank">stereotype441@gmail.com</a>> wrote:<br>
> ---<br>
>  src/glsl/main.cpp                   | 1 +<br>
>  src/glsl/standalone_scaffolding.cpp | 1 +<br>
>  src/mesa/main/context.c             | 1 +<br>
>  src/mesa/main/get.c                 | 1 +<br>
>  src/mesa/main/get_hash_params.py    | 3 +++<br>
>  src/mesa/main/mtypes.h              | 1 +<br>
>  6 files changed, 8 insertions(+)<br>
><br>
> diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp<br>
> index bb2054f..94bc1cc 100644<br>
> --- a/src/glsl/main.cpp<br>
> +++ b/src/glsl/main.cpp<br>
> @@ -53,6 +53,7 @@ initialize_context(struct gl_context *ctx, gl_api api)<br>
>     ctx->Const.MaxComputeWorkGroupSize[0] = 1024;<br>
>     ctx->Const.MaxComputeWorkGroupSize[1] = 1024;<br>
>     ctx->Const.MaxComputeWorkGroupSize[2] = 64;<br>
> +   ctx->Const.MaxComputeWorkGroupInvocations = 1024;<br>
>     ctx->Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits = 16;<br>
>     ctx->Const.Program[MESA_SHADER_COMPUTE].MaxUniformComponents = 1024;<br>
>     ctx->Const.Program[MESA_SHADER_COMPUTE].MaxInputComponents = 0; /* not used */<br>
> diff --git a/src/glsl/standalone_scaffolding.cpp b/src/glsl/standalone_scaffolding.cpp<br>
> index e8eb529..0c83ea3 100644<br>
> --- a/src/glsl/standalone_scaffolding.cpp<br>
> +++ b/src/glsl/standalone_scaffolding.cpp<br>
> @@ -143,6 +143,7 @@ void initialize_context_to_defaults(struct gl_context *ctx, gl_api api)<br>
>     ctx->Const.MaxComputeWorkGroupSize[0] = 1024;<br>
>     ctx->Const.MaxComputeWorkGroupSize[1] = 1024;<br>
>     ctx->Const.MaxComputeWorkGroupSize[2] = 64;<br>
> +   ctx->Const.MaxComputeWorkGroupInvocations = 1024;<br>
>     ctx->Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits = 16;<br>
>     ctx->Const.Program[MESA_SHADER_COMPUTE].MaxUniformComponents = 1024;<br>
>     ctx->Const.Program[MESA_SHADER_COMPUTE].MaxInputComponents = 0; /* not used */<br>
> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c<br>
> index ebe27b4..942f247 100644<br>
> --- a/src/mesa/main/context.c<br>
> +++ b/src/mesa/main/context.c<br>
> @@ -695,6 +695,7 @@ _mesa_init_constants(struct gl_context *ctx)<br>
>     ctx->Const.MaxComputeWorkGroupSize[0] = 1024;<br>
>     ctx->Const.MaxComputeWorkGroupSize[1] = 1024;<br>
>     ctx->Const.MaxComputeWorkGroupSize[2] = 64;<br>
> +   ctx->Const.MaxComputeWorkGroupInvocations = 1024;<br>
>  }<br>
><br>
><br>
> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c<br>
> index 6b914f4..bcbb5d5 100644<br>
> --- a/src/mesa/main/get.c<br>
> +++ b/src/mesa/main/get.c<br>
> @@ -382,6 +382,7 @@ EXTRA_EXT(ARB_texture_multisample);<br>
>  EXTRA_EXT(ARB_texture_gather);<br>
>  EXTRA_EXT(ARB_shader_atomic_counters);<br>
>  EXTRA_EXT(ARB_draw_indirect);<br>
> +EXTRA_EXT(ARB_compute_shader);<br>
><br>
>  static const int<br>
>  extra_ARB_color_buffer_float_or_glcore[] = {<br>
> diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py<br>
> index 7f025a9..c18e848 100644<br>
> --- a/src/mesa/main/get_hash_params.py<br>
> +++ b/src/mesa/main/get_hash_params.py<br>
> @@ -742,6 +742,9 @@ descriptor=[<br>
>  # GL_ARB_vertex_attrib_binding<br>
>    [ "MAX_VERTEX_ATTRIB_RELATIVE_OFFSET", "CONTEXT_ENUM(Const.MaxVertexAttribRelativeOffset), NO_EXTRA" ],<br>
>    [ "MAX_VERTEX_ATTRIB_BINDINGS", "CONTEXT_ENUM(Const.MaxVertexAttribBindings), NO_EXTRA" ],<br>
> +<br>
> +# GL_ARB_compute_shader<br>
> +  [ "MAX_COMPUTE_WORK_GROUP_INVOCATIONS", "CONTEXT_ENUM(Const.MaxComputeWorkGroupInvocations), extra_ARB_compute_shader" ],<br>
<br>
</div></div>CONTEXT_ENUM and CONTEXT_INT seem to follow the same code paths, but<br>
would CONTEXT_INT be a better fit here?<br></blockquote><div><br></div><div>You're right, CONTEXT_INT makes more sense here.  I've changed it.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<br>
Also, how do we decide between adding to gl_constants and just using<br>
CONST(1024)? My thought would be to use CONST unless we are pretty<br>
sure drivers will want to vary the value.<br></blockquote><div><br></div><div>My reasoning for using gl_constants is that the value of the constant is determined by a hardware limitation rather than a core Mesa software limitation, hence it's likely to vary from one back end to the next.  I had a quick look through our uses of CONST and it looks like most of the time we use CONST it's when we're talking about a core Mesa software limitation (e.g. MAX_MODELVIEW_STACK_DEPTH is CONST(MAX_MODELVIEW_STACK_DEPTH) because that's the size of the per-context data structure we use to keep track of the modelview matrix stack.<br>
<br>I admit that we haven't historically been terribly consistent about this decision, though :)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<br>
21-23 Reviewed-by: Jordan Justen <<a href="mailto:jordan.l.justen@intel.com" target="_blank">jordan.l.justen@intel.com</a>><br>
<div><br>
>  ]},<br>
><br>
>  # Enums restricted to OpenGL Core profile<br>
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h<br>
> index d3f3a30..6481dc1 100644<br>
> --- a/src/mesa/main/mtypes.h<br>
> +++ b/src/mesa/main/mtypes.h<br>
> @@ -3323,6 +3323,7 @@ struct gl_constants<br>
><br>
>     /** GL_ARB_compute_shader */<br>
>     GLuint MaxComputeWorkGroupSize[3];<br>
> +   GLuint MaxComputeWorkGroupInvocations;<br>
>  };<br>
><br>
><br>
> --<br>
> 1.8.5.2<br>
><br>
</div>> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div><br></div></div>