Enqueues a command to unmap a previously mapped region of a memory object.
cl_int clEnqueueUnmapMemObject(cl_command_queue command_queue,
cl_mem memobj,
void *mapped_ptr,
cl_uint num_events_in_wait_list,
const cl_event *event_wait_list,
cl_event *event)command_queue-
Must be a valid host command-queue.
memobj-
A valid memory (buffer or image) object. The OpenCL context associated with
command_queueandmemobjmust be the same. mapped_ptr-
The host address returned by a previous call to
clEnqueueMapBufferorclEnqueueMapImageformemobj. event_wait_list ,num_events_in_wait_list-
Specify events that need to complete before
clEnqueueUnmapMemObjectcan be executed. Ifevent_wait_listis NULL, thenclEnqueueUnmapMemObjectdoes not wait on any event to complete. Ifevent_wait_listis NULL,num_events_in_wait_listmust be 0. Ifevent_wait_listis not NULL, the list of events pointed to byevent_wait_listmust be valid andnum_events_in_wait_listmust be greater than 0. The events specified inevent_wait_listact as synchronization points. The context associated with events inevent_wait_listandcommand_queuemust be the same. The memory associated withevent_wait_listcan be reused or freed after the function returns. event-
Returns an event object that identifies this particular copy command and can be used to query or queue a wait for this particular command to complete.
eventcan be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to complete.clEnqueueBarrierWithWaitListcan be used instead. If theevent_wait_listand theeventarguments are not NULL, theeventargument should not refer to an element of theevent_wait_listarray.
Reads or writes from the host using the pointer returned by clEnqueueMapBuffer or clEnqueueMapImage are considered to be complete.
clEnqueueMapBuffer and clEnqueueMapImage increment the mapped count of the memory object.
The initial mapped count value of a memory object is zero.
Multiple calls to clEnqueueMapBuffer or clEnqueueMapImage on the same memory object will increment this mapped count by appropriate number of calls.
clEnqueueUnmapMemObject decrements the mapped count of the memory object.
clEnqueueMapBuffer and clEnqueueMapImage act as synchronization points for a region of the buffer object being mapped.
clEnqueueUnmapMemObject returns CL_SUCCESS if the function is executed successfully.
Otherwise, it returns one of the following errors:.
-
CL_INVALID_COMMAND_QUEUEifcommand_queueis not a valid host command-queue. -
CL_INVALID_MEM_OBJECTifmemobjis not a valid memory object or is a pipe object. -
CL_INVALID_VALUEifmapped_ptris not a valid pointer returned byclEnqueueMapBufferorclEnqueueMapImageformemobj. -
CL_INVALID_EVENT_WAIT_LISTifevent_wait_listis NULL andnum_events_in_wait_list> 0, orevent_wait_listis not NULL andnum_events_in_wait_listis 0, or if event objects inevent_wait_listare not valid events. -
CL_OUT_OF_RESOURCESif there is a failure to allocate resources required by the OpenCL implementation on the device. -
CL_OUT_OF_HOST_MEMORYif there is a failure to allocate resources required by the OpenCL implementation on the host. -
CL_INVALID_CONTEXTif the context associated withcommand_queueandmemobjare not the same or if the context associated withcommand_queueand events inevent_wait_listare not the same.