C Specification
To flush commands to a device, call the function
// Provided by CL_VERSION_1_0
cl_int clFlush(
cl_command_queue command_queue);
Description
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 CL_TRUE;
clEnqueueMapBuffer, clEnqueueMapImage with blocking_map set to
CL_TRUE; clEnqueueSVMMemcpy with blocking_copy set to CL_TRUE;
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.
clFlush returns 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.COMMAND_ QUEUE -
CL_OUT_if there is a failure to allocate resources required by the OpenCL implementation on the device.OF_ RESOURCES -
CL_OUT_if there is a failure to allocate resources required by the OpenCL implementation on the host.OF_ HOST_ MEMORY
Document Notes
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.