Enable or disable the properties of a command-queue.

cl_int clSetCommandQueueProperty( cl_command_queue command_queue,
  cl_command_queue_properties properties,
  cl_bool enable,
  cl_command_queue_properties *old_properties)




Specifies the command-queue being queried.


Specifies the new command-queue properties to be applied to command_queue. Only command-queue properties specified for clCreateCommandQueue can be set in properties; otherwise the value specified in properties is considered to be not valid.


Determines whether the values specified by properties are enabled (if enable is CL_TRUE) or disabled (if enable is CL_FALSE) for the command-queue. The allowed property values are the same as those specified for clCreateCommandQueue.


Returns the command-queue properties before they were changed by clSetCommandQueueProperty. If old_properties is NULL, it is ignored.


As specified for clCreateCommandQueue, the CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE command-queue property determines whether the commands in a command-queue are executed in-order or out-of-order. Changing this command-queue property will cause the OpenCL implementation to block until all previously queued commands in command_queue have completed. This can be an expensive operation and therefore changes to the CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE property should be only done when absolutely necessary.

It is possible that a device(s) becomes unavailable after a context and command-queues that use this device(s) have been created and commands have been queued to command-queues. In this case the behavior of OpenCL API calls that use this context (and command-queues) are considered to be implementation-defined. The user callback function, if specified when the context is created, can be used to record appropriate information in the errinfo, private_info arguments passed to the callback function when the device becomes unavailable.


Returns CL_SUCCESS if the command-queue properties are successfully updated. Otherwise, it returns the following:

  • Returns CL_INVALID_COMMAND_QUEUE if command_queue is not a valid command-queue.
  • Returns CL_INVALID_VALUE if the values specified in properties are not valid.
  • Returns CL_INVALID_QUEUE_PROPERTIES if the values specified in properties are not supported by the device.


OpenCL Specification

Also see

clCreateCommandQueue, clGetCommandQueueInfo, clReleaseCommandQueue, clRetainCommandQueue
