Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Mon, Sep 26, 2016 at 7:23 PM, Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > This extension is only exposed if the underlying driver supports > ARB_compute_shader and if PIPE_COMPUTE_MAX_VARIABLE_THREADS_PER_BLOCK > is set. > > v3: - initialize max_variable_threads_per_block to 0 > v2: - expose the ext based on that new cap > > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> > --- > src/mesa/state_tracker/st_extensions.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/src/mesa/state_tracker/st_extensions.c > b/src/mesa/state_tracker/st_extensions.c > index ef17aba..024dba8 100644 > --- a/src/mesa/state_tracker/st_extensions.c > +++ b/src/mesa/state_tracker/st_extensions.c > @@ -1196,6 +1196,28 @@ void st_init_extensions(struct pipe_screen *screen, > extensions->ARB_compute_shader = > > extensions->ARB_shader_image_load_store && > extensions->ARB_shader_atomic_counters; > + > + if (extensions->ARB_compute_shader) { > + uint64_t max_variable_threads_per_block = 0; > + > + screen->get_compute_param(screen, PIPE_SHADER_IR_TGSI, > + > PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK, > + &max_variable_threads_per_block); > + > + for (i = 0; i < 3; i++) { > + /* Clamp the values to avoid having a local work group size > + * greater than the maximum number of invocations. > + */ > + consts->MaxComputeVariableGroupSize[i] = > + MIN2(consts->MaxComputeWorkGroupSize[i], > + max_variable_threads_per_block); > + } > + consts->MaxComputeVariableGroupInvocations = > + max_variable_threads_per_block; > + > + extensions->ARB_compute_variable_group_size = > + max_variable_threads_per_block > 0; > + } > } > } > > -- > 2.10.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev