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;
pub struct SubmitInfo2 {
s_type: vk::StructureType,
p_next: *const c_void,
flags: vk::SubmitFlags,
wait_semaphore_info_count: u32,
p_wait_semaphore_infos: *const vk::SemaphoreSubmitInfo,
command_buffer_info_count: u32,
p_command_buffer_infos: *const vk::CommandBufferSubmitInfo,
signal_semaphore_info_count: u32,
p_signal_semaphore_infos: *const vk::SemaphoreSubmitInfo,
}
typedef VkSubmitInfo2 VkSubmitInfo2KHR;
type SubmitInfo2KHR = vk::SubmitInfo2;
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-flags-03886
If flags includes VK_SUBMIT_PROTECTED_BIT, all elements of
pCommandBuffers must be protected command buffers
VUID-VkSubmitInfo2-flags-03887
If flags does not include VK_SUBMIT_PROTECTED_BIT, each
element of pCommandBuffers must not be a protected command buffer
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
VUID-VkSubmitInfo2-pNext-09682
If the pNext chain of this structure includes a
VkFrameBoundaryTensorsARM structure then it must also include a
VkFrameBoundaryEXT structure
VUID-VkSubmitInfo2-pCommandBufferInfos-09933
If at least one VkCommandBufferSubmitInfo structure in
pCommandBufferInfos references a commandBuffer allocated
from a pool that was created with a
VkDataGraphProcessingEngineCreateInfoARM structure in the
pNext chain of VkCommandPoolCreateInfo that included a
foreign data graph processing engine in its pProcessingEngines
member, then pWaitSemaphoreInfos and pSignalSemaphoreInfosmust only reference semaphore objects that were created from
external handle types reported as supported in a
VkQueueFamilyDataGraphProcessingEnginePropertiesARM::foreignSemaphoreHandleTypes
structure via
vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM
with a queueFamilyIndex matching the one the command pool was
created for, for all the foreign data graph processing engines that were
part of the VkDataGraphProcessingEngineCreateInfoARM used to
create the command pool
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, VkFrameBoundaryTensorsARM, 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