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;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.flagsis a bitmask of VkSubmitFlagBits.waitSemaphoreInfoCountis the number of elements inpWaitSemaphoreInfos.pWaitSemaphoreInfosis a pointer to an array of VkSemaphoreSubmitInfo structures defining semaphore wait operations.commandBufferInfoCountis the number of elements inpCommandBufferInfosand the number of command buffers to execute in the batch.pCommandBufferInfosis a pointer to an array of VkCommandBufferSubmitInfo structures describing command buffers to execute in the batch.signalSemaphoreInfoCountis the number of elements inpSignalSemaphoreInfos.pSignalSemaphoreInfosis 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-VkSubmitInfo2-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-VkSubmitInfo2-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-VkSubmitInfo2-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-VkSubmitInfo2-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-VkSubmitInfo2-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 structure 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