From ef8e50a841e79597ca56ae081102119329fd154c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 22 Apr 2016 14:47:05 +0200 Subject: [PATCH] clover: Pass work_dim parameter of clEnqueueNDRangeKernel() to driver In order to implement get_work_dim() the driver may need to know the clEnqueueNDRangeKernel() work_dim parameter, so pass it to the driver. Signed-off-by: Hans de Goede Reviewed-by: Ilia Mirkin Reviewed-by: Samuel Pitoiset --- src/gallium/include/pipe/p_state.h | 7 +++++++ src/gallium/state_trackers/clover/core/kernel.cpp | 1 + 2 files changed, 8 insertions(+) diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index 5526c392aa7..f4bee38a195 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -755,6 +755,13 @@ struct pipe_grid_info */ void *input; + /** + * Grid number of dimensions, 1-3, e.g. the work_dim parameter passed to + * clEnqueueNDRangeKernel. Note block[] and grid[] must be padded with + * 1 for non-used dimensions. + */ + uint work_dim; + /** * Determine the layout of the working block (in thread units) to be used. */ diff --git a/src/gallium/state_trackers/clover/core/kernel.cpp b/src/gallium/state_trackers/clover/core/kernel.cpp index 9231462b822..d9bda6c712c 100644 --- a/src/gallium/state_trackers/clover/core/kernel.cpp +++ b/src/gallium/state_trackers/clover/core/kernel.cpp @@ -76,6 +76,7 @@ kernel::launch(command_queue &q, exec.g_buffers.data(), g_handles.data()); // Fill information for the launch_grid() call. + info.work_dim = grid_size.size(); copy(pad_vector(q, block_size, 1), info.block); copy(pad_vector(q, reduced_grid_size, 1), info.grid); info.pc = find(name_equals(_name), m.syms).offset; -- 2.30.2