Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to Acquire/Release clarifications #1183

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions api/opencl_runtime_layer.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -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 <<cl_khr_external_memory-Sample-Code, "`Example with Acquire /
Release`">> for more details on how to use this API.
Expand Down Expand Up @@ -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
<<cl_khr_external_memory-Sample-Code>> for more details on how to use this
Expand Down