From: Andreas Beckmann Date: Mon, 6 Dec 2021 23:14:36 +0000 (+0100) Subject: [PATCH 87/90] rename pocl_basic_alloc_mem_obj() to pocl_driver_alloc_mem_obj() X-Git-Tag: archive/raspbian/1.8-3+rpi1^2~51 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2baa8436470bcc2049dcd5d54f2d96d4b5c26824;p=pocl.git [PATCH 87/90] rename pocl_basic_alloc_mem_obj() to pocl_driver_alloc_mem_obj() Gbp-Pq: Name 0087-rename-pocl_basic_alloc_mem_obj-to-pocl_driver_alloc.patch --- diff --git a/lib/CL/devices/basic/basic.c b/lib/CL/devices/basic/basic.c index 3ff95df..5a08950 100644 --- a/lib/CL/devices/basic/basic.c +++ b/lib/CL/devices/basic/basic.c @@ -77,7 +77,7 @@ pocl_basic_init_device_ops(struct pocl_device_ops *ops) ops->reinit = pocl_basic_reinit; ops->init = pocl_basic_init; - ops->alloc_mem_obj = pocl_basic_alloc_mem_obj; + ops->alloc_mem_obj = pocl_driver_alloc_mem_obj; ops->free = pocl_basic_free; ops->read = pocl_driver_read; @@ -245,36 +245,6 @@ pocl_basic_init (unsigned j, cl_device_id device, const char* parameters) } -POCL_EXPORT -cl_int -pocl_basic_alloc_mem_obj (cl_device_id device, cl_mem mem, void* host_ptr) -{ - pocl_mem_identifier *p = &mem->device_ptrs[device->global_mem_id]; - - /* let other drivers preallocate */ - if ((mem->flags & CL_MEM_ALLOC_HOST_PTR) && (mem->mem_host_ptr == NULL)) - return CL_MEM_OBJECT_ALLOCATION_FAILURE; - - /* malloc mem_host_ptr then increase refcount */ - pocl_alloc_or_retain_mem_host_ptr (mem); - - cl_device_id svm_dev = mem->context->svm_allocdev; - /* if we have a device which shares global memory with host, - * and it needs to do anything to make allocations accessible - * to itself, do it here */ - if (svm_dev && svm_dev->global_mem_id == 0 && svm_dev->ops->svm_register) - svm_dev->ops->svm_register (svm_dev, mem->mem_host_ptr, mem->size); - - p->version = mem->mem_host_ptr_version; - p->mem_ptr = mem->mem_host_ptr; - - POCL_MSG_PRINT_MEMORY ("Basic device ALLOC %p / size %zu \n", p->mem_ptr, - mem->size); - - return CL_SUCCESS; -} - - POCL_EXPORT void pocl_basic_free (cl_device_id device, cl_mem mem) diff --git a/lib/CL/devices/common_driver.c b/lib/CL/devices/common_driver.c index 9c6cb8c..c6f1d39 100644 --- a/lib/CL/devices/common_driver.c +++ b/lib/CL/devices/common_driver.c @@ -430,6 +430,34 @@ pocl_driver_free_mapping_ptr (void *data, pocl_mem_identifier *mem_id, return CL_SUCCESS; } +cl_int +pocl_driver_alloc_mem_obj (cl_device_id device, cl_mem mem, void *host_ptr) +{ + pocl_mem_identifier *p = &mem->device_ptrs[device->global_mem_id]; + + /* let other drivers preallocate */ + if ((mem->flags & CL_MEM_ALLOC_HOST_PTR) && (mem->mem_host_ptr == NULL)) + return CL_MEM_OBJECT_ALLOCATION_FAILURE; + + /* malloc mem_host_ptr then increase refcount */ + pocl_alloc_or_retain_mem_host_ptr (mem); + + cl_device_id svm_dev = mem->context->svm_allocdev; + /* if we have a device which shares global memory with host, + * and it needs to do anything to make allocations accessible + * to itself, do it here */ + if (svm_dev && svm_dev->global_mem_id == 0 && svm_dev->ops->svm_register) + svm_dev->ops->svm_register (svm_dev, mem->mem_host_ptr, mem->size); + + p->version = mem->mem_host_ptr_version; + p->mem_ptr = mem->mem_host_ptr; + + POCL_MSG_PRINT_MEMORY ("Basic device ALLOC %p / size %zu \n", p->mem_ptr, + mem->size); + + return CL_SUCCESS; +} + /* These are implementations of compilation callbacks for all devices * that support compilation via LLVM. They take care of compilation/linking * of source/binary/spir down to parallel.bc level. diff --git a/lib/CL/devices/common_driver.h b/lib/CL/devices/common_driver.h index 424f137..02605ec 100644 --- a/lib/CL/devices/common_driver.h +++ b/lib/CL/devices/common_driver.h @@ -74,6 +74,10 @@ POCL_EXPORT cl_int pocl_driver_free_mapping_ptr (void *data, pocl_mem_identifier *mem_id, cl_mem mem, mem_mapping_t *map); +POCL_EXPORT +cl_int pocl_driver_alloc_mem_obj (cl_device_id device, cl_mem mem, + void *host_ptr); + POCL_EXPORT int pocl_driver_build_source (cl_program program, cl_uint device_i, cl_uint num_input_headers, diff --git a/lib/CL/devices/hsa/pocl-hsa.c b/lib/CL/devices/hsa/pocl-hsa.c index 92dc4dc..1c27c2c 100644 --- a/lib/CL/devices/hsa/pocl-hsa.c +++ b/lib/CL/devices/hsa/pocl-hsa.c @@ -879,7 +879,7 @@ pocl_hsa_alloc_mem_obj (cl_device_id device, cl_mem mem_obj, void *host_ptr) { /* if we share global memory with CPU, let the CPU driver allocate it */ if (device->global_mem_id == 0) - return pocl_basic_alloc_mem_obj (device, mem_obj, host_ptr); + return pocl_driver_alloc_mem_obj (device, mem_obj, host_ptr); /* ... otherwise allocate it via HSA. */ pocl_mem_identifier *p = &mem_obj->device_ptrs[device->global_mem_id];