Creates an OpenCL buffer object from a Direct3D 11 buffer.
cl_mem clCreateFromD3D11BufferKHR(cl_context context,
cl_mem_flags flags,
ID3D11Buffer *resource,
cl_int *errcode_ret)
context
-
A valid OpenCL context created from a Direct3D 11 device.
flags
-
A bit-field that is used to specify usage information. May be
CL_MEM_READ_ONLY
,CL_MEM_WRITE_ONLY
, orCL_MEM_READ_WRITE
. (See the table forclCreateBuffer
for more information.) resource
-
A pointer to the Direct3D 11 buffer to share.
errcode_ret
-
An appropriate error code. If
errcode_ret
is NULL, no error code is returned.
The size of the returned OpenCL buffer object is the same as the size of resource
.
This call will increment the internal Direct3D reference count on resource
.
The internal Direct3D reference count on resource
will be decremented when the OpenCL reference count on the returned OpenCL memory object drops to zero.
Returns a valid non-zero OpenCL buffer object and errcode_ret
is set to CL_SUCCESS
if the buffer object is created successfully.
Otherwise, it returns a NULL value with one of the following error values returned in errcode_ret
:
-
CL_INVALID_CONTEXT
ifcontext
is not a valid context. -
CL_INVALID_VALUE
if values specified inflags
are not valid. -
CL_INVALID_D3D11_RESOURCE_KHR
ifresource
is not a Direct3D 11 buffer resource, ifresource
was created with theD3D11_USAGE
flagD3D11_USAGE_IMMUTABLE
, if acl_mem
fromresource
has already been created usingclCreateFromD3D11BufferKHR
, or ifcontext
was not created against the same Direct3D 11 device from whichresource
was created. -
CL_OUT_OF_HOST_MEMORY
if there is a failure to allocate resources required by the OpenCL implementation on the host.