To submit command buffers to a queue, call:
VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
queue
is the queue that the command buffers will be submitted to.
submitCount
is the number of elements in the pSubmits
array.
pSubmits
is a pointer to an array of VkSubmitInfo
structures, each specifying a command buffer submission batch.
fence
is an optional handle to a fence to be signaled.
If fence
is not VK_NULL_HANDLE
, it defines a
fence signal operation.
![]() | Note |
---|---|
Submission can be a high overhead operation, and applications should
attempt to batch work together into as few calls to |
vkQueueSubmit
is a queue submission command, with each batch defined by an element of pSubmits
as an
instance of the VkSubmitInfo
structure.
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 VkSubmitInfo
structure is defined as:
typedef struct VkSubmitInfo { VkStructureType sType; const void* pNext; uint32_t waitSemaphoreCount; const VkSemaphore* pWaitSemaphores; const VkPipelineStageFlags* pWaitDstStageMask; uint32_t commandBufferCount; const VkCommandBuffer* pCommandBuffers; uint32_t signalSemaphoreCount; const VkSemaphore* pSignalSemaphores; } VkSubmitInfo;
sType
is the type of this structure.
pNext
is NULL
or a pointer to an extension-specific structure.
waitSemaphoreCount
is the number of semaphores upon which to wait
before executing the command buffers for the batch.
pWaitSemaphores
is a pointer to an array of semaphores upon which
to wait before the command buffers for this batch begin execution.
If semaphores to wait on are provided, they define a
semaphore wait operation.
pWaitDstStageMask
is a pointer to an array of pipeline stages at
which each corresponding semaphore wait will occur.
commandBufferCount
is the number of command buffers to execute in
the batch.
pCommandBuffers
is a pointer to an array of command buffers to
execute in the batch.
The command buffers submitted in a batch begin execution in the order
they appear in pCommandBuffers
, but may complete out of order.
signalSemaphoreCount
is the number of semaphores to be signaled
once the commands specified in pCommandBuffers
have completed
execution.
pSignalSemaphores
is a pointer to an array of semaphores which
will be signaled when the command buffers for this batch have completed
execution.
If semaphores to be signaled are provided, they define a
semaphore signal operation.