@@ -14692,10 +14692,17 @@ usage>>.
1469214692====
1469314693
1469414694Simultaneous use is defined using the _prerequisite_ terminology from the
14695- <<_execution_model, execution model>>, and is an optional feature for devices
14696- to support concurrent executions of a command-buffer. A command-buffer must
14697- be created with {CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR} to avoid undefined
14698- behavior if a simultaneous use usage pattern occurs.
14695+ <<_execution_model, execution model>>.
14696+ ifndef::cl_khr_command_buffer_multi_device[]
14697+ A command-buffer exhibits undefined behavior if a simultaneous use usage
14698+ pattern occurs.
14699+ endif::cl_khr_command_buffer_multi_device[]
14700+ ifdef::cl_khr_command_buffer_multi_device[]
14701+ Simultaneous use is an optional feature for devices to support concurrent
14702+ executions of a command-buffer which have been updated between submissions.
14703+ A command-buffer must be created with {CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR}
14704+ to avoid undefined behavior if a simultaneous use usage pattern occurs.
14705+ endif::cl_khr_command_buffer_multi_device[]
1469914706
1470014707[[simultaneous-use]]
1470114708Simultaneous Use:: When a command-buffer is submitted for
@@ -14708,9 +14715,7 @@ An example of simultaneous use would be two submissions of the same
1470814715command-buffer to a single out-of-order queue, without any events or barriers
1470914716used to express a dependency between the two enqueue calls. Using a single
1471014717in-order queue, events, or barriers to express dependencies between submissions
14711- of the same command-buffer would each be ways to avoid simultaneous use and are
14712- valid usage of command-buffers created without the
14713- {CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR} flag.
14718+ of the same command-buffer would each be ways to avoid simultaneous use.
1471414719====
1471514720
1471614721ifdef::cl_khr_command_buffer_multi_device[]
@@ -14820,13 +14825,15 @@ include::{generated}/api/version-notes/CL_COMMAND_BUFFER_FLAGS_KHR.asciidoc[]
1482014825 | {cl_command_buffer_flags_khr_TYPE}
1482114826 | This is a bitfield and can be set to a combination of the following values:
1482214827
14828+ ifdef::cl_khr_command_buffer_mutable_dispatch[]
1482314829 {CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR_anchor} - Allow multiple
1482414830 instances of the command-buffer to be scheduled for execution on the
1482514831 device in a usage pattern that exhibits <<simultaneous-use,
1482614832 simultaneous use>>. If set, devices must support
1482714833 {CL_COMMAND_BUFFER_CAPABILITY_SIMULTANEOUS_USE_KHR}.
1482814834
1482914835include::{generated}/api/version-notes/CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR.asciidoc[]
14836+ endif::cl_khr_command_buffer_mutable_dispatch[]
1483014837
1483114838ifdef::cl_khr_command_buffer_multi_device[]
1483214839 {CL_COMMAND_BUFFER_DEVICE_SIDE_SYNC_KHR_anchor} - All commands in the
@@ -15120,10 +15127,17 @@ execution was successfully queued, or one of the errors below:
1512015127 required by the OpenCL implementation on the host.
1512115128--
1512215129
15130+ ifndef::cl_khr_command_buffer_mutable_dispatch[]
15131+ Calling {clEnqueueCommandBufferKHR} in a usage pattern that exhbits
15132+ <<simultaneous-use, simultaneous use>> results in undefined behavior.
15133+ endif::cl_khr_command_buffer_mutable_dispatch[]
15134+
15135+ ifdef::cl_khr_command_buffer_mutable_dispatch[]
1512315136Calling {clEnqueueCommandBufferKHR} in a usage pattern that exhbits
1512415137<<simultaneous-use, simultaneous use>> when _command_buffer_ was not created
1512515138with the {CL_COMMAND_BUFFER_SIMULTANEOUS_USE_KHR} flag results in undefined
1512615139behavior.
15140+ endif::cl_khr_command_buffer_mutable_dispatch[]
1512715141
1512815142=== Recording Commands to a Command-Buffer
1512915143
0 commit comments