~OpenCLDeviceSplitKernel() { task_pool.stop(); /* Release kernels */ program_data_init.release(); delete split_kernel; }
~OpenCLDeviceMegaKernel() { task_pool.stop(); path_trace_program.release(); }
~OpenCLDeviceSplitKernel() { task_pool.stop(); /* Release kernels */ program_data_init.release(); program_scene_intersect.release(); program_lamp_emission.release(); program_queue_enqueue.release(); program_background_buffer_update.release(); program_shader_eval.release(); program_holdout_emission_blurring_pathtermination_ao.release(); program_direct_lighting.release(); program_shadow_blocked.release(); program_next_iteration_setup.release(); program_sum_all_radiance.release(); /* Release global memory */ release_mem_object_safe(rng_coop); release_mem_object_safe(throughput_coop); release_mem_object_safe(L_transparent_coop); release_mem_object_safe(PathRadiance_coop); release_mem_object_safe(Ray_coop); release_mem_object_safe(PathState_coop); release_mem_object_safe(Intersection_coop); release_mem_object_safe(kgbuffer); release_mem_object_safe(sd); release_mem_object_safe(sd_DL_shadow); release_mem_object_safe(ray_state); release_mem_object_safe(AOAlpha_coop); release_mem_object_safe(AOBSDF_coop); release_mem_object_safe(AOLightRay_coop); release_mem_object_safe(BSDFEval_coop); release_mem_object_safe(ISLamp_coop); release_mem_object_safe(LightRay_coop); release_mem_object_safe(Intersection_coop_shadow); #ifdef WITH_CYCLES_DEBUG release_mem_object_safe(debugdata_coop); #endif release_mem_object_safe(use_queues_flag); release_mem_object_safe(Queue_data); release_mem_object_safe(Queue_index); release_mem_object_safe(work_array); #ifdef __WORK_STEALING__ release_mem_object_safe(work_pool_wgs); #endif release_mem_object_safe(per_sample_output_buffers); if(hostRayStateArray != NULL) { free(hostRayStateArray); } }