From eec1a09638542f69713399c3510ab58b34d9a6a3 Mon Sep 17 00:00:00 2001 From: Nikhil Joshi Date: Tue, 18 Jun 2024 21:49:00 +0530 Subject: [PATCH] Updates to Acquire/Release clarifications Address review comments on PR#1176 Fixes #1078, #1086 --- api/opencl_runtime_layer.asciidoc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/api/opencl_runtime_layer.asciidoc b/api/opencl_runtime_layer.asciidoc index 1cf15afc..d18452d8 100644 --- a/api/opencl_runtime_layer.asciidoc +++ b/api/opencl_runtime_layer.asciidoc @@ -5429,8 +5429,8 @@ This is to guarantee that the state of the memory objects is up-to-date and they are accessible to OpenCL. The following restrictions shall apply - - * Each memory object must be acquired only once. Acquiring memory object - multiple times without releasing it may result in implementation defined + * Each memory object must be acquired only once. Acquiring a memory object + multiple times without releasing it results in implementation-defined behavior. * The acquire must be performed on a command-queue associated with a device that was one of the devices specified via {CL_MEM_DEVICE_HANDLE_LIST_KHR} @@ -5441,8 +5441,8 @@ The following restrictions shall apply - * The memory object will be acquired on all devices specified via {CL_MEM_DEVICE_HANDLE_LIST_KHR} when the memory object was imported using {clCreateBufferWithProperties} or {clCreateImageWithProperties}. - If {CL_MEM_DEVICE_HANDLE_LIST_KHR} was not specified, the memory objects - will be aquired on all devices in the context. + If {CL_MEM_DEVICE_HANDLE_LIST_KHR} was not specified, the memory object + will be aquired for all devices in the context. See <> for more details on how to use this API. @@ -5522,20 +5522,20 @@ This is to guarantee that the state of memory objects is up-to-date and they are accessible to the other API. The following restrictions shall apply - - * Each memory object must be released only once. Releasing memory object - multiple times without acquiring it may result in implementation defined + * Each memory object must be released only once. Releasing a memory object + multiple times without acquiring it results in implementation-defined behavior. * The release must be performed on a command-queue associated with a device that was one of the devices specified via {CL_MEM_DEVICE_HANDLE_LIST_KHR} when the memory object was imported using {clCreateBufferWithProperties} or {clCreateImageWithProperties}. If {CL_MEM_DEVICE_HANDLE_LIST_KHR} was not - specified, the acquire can be performed on a command-queue associated with + specified, the release can be performed on a command-queue associated with any device in the context. * The memory object will be released on all devices specified via {CL_MEM_DEVICE_HANDLE_LIST_KHR} when the memory object was imported using {clCreateBufferWithProperties} or {clCreateImageWithProperties}. If {CL_MEM_DEVICE_HANDLE_LIST_KHR} was not specified, the memory object - will be released on all devices in the context. + will be released for all devices in the context. See "`Example with Acquire / Release`" provided in <> for more details on how to use this