To submit command buffers to a queue, call:
// Provided by VK_VERSION_1_0 VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
queueis the queue that the command buffers will be submitted to.
submitCountis the number of elements in the
pSubmitsis a pointer to an array of VkSubmitInfo structures, each specifying a command buffer submission batch.
fenceis an optional handle to a fence to be signaled once all submitted command buffers have completed execution. If
fenceis not VK_NULL_HANDLE, it defines a fence signal operation.
vkQueueSubmit is a queue submission
command, with each batch defined by an element of
Batches begin execution in the order they appear in
pSubmits, but may
complete out of order.
Fence and semaphore operations submitted with vkQueueSubmit have additional ordering constraints compared to other submission commands, with dependencies involving previous and subsequent queue operations. Information about these additional constraints can be found in the semaphore and fence sections of the synchronization chapter.
Details on the interaction of
pWaitDstStageMask with synchronization
are described in the semaphore wait
operation section of the synchronization chapter.
The order that batches appear in
pSubmits is used to determine
submission order, and thus all the
implicit ordering guarantees that respect it.
Other than these implicit ordering guarantees and any explicit synchronization primitives, these batches may overlap or
otherwise execute out of order.
If any command buffer submitted to this queue is in the
executable state, it is moved to the
Once execution of all submissions of a command buffer complete, it moves
from the pending state, back to the
If a command buffer was recorded with the
VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT flag, it instead moves to
the invalid state.
vkQueueSubmit fails, it may return
If it does, the implementation must ensure that the state and contents of
any resources or synchronization primitives referenced by the submitted
command buffers and any semaphores referenced by
unaffected by the call or its failure.
vkQueueSubmit fails in such a way that the implementation is unable
to make that guarantee, the implementation must return
See Lost Device.
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.