VkSubmitInfo2
The VkSubmitInfo2
structure is defined as:
typedef struct VkSubmitInfo2 {
VkStructureType sType;
const void* pNext;
VkSubmitFlags flags;
uint32_t waitSemaphoreInfoCount;
const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos;
uint32_t commandBufferInfoCount;
const VkCommandBufferSubmitInfo* pCommandBufferInfos;
uint32_t signalSemaphoreInfoCount;
const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos;
} VkSubmitInfo2;
or the equivalent
typedef VkSubmitInfo2 VkSubmitInfo2KHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.flags
is a bitmask of VkSubmitFlagBits.waitSemaphoreInfoCount
is the number of elements inpWaitSemaphoreInfos
.pWaitSemaphoreInfos
is a pointer to an array of VkSemaphoreSubmitInfo structures defining semaphore wait operations.commandBufferInfoCount
is the number of elements inpCommandBufferInfos
and the number of command buffers to execute in the batch.pCommandBufferInfos
is a pointer to an array of VkCommandBufferSubmitInfo structures describing command buffers to execute in the batch.signalSemaphoreInfoCount
is the number of elements inpSignalSemaphoreInfos
.pSignalSemaphoreInfos
is a pointer to an array of VkSemaphoreSubmitInfo describing semaphore signal operations.
Valid Usage
VUID-VkSubmitInfo2-semaphore-03881
If the same semaphore is used as the semaphore
member of both an
element of pSignalSemaphoreInfos
and pWaitSemaphoreInfos
,
and that semaphore is a timeline semaphore, the value
member of
the pSignalSemaphoreInfos
element must be greater than the
value
member of the pWaitSemaphoreInfos
element
VUID-VkSubmitInfo2-semaphore-03882
If the semaphore
member of any element of
pSignalSemaphoreInfos
is a timeline semaphore, the value
member of that element must have a value greater than the current value
of the semaphore when the semaphore signal operation is executed
VUID-VkSubmitInfo2-semaphore-03883
If the semaphore
member of any element of
pSignalSemaphoreInfos
is a timeline semaphore, the value
member of that element must have a value which does not differ from the
current value of the semaphore or the value of any outstanding semaphore
wait or signal operation on that semaphore by more than
maxTimelineSemaphoreValueDifference
VUID-VkSubmitInfo2-semaphore-03884
If the semaphore
member of any element of
pWaitSemaphoreInfos
is a timeline semaphore, the value
member of that element must have a value which does not differ from the
current value of the semaphore or the value of any outstanding semaphore
wait or signal operation on that semaphore by more than
maxTimelineSemaphoreValueDifference
VUID-VkSubmitInfo2KHR-commandBuffer-06192
If any commandBuffer
member of an element of
pCommandBufferInfos
contains any resumed
render pass instances, they must be suspended by a render pass
instance earlier in submission order within pCommandBufferInfos
VUID-VkSubmitInfo2KHR-commandBuffer-06010
If any commandBuffer
member of an element of
pCommandBufferInfos
contains any suspended
render pass instances, they must be resumed by a render pass instance
later in submission order within pCommandBufferInfos
VUID-VkSubmitInfo2KHR-commandBuffer-06011
If any commandBuffer
member of an element of
pCommandBufferInfos
contains any suspended
render pass instances, there must be no action or synchronization
commands between that render pass instance and the render pass instance
that resumes it
VUID-VkSubmitInfo2KHR-commandBuffer-06012
If any commandBuffer
member of an element of
pCommandBufferInfos
contains any suspended
render pass instances, there must be no render pass instances between
that render pass instance and the render pass instance that resumes it
VUID-VkSubmitInfo2KHR-variableSampleLocations-06013
If the variableSampleLocations
limit is not supported, and any commandBuffer
member of an element
of pCommandBufferInfos
contains any suspended render pass instances, where a graphics pipeline has been
bound, any pipelines bound in the render pass instance that resumes it,
or any subsequent render pass instances that resume from that one and so
on, must use the same sample locations
Valid Usage (Implicit)
VUID-VkSubmitInfo2-sType-sType
sType
must be VK_STRUCTURE_TYPE_SUBMIT_INFO_2
VUID-VkSubmitInfo2-pNext-pNext
Each pNext
member of any structure (including this one) in the pNext
chain must be either NULL
or a pointer to a valid instance of VkFrameBoundaryEXT, VkLatencySubmissionPresentIdNV, VkPerformanceQuerySubmitInfoKHR, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV
VUID-VkSubmitInfo2-sType-unique
The sType
value of each struct in the pNext
chain must be unique
VUID-VkSubmitInfo2-flags-parameter
flags
must be a valid combination of VkSubmitFlagBits values
VUID-VkSubmitInfo2-pWaitSemaphoreInfos-parameter
If waitSemaphoreInfoCount
is not 0
, pWaitSemaphoreInfos
must be a valid pointer to an array of waitSemaphoreInfoCount
valid VkSemaphoreSubmitInfo structures
VUID-VkSubmitInfo2-pCommandBufferInfos-parameter
If commandBufferInfoCount
is not 0
, pCommandBufferInfos
must be a valid pointer to an array of commandBufferInfoCount
valid VkCommandBufferSubmitInfo structures
VUID-VkSubmitInfo2-pSignalSemaphoreInfos-parameter
If signalSemaphoreInfoCount
is not 0
, pSignalSemaphoreInfos
must be a valid pointer to an array of signalSemaphoreInfoCount
valid VkSemaphoreSubmitInfo structures