Exemple #1
0
	~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();
	}
Exemple #4
0
 ~CPUDevice()
 {
   task_pool.stop();
   texture_info.free();
 }