Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/device/device_split_kernel.cpp
| Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | DeviceSplitKernel::~DeviceSplitKernel() | ||||
| ray_state.free(); | ray_state.free(); | ||||
| use_queues_flag.free(); | use_queues_flag.free(); | ||||
| queue_index.free(); | queue_index.free(); | ||||
| work_pool_wgs.free(); | work_pool_wgs.free(); | ||||
| delete kernel_path_init; | delete kernel_path_init; | ||||
| delete kernel_scene_intersect; | delete kernel_scene_intersect; | ||||
| delete kernel_lamp_emission; | delete kernel_lamp_emission; | ||||
| if (kernel_do_volume != NULL) { | |||||
| delete kernel_do_volume; | delete kernel_do_volume; | ||||
| } | |||||
brecht: Not needed, `delete` works fine with `NULL`. | |||||
| delete kernel_queue_enqueue; | delete kernel_queue_enqueue; | ||||
| delete kernel_indirect_background; | delete kernel_indirect_background; | ||||
| delete kernel_shader_setup; | delete kernel_shader_setup; | ||||
| delete kernel_shader_sort; | delete kernel_shader_sort; | ||||
| delete kernel_shader_eval; | delete kernel_shader_eval; | ||||
| delete kernel_holdout_emission_blurring_pathtermination_ao; | delete kernel_holdout_emission_blurring_pathtermination_ao; | ||||
| delete kernel_subsurface_scatter; | delete kernel_subsurface_scatter; | ||||
| delete kernel_direct_lighting; | delete kernel_direct_lighting; | ||||
| Show All 12 Lines | #define LOAD_KERNEL(name) \ | ||||
| if(!kernel_##name) { \ | if(!kernel_##name) { \ | ||||
| device->set_error(string("Split kernel error: failed to load kernel_") + #name); \ | device->set_error(string("Split kernel error: failed to load kernel_") + #name); \ | ||||
| return false; \ | return false; \ | ||||
| } | } | ||||
| LOAD_KERNEL(path_init); | LOAD_KERNEL(path_init); | ||||
| LOAD_KERNEL(scene_intersect); | LOAD_KERNEL(scene_intersect); | ||||
| LOAD_KERNEL(lamp_emission); | LOAD_KERNEL(lamp_emission); | ||||
| if (requested_features.use_volume) { | |||||
| LOAD_KERNEL(do_volume); | LOAD_KERNEL(do_volume); | ||||
| } | |||||
| LOAD_KERNEL(queue_enqueue); | LOAD_KERNEL(queue_enqueue); | ||||
| LOAD_KERNEL(indirect_background); | LOAD_KERNEL(indirect_background); | ||||
| LOAD_KERNEL(shader_setup); | LOAD_KERNEL(shader_setup); | ||||
| LOAD_KERNEL(shader_sort); | LOAD_KERNEL(shader_sort); | ||||
| LOAD_KERNEL(shader_eval); | LOAD_KERNEL(shader_eval); | ||||
| LOAD_KERNEL(holdout_emission_blurring_pathtermination_ao); | LOAD_KERNEL(holdout_emission_blurring_pathtermination_ao); | ||||
| LOAD_KERNEL(subsurface_scatter); | LOAD_KERNEL(subsurface_scatter); | ||||
| LOAD_KERNEL(direct_lighting); | LOAD_KERNEL(direct_lighting); | ||||
| ▲ Show 20 Lines • Show All 125 Lines • ▼ Show 20 Lines | while(tile.sample < tile.start_sample + tile.num_samples) { | ||||
| bool activeRaysAvailable = true; | bool activeRaysAvailable = true; | ||||
| double cancel_time = DBL_MAX; | double cancel_time = DBL_MAX; | ||||
| while(activeRaysAvailable) { | while(activeRaysAvailable) { | ||||
| /* Do path-iteration in host [Enqueue Path-iteration kernels. */ | /* Do path-iteration in host [Enqueue Path-iteration kernels. */ | ||||
| for(int PathIter = 0; PathIter < 16; PathIter++) { | for(int PathIter = 0; PathIter < 16; PathIter++) { | ||||
| ENQUEUE_SPLIT_KERNEL(scene_intersect, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(scene_intersect, global_size, local_size); | ||||
| ENQUEUE_SPLIT_KERNEL(lamp_emission, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(lamp_emission, global_size, local_size); | ||||
| if (kernel_do_volume) { | |||||
| ENQUEUE_SPLIT_KERNEL(do_volume, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(do_volume, global_size, local_size); | ||||
| } | |||||
| ENQUEUE_SPLIT_KERNEL(queue_enqueue, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(queue_enqueue, global_size, local_size); | ||||
| ENQUEUE_SPLIT_KERNEL(indirect_background, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(indirect_background, global_size, local_size); | ||||
| ENQUEUE_SPLIT_KERNEL(shader_setup, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(shader_setup, global_size, local_size); | ||||
| ENQUEUE_SPLIT_KERNEL(shader_sort, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(shader_sort, global_size, local_size); | ||||
| ENQUEUE_SPLIT_KERNEL(shader_eval, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(shader_eval, global_size, local_size); | ||||
| ENQUEUE_SPLIT_KERNEL(holdout_emission_blurring_pathtermination_ao, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(holdout_emission_blurring_pathtermination_ao, global_size, local_size); | ||||
| ENQUEUE_SPLIT_KERNEL(subsurface_scatter, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(subsurface_scatter, global_size, local_size); | ||||
| ENQUEUE_SPLIT_KERNEL(queue_enqueue, global_size, local_size); | ENQUEUE_SPLIT_KERNEL(queue_enqueue, global_size, local_size); | ||||
| ▲ Show 20 Lines • Show All 71 Lines • Show Last 20 Lines | |||||
Not needed, delete works fine with NULL.