Differential D2551 Diff 8416 intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h
Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h
| Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | |||||
| * QUEUE_ACTIVE_AND_REGENERATED_RAYS will be filled with RAY_ACTIVE and RAY_REGENERATED rays | * QUEUE_ACTIVE_AND_REGENERATED_RAYS will be filled with RAY_ACTIVE and RAY_REGENERATED rays | ||||
| * QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS will be filled with RAY_TO_REGENERATE rays. | * QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS will be filled with RAY_TO_REGENERATE rays. | ||||
| * QUEUE_SHADOW_RAY_CAST_AO_RAYS will be empty. | * QUEUE_SHADOW_RAY_CAST_AO_RAYS will be empty. | ||||
| * At exit, | * At exit, | ||||
| * QUEUE_ACTIVE_AND_REGENERATED_RAYS will be filled with RAY_ACTIVE, RAY_REGENERATED and RAY_UPDATE_BUFFER rays | * QUEUE_ACTIVE_AND_REGENERATED_RAYS will be filled with RAY_ACTIVE, RAY_REGENERATED and RAY_UPDATE_BUFFER rays | ||||
| * QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS will be filled with RAY_TO_REGENERATE and RAY_UPDATE_BUFFER rays | * QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS will be filled with RAY_TO_REGENERATE and RAY_UPDATE_BUFFER rays | ||||
| * QUEUE_SHADOW_RAY_CAST_AO_RAYS will be filled with rays marked with flag RAY_SHADOW_RAY_CAST_AO | * QUEUE_SHADOW_RAY_CAST_AO_RAYS will be filled with rays marked with flag RAY_SHADOW_RAY_CAST_AO | ||||
| */ | */ | ||||
| ccl_device void kernel_holdout_emission_blurring_pathtermination_ao(KernelGlobals *kg) | ccl_device void kernel_holdout_emission_blurring_pathtermination_ao( | ||||
| KernelGlobals *kg, | |||||
| ccl_local_param unsigned int local_queue_atomics[2]) | |||||
| { | { | ||||
| ccl_local unsigned int local_queue_atomics_bg; | |||||
| ccl_local unsigned int local_queue_atomics_ao; | |||||
| if(ccl_local_id(0) == 0 && ccl_local_id(1) == 0) { | if(ccl_local_id(0) == 0 && ccl_local_id(1) == 0) { | ||||
| local_queue_atomics_bg = 0; | local_queue_atomics[0] = 0; | ||||
| local_queue_atomics_ao = 0; | local_queue_atomics[1] = 0; | ||||
| } | } | ||||
| ccl_barrier(CCL_LOCAL_MEM_FENCE); | ccl_barrier(CCL_LOCAL_MEM_FENCE); | ||||
| char enqueue_flag = 0; | char enqueue_flag = 0; | ||||
| char enqueue_flag_AO_SHADOW_RAY_CAST = 0; | char enqueue_flag_AO_SHADOW_RAY_CAST = 0; | ||||
| int ray_index = ccl_global_id(1) * ccl_global_size(0) + ccl_global_id(0); | int ray_index = ccl_global_id(1) * ccl_global_size(0) + ccl_global_id(0); | ||||
| ray_index = get_ray_index(kg, ray_index, | ray_index = get_ray_index(kg, ray_index, | ||||
| QUEUE_ACTIVE_AND_REGENERATED_RAYS, | QUEUE_ACTIVE_AND_REGENERATED_RAYS, | ||||
| ▲ Show 20 Lines • Show All 178 Lines • ▼ Show 20 Lines | #ifndef __COMPUTE_DEVICE_GPU__ | ||||
| } | } | ||||
| #endif | #endif | ||||
| /* Enqueue RAY_UPDATE_BUFFER rays. */ | /* Enqueue RAY_UPDATE_BUFFER rays. */ | ||||
| enqueue_ray_index_local(ray_index, | enqueue_ray_index_local(ray_index, | ||||
| QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS, | QUEUE_HITBG_BUFF_UPDATE_TOREGEN_RAYS, | ||||
| enqueue_flag, | enqueue_flag, | ||||
| kernel_split_params.queue_size, | kernel_split_params.queue_size, | ||||
| &local_queue_atomics_bg, | &local_queue_atomics[0], | ||||
| kernel_split_state.queue_data, | kernel_split_state.queue_data, | ||||
| kernel_split_params.queue_index); | kernel_split_params.queue_index); | ||||
| #ifdef __AO__ | #ifdef __AO__ | ||||
| /* Enqueue to-shadow-ray-cast rays. */ | /* Enqueue to-shadow-ray-cast rays. */ | ||||
| enqueue_ray_index_local(ray_index, | enqueue_ray_index_local(ray_index, | ||||
| QUEUE_SHADOW_RAY_CAST_AO_RAYS, | QUEUE_SHADOW_RAY_CAST_AO_RAYS, | ||||
| enqueue_flag_AO_SHADOW_RAY_CAST, | enqueue_flag_AO_SHADOW_RAY_CAST, | ||||
| kernel_split_params.queue_size, | kernel_split_params.queue_size, | ||||
| &local_queue_atomics_ao, | &local_queue_atomics[1], | ||||
| kernel_split_state.queue_data, | kernel_split_state.queue_data, | ||||
| kernel_split_params.queue_index); | kernel_split_params.queue_index); | ||||
| #endif | #endif | ||||
| } | } | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||