Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/kernel/device/gpu/parallel_active_index.h')
-rw-r--r--intern/cycles/kernel/device/gpu/parallel_active_index.h51
1 files changed, 32 insertions, 19 deletions
diff --git a/intern/cycles/kernel/device/gpu/parallel_active_index.h b/intern/cycles/kernel/device/gpu/parallel_active_index.h
index 32dbe0ddaa3..7d7266d5edf 100644
--- a/intern/cycles/kernel/device/gpu/parallel_active_index.h
+++ b/intern/cycles/kernel/device/gpu/parallel_active_index.h
@@ -22,19 +22,20 @@ CCL_NAMESPACE_BEGIN
template<uint blocksize, typename IsActiveOp>
__device__
#endif
-void gpu_parallel_active_index_array_impl(const uint num_states,
- ccl_global int *indices,
- ccl_global int *num_indices,
+ void
+ gpu_parallel_active_index_array_impl(const uint num_states,
+ ccl_global int *indices,
+ ccl_global int *num_indices,
#ifdef __KERNEL_METAL__
- const uint is_active,
- const uint blocksize,
- const int thread_index,
- const uint state_index,
- const int ccl_gpu_warp_size,
- const int thread_warp,
- const int warp_index,
- const int num_warps,
- threadgroup int *warp_offset)
+ const uint is_active,
+ const uint blocksize,
+ const int thread_index,
+ const uint state_index,
+ const int ccl_gpu_warp_size,
+ const int thread_warp,
+ const int warp_index,
+ const int num_warps,
+ threadgroup int *warp_offset)
{
#else
IsActiveOp is_active_op)
@@ -65,7 +66,7 @@ void gpu_parallel_active_index_array_impl(const uint num_states,
ccl_gpu_syncthreads();
/* Last thread in block converts per-warp sizes to offsets, increments global size of
- * index array and gets offset to write to. */
+ * index array and gets offset to write to. */
if (thread_index == blocksize - 1) {
/* TODO: parallelize this. */
int offset = 0;
@@ -91,15 +92,27 @@ void gpu_parallel_active_index_array_impl(const uint num_states,
#ifdef __KERNEL_METAL__
# define gpu_parallel_active_index_array(dummy, num_states, indices, num_indices, is_active_op) \
- const uint is_active = (ccl_gpu_global_id_x() < num_states) ? is_active_op(ccl_gpu_global_id_x()) : 0; \
- gpu_parallel_active_index_array_impl(num_states, indices, num_indices, is_active, \
- metal_local_size, metal_local_id, metal_global_id, simdgroup_size, simd_lane_index, \
- simd_group_index, num_simd_groups, simdgroup_offset)
+ const uint is_active = (ccl_gpu_global_id_x() < num_states) ? \
+ is_active_op(ccl_gpu_global_id_x()) : \
+ 0; \
+ gpu_parallel_active_index_array_impl(num_states, \
+ indices, \
+ num_indices, \
+ is_active, \
+ metal_local_size, \
+ metal_local_id, \
+ metal_global_id, \
+ simdgroup_size, \
+ simd_lane_index, \
+ simd_group_index, \
+ num_simd_groups, \
+ simdgroup_offset)
#else
-# define gpu_parallel_active_index_array(blocksize, num_states, indices, num_indices, is_active_op) \
- gpu_parallel_active_index_array_impl<blocksize>(num_states, indices, num_indices, is_active_op)
+# define gpu_parallel_active_index_array( \
+ blocksize, num_states, indices, num_indices, is_active_op) \
+ gpu_parallel_active_index_array_impl<blocksize>(num_states, indices, num_indices, is_active_op)
#endif