Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Sun, Jan 24, 2016 at 10:09 PM, Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > From: Ilia Mirkin <imir...@alum.mit.edu> > > Looks like the various max's were never plumbed through. > > Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> > --- > src/glsl/builtin_variables.cpp | 15 ++++++++++----- > src/glsl/glsl_parser_extras.cpp | 7 +++++++ > src/glsl/glsl_parser_extras.h | 5 +++++ > src/glsl/main.cpp | 4 ++++ > src/mesa/main/config.h | 6 ------ > src/mesa/main/get_hash_params.py | 12 ++++++------ > 6 files changed, 32 insertions(+), 17 deletions(-) > > diff --git a/src/glsl/builtin_variables.cpp b/src/glsl/builtin_variables.cpp > index 70facd0..abf0eea 100644 > --- a/src/glsl/builtin_variables.cpp > +++ b/src/glsl/builtin_variables.cpp > @@ -770,11 +770,16 @@ builtin_variable_generator::generate_constants() > } > > if (state->is_version(430, 310) || state->ARB_compute_shader_enable) { > - add_const("gl_MaxComputeAtomicCounterBuffers", > MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS); > - add_const("gl_MaxComputeAtomicCounters", MAX_COMPUTE_ATOMIC_COUNTERS); > - add_const("gl_MaxComputeImageUniforms", MAX_COMPUTE_IMAGE_UNIFORMS); > - add_const("gl_MaxComputeTextureImageUnits", > MAX_COMPUTE_TEXTURE_IMAGE_UNITS); > - add_const("gl_MaxComputeUniformComponents", > MAX_COMPUTE_UNIFORM_COMPONENTS); > + add_const("gl_MaxComputeAtomicCounterBuffers", > + state->Const.MaxComputeAtomicCounterBuffers); > + add_const("gl_MaxComputeAtomicCounters", > + state->Const.MaxComputeAtomicCounters); > + add_const("gl_MaxComputeImageUniforms", > + state->Const.MaxComputeImageUniforms); > + add_const("gl_MaxComputeTextureImageUnits", > + state->Const.MaxComputeTextureImageUnits); > + add_const("gl_MaxComputeUniformComponents", > + state->Const.MaxComputeUniformComponents); > > add_const_ivec3("gl_MaxComputeWorkGroupCount", > state->Const.MaxComputeWorkGroupCount[0], > diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp > index 6038954..cce9a68 100644 > --- a/src/glsl/glsl_parser_extras.cpp > +++ b/src/glsl/glsl_parser_extras.cpp > @@ -119,6 +119,7 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct > gl_context *_ctx, > this->Const.MaxTessEvaluationAtomicCounters = > ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxAtomicCounters; > this->Const.MaxGeometryAtomicCounters = > ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxAtomicCounters; > this->Const.MaxFragmentAtomicCounters = > ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxAtomicCounters; > + this->Const.MaxComputeAtomicCounters = > ctx->Const.Program[MESA_SHADER_COMPUTE].MaxAtomicCounters; > this->Const.MaxCombinedAtomicCounters = > ctx->Const.MaxCombinedAtomicCounters; > this->Const.MaxAtomicBufferBindings = ctx->Const.MaxAtomicBufferBindings; > this->Const.MaxVertexAtomicCounterBuffers = > @@ -131,6 +132,8 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct > gl_context *_ctx, > ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxAtomicBuffers; > this->Const.MaxFragmentAtomicCounterBuffers = > ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxAtomicBuffers; > + this->Const.MaxComputeAtomicCounterBuffers = > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxAtomicBuffers; > this->Const.MaxCombinedAtomicCounterBuffers = > ctx->Const.MaxCombinedAtomicBuffers; > this->Const.MaxAtomicCounterBufferSize = > @@ -142,6 +145,9 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct > gl_context *_ctx, > for (unsigned i = 0; i < ARRAY_SIZE(this->Const.MaxComputeWorkGroupSize); > i++) > this->Const.MaxComputeWorkGroupSize[i] = > ctx->Const.MaxComputeWorkGroupSize[i]; > > + this->Const.MaxComputeTextureImageUnits = > ctx->Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits; > + this->Const.MaxComputeUniformComponents = > ctx->Const.Program[MESA_SHADER_COMPUTE].MaxUniformComponents; > + > this->Const.MaxImageUnits = ctx->Const.MaxImageUnits; > this->Const.MaxCombinedShaderOutputResources = > ctx->Const.MaxCombinedShaderOutputResources; > this->Const.MaxImageSamples = ctx->Const.MaxImageSamples; > @@ -150,6 +156,7 @@ _mesa_glsl_parse_state::_mesa_glsl_parse_state(struct > gl_context *_ctx, > this->Const.MaxTessEvaluationImageUniforms = > ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxImageUniforms; > this->Const.MaxGeometryImageUniforms = > ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxImageUniforms; > this->Const.MaxFragmentImageUniforms = > ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxImageUniforms; > + this->Const.MaxComputeImageUniforms = > ctx->Const.Program[MESA_SHADER_COMPUTE].MaxImageUniforms; > this->Const.MaxCombinedImageUniforms = > ctx->Const.MaxCombinedImageUniforms; > > /* ARB_viewport_array */ > diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h > index 3f88e01..45a2999 100644 > --- a/src/glsl/glsl_parser_extras.h > +++ b/src/glsl/glsl_parser_extras.h > @@ -429,6 +429,11 @@ struct _mesa_glsl_parse_state { > unsigned MaxAtomicCounterBufferSize; > > /* ARB_compute_shader */ > + unsigned MaxComputeAtomicCounterBuffers; > + unsigned MaxComputeAtomicCounters; > + unsigned MaxComputeImageUniforms; > + unsigned MaxComputeTextureImageUnits; > + unsigned MaxComputeUniformComponents; > unsigned MaxComputeWorkGroupCount[3]; > unsigned MaxComputeWorkGroupSize[3]; > > diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp > index df93a01..ff705dc 100644 > --- a/src/glsl/main.cpp > +++ b/src/glsl/main.cpp > @@ -62,6 +62,10 @@ initialize_context(struct gl_context *ctx, gl_api api) > ctx->Const.Program[MESA_SHADER_COMPUTE].MaxUniformComponents = 1024; > ctx->Const.Program[MESA_SHADER_COMPUTE].MaxInputComponents = 0; /* not > used */ > ctx->Const.Program[MESA_SHADER_COMPUTE].MaxOutputComponents = 0; /* not > used */ > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxAtomicBuffers = 8; > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxAtomicCounters = 8; > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxImageUniforms = 8; > + ctx->Const.Program[MESA_SHADER_COMPUTE].MaxUniformBlocks = 12; > > switch (ctx->Const.GLSLVersion) { > case 100: > diff --git a/src/mesa/main/config.h b/src/mesa/main/config.h > index 2d53e2f..1261b7b 100644 > --- a/src/mesa/main/config.h > +++ b/src/mesa/main/config.h > @@ -290,13 +290,7 @@ > > /** For GL_ARB_compute_shader */ > /*@{*/ > -#define MAX_COMPUTE_UNIFORM_BLOCKS 12 > -#define MAX_COMPUTE_TEXTURE_IMAGE_UNITS 16 > -#define MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 8 > -#define MAX_COMPUTE_ATOMIC_COUNTERS 8 > #define MAX_COMPUTE_SHARED_MEMORY_SIZE 32768 > -#define MAX_COMPUTE_UNIFORM_COMPONENTS 512 > -#define MAX_COMPUTE_IMAGE_UNIFORMS 8 > /*@}*/ > > /** For GL_ARB_pipeline_statistics_query */ > diff --git a/src/mesa/main/get_hash_params.py > b/src/mesa/main/get_hash_params.py > index af7a8f4..9bf0ac6 100644 > --- a/src/mesa/main/get_hash_params.py > +++ b/src/mesa/main/get_hash_params.py > @@ -455,13 +455,13 @@ descriptor=[ > > # GL_ARB_compute_shader / GLES 3.1 > [ "MAX_COMPUTE_WORK_GROUP_INVOCATIONS", > "CONTEXT_INT(Const.MaxComputeWorkGroupInvocations), > extra_ARB_compute_shader_es31" ], > - [ "MAX_COMPUTE_UNIFORM_BLOCKS", "CONST(MAX_COMPUTE_UNIFORM_BLOCKS), > extra_ARB_compute_shader_es31" ], > - [ "MAX_COMPUTE_TEXTURE_IMAGE_UNITS", > "CONST(MAX_COMPUTE_TEXTURE_IMAGE_UNITS), extra_ARB_compute_shader_es31" ], > - [ "MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS", > "CONST(MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS), extra_ARB_compute_shader_es31" ], > - [ "MAX_COMPUTE_ATOMIC_COUNTERS", "CONST(MAX_COMPUTE_ATOMIC_COUNTERS), > extra_ARB_compute_shader_es31" ], > + [ "MAX_COMPUTE_UNIFORM_BLOCKS", > "CONTEXT_INT(Const.Program[MESA_SHADER_COMPUTE].MaxUniformBlocks), > extra_ARB_compute_shader_es31" ], > + [ "MAX_COMPUTE_TEXTURE_IMAGE_UNITS", > "CONTEXT_INT(Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits), > extra_ARB_compute_shader_es31" ], > + [ "MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS", > "CONTEXT_INT(Const.Program[MESA_SHADER_COMPUTE].MaxAtomicBuffers), > extra_ARB_compute_shader_es31" ], > + [ "MAX_COMPUTE_ATOMIC_COUNTERS", > "CONTEXT_INT(Const.Program[MESA_SHADER_COMPUTE].MaxAtomicCounters), > extra_ARB_compute_shader_es31" ], > [ "MAX_COMPUTE_SHARED_MEMORY_SIZE", > "CONST(MAX_COMPUTE_SHARED_MEMORY_SIZE), extra_ARB_compute_shader_es31" ], > - [ "MAX_COMPUTE_UNIFORM_COMPONENTS", > "CONST(MAX_COMPUTE_UNIFORM_COMPONENTS), extra_ARB_compute_shader_es31" ], > - [ "MAX_COMPUTE_IMAGE_UNIFORMS", "CONST(MAX_COMPUTE_IMAGE_UNIFORMS), > extra_ARB_compute_shader_es31" ], > + [ "MAX_COMPUTE_UNIFORM_COMPONENTS", > "CONTEXT_INT(Const.Program[MESA_SHADER_COMPUTE].MaxUniformComponents), > extra_ARB_compute_shader_es31" ], > + [ "MAX_COMPUTE_IMAGE_UNIFORMS", > "CONTEXT_INT(Const.Program[MESA_SHADER_COMPUTE].MaxImageUniforms), > extra_ARB_compute_shader_es31" ], > [ "DISPATCH_INDIRECT_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0, > extra_ARB_compute_shader_es31" ], > [ "MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS", > "CONTEXT_INT(Const.Program[MESA_SHADER_COMPUTE].MaxCombinedUniformComponents), > extra_ARB_compute_shader_es31" ], > > -- > 2.6.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev