~CUDADevice() { task_pool.stop(); cuda_push_context(); cuda_assert(cuCtxDetach(cuContext)) }
~OpenCLDevice() { task_pool.stop(); if(null_mem) clReleaseMemObject(CL_MEM_PTR(null_mem)); map<string, device_vector<uchar>*>::iterator mt; for(mt = const_mem_map.begin(); mt != const_mem_map.end(); mt++) { mem_free(*(mt->second)); delete mt->second; } if(ckPathTraceKernel) clReleaseKernel(ckPathTraceKernel); if(ckFilmConvertKernel) clReleaseKernel(ckFilmConvertKernel); if(cpProgram) clReleaseProgram(cpProgram); if(cqCommandQueue) clReleaseCommandQueue(cqCommandQueue); if(cxContext) clReleaseContext(cxContext); }
~CPUDevice() { task_pool.stop(); }
~CPUDevice() { task_pool.stop(); texture_info.free(); }