diff options
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/device/opencl/memory_manager.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/device/opencl/opencl.h | 1 | ||||
-rw-r--r-- | intern/cycles/device/opencl/opencl_split.cpp | 19 |
3 files changed, 5 insertions, 17 deletions
diff --git a/intern/cycles/device/opencl/memory_manager.cpp b/intern/cycles/device/opencl/memory_manager.cpp index f85aadce1c2..06d4746a86e 100644 --- a/intern/cycles/device/opencl/memory_manager.cpp +++ b/intern/cycles/device/opencl/memory_manager.cpp @@ -251,7 +251,7 @@ void MemoryManager::set_kernel_arg_buffers(cl_kernel kernel, cl_uint *narg) device->kernel_set_args(kernel, (*narg)++, *device_buffer.buffer); } else { - device->kernel_set_args(kernel, (*narg)++, device->null_mem); + device->kernel_set_args(kernel, (*narg)++, 0); } } } diff --git a/intern/cycles/device/opencl/opencl.h b/intern/cycles/device/opencl/opencl.h index 82b961b8de7..61b1e3e3b6b 100644 --- a/intern/cycles/device/opencl/opencl.h +++ b/intern/cycles/device/opencl/opencl.h @@ -381,7 +381,6 @@ class OpenCLDevice : public Device { ConstMemMap const_mem_map; MemMap mem_map; - device_ptr null_mem; bool device_initialized; string platform_name; diff --git a/intern/cycles/device/opencl/opencl_split.cpp b/intern/cycles/device/opencl/opencl_split.cpp index eea5cf2fb8a..76f9ce7a18f 100644 --- a/intern/cycles/device/opencl/opencl_split.cpp +++ b/intern/cycles/device/opencl/opencl_split.cpp @@ -611,7 +611,6 @@ OpenCLDevice::OpenCLDevice(DeviceInfo &info, Stats &stats, Profiler &profiler, b cdDevice = NULL; cxContext = NULL; cqCommandQueue = NULL; - null_mem = 0; device_initialized = false; textures_need_update = true; use_preview_kernels = !background; @@ -662,12 +661,6 @@ OpenCLDevice::OpenCLDevice(DeviceInfo &info, Stats &stats, Profiler &profiler, b return; } - null_mem = (device_ptr)clCreateBuffer(cxContext, CL_MEM_READ_ONLY, 1, NULL, &ciErr); - if (opencl_error(ciErr)) { - opencl_error("OpenCL: Error creating memory buffer for NULL"); - return; - } - /* Allocate this right away so that texture_info * is placed at offset 0 in the device memory buffers. */ texture_info.resize(1); @@ -689,9 +682,6 @@ OpenCLDevice::~OpenCLDevice() memory_manager.free(); - if (null_mem) - clReleaseMemObject(CL_MEM_PTR(null_mem)); - ConstMemMap::iterator mt; for (mt = const_mem_map.begin(); mt != const_mem_map.end(); mt++) { delete mt->second; @@ -962,7 +952,7 @@ void OpenCLDevice::mem_alloc(device_memory &mem) opencl_assert_err(ciErr, "clCreateBuffer"); } else { - mem.device_pointer = null_mem; + mem.device_pointer = 0; } stats.mem_alloc(size); @@ -1084,7 +1074,7 @@ void OpenCLDevice::mem_free(device_memory &mem) } else { if (mem.device_pointer) { - if (mem.device_pointer != null_mem) { + if (mem.device_pointer != 0) { opencl_assert(clReleaseMemObject(CL_MEM_PTR(mem.device_pointer))); } mem.device_pointer = 0; @@ -1120,7 +1110,7 @@ device_ptr OpenCLDevice::mem_alloc_sub_ptr(device_memory &mem, int offset, int s void OpenCLDevice::mem_free_sub_ptr(device_ptr device_pointer) { - if (device_pointer && device_pointer != null_mem) { + if (device_pointer != 0) { opencl_assert(clReleaseMemObject(CL_MEM_PTR(device_pointer))); } } @@ -1239,8 +1229,7 @@ void OpenCLDevice::set_kernel_arg_mem(cl_kernel kernel, cl_uint *narg, const cha ptr = CL_MEM_PTR(i->second); } else { - /* work around NULL not working, even though the spec says otherwise */ - ptr = CL_MEM_PTR(null_mem); + ptr = 0; } opencl_assert(clSetKernelArg(kernel, (*narg)++, sizeof(ptr), (void *)&ptr)); |