To flush commands to a device, call the function
All previously queued OpenCL commands in command_queue are issued to the device associated with command_queue. clFlush only guarantees that all queued commands to command_queue will eventually be submitted to the appropriate device. There is no guarantee that they will be complete after clFlush returns.
Any blocking commands queued in a command-queue and clReleaseCommandQueue
perform an implicit flush of the command-queue.
These blocking commands are clEnqueueReadBuffer,
clEnqueueReadBufferRect, clEnqueueReadImage, with blocking_read set to
CL_TRUE; clEnqueueWriteBuffer, clEnqueueWriteBufferRect,
clEnqueueWriteImage with blocking_write set to
clEnqueueMapBuffer, clEnqueueMapImage with blocking_map set to
CL_TRUE; clEnqueueSVMMemcpy with blocking_copy set to
clEnqueueSVMMap with blocking_map set to
CL_TRUE or clWaitForEvents.
To use event objects that refer to commands enqueued in a command-queue as event objects to wait on by commands enqueued in a different command-queue, the application must call a clFlush or any blocking commands that perform an implicit flush of the command-queue where the commands that refer to these event objects are enqueued.
CL_SUCCESS if the function call was executed successfully.
Otherwise, it returns one of the following errors:
CL_INVALID_if command_queue is not a valid host command-queue.
CL_OUT_if there is a failure to allocate resources required by the OpenCL implementation on the device.
CL_OUT_if there is a failure to allocate resources required by the OpenCL implementation on the host.
OF_ HOST_ MEMORY
For more information, see the OpenCL Specification
This page is extracted from the OpenCL Specification. Fixes and changes should be made to the Specification, not directly.