void pocl_basic_free (cl_device_id device, cl_mem memobj) { cl_mem_flags flags = memobj->flags; if (flags & CL_MEM_USE_HOST_PTR) return; void* ptr = memobj->device_ptrs[device->dev_id].mem_ptr; size_t size = memobj->size; pocl_free_global_mem(device, ptr, size); }
void pocl_basic_free (cl_device_id device, cl_mem memobj) { cl_mem_flags flags = memobj->flags; /* aloocation owner executes freeing */ if (flags & CL_MEM_USE_HOST_PTR || memobj->shared_mem_allocation_owner != device) return; void* ptr = memobj->device_ptrs[device->dev_id].mem_ptr; size_t size = memobj->size; if (memobj->flags | CL_MEM_ALLOC_HOST_PTR) memobj->mem_host_ptr = NULL; pocl_free_global_mem(device, ptr, size); }