diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-03-08 15:34:29 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-03-16 13:27:17 +0300 |
commit | 1cad64900e3f052fa895a4ac2a994d87b0c3fce1 (patch) | |
tree | 562c79fc2622efaf0df7f2a4a75b856c48646ad9 /intern/cycles/kernel/split/kernel_subsurface_scatter.h | |
parent | 1ff753baa4bbf9aeb2c65e0d697840545bfbea24 (diff) |
Cycles: Define ccl_local variables in kernel functions
Declaring ccl_local in a device function is not supported
by certain compilers.
Diffstat (limited to 'intern/cycles/kernel/split/kernel_subsurface_scatter.h')
-rw-r--r-- | intern/cycles/kernel/split/kernel_subsurface_scatter.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/intern/cycles/kernel/split/kernel_subsurface_scatter.h b/intern/cycles/kernel/split/kernel_subsurface_scatter.h index e282ac00a63..709a296c9a0 100644 --- a/intern/cycles/kernel/split/kernel_subsurface_scatter.h +++ b/intern/cycles/kernel/split/kernel_subsurface_scatter.h @@ -17,13 +17,12 @@ CCL_NAMESPACE_BEGIN -ccl_device void kernel_subsurface_scatter(KernelGlobals *kg) +ccl_device void kernel_subsurface_scatter(KernelGlobals *kg, + ccl_local_param unsigned int* local_queue_atomics) { #ifdef __SUBSURFACE__ - - ccl_local unsigned int local_queue_atomics; if(ccl_local_id(0) == 0 && ccl_local_id(1) == 0) { - local_queue_atomics = 0; + *local_queue_atomics = 0; } ccl_barrier(CCL_LOCAL_MEM_FENCE); @@ -89,7 +88,7 @@ ccl_device void kernel_subsurface_scatter(KernelGlobals *kg) QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS, enqueue_flag, kernel_split_params.queue_size, - &local_queue_atomics, + local_queue_atomics, kernel_split_state.queue_data, kernel_split_params.queue_index); |