VkBindSparseInfo
The VkBindSparseInfo structure is defined as:
typedef struct VkBindSparseInfo {
VkStructureType sType;
const void* pNext;
uint32_t waitSemaphoreCount;
const VkSemaphore* pWaitSemaphores;
uint32_t bufferBindCount;
const VkSparseBufferMemoryBindInfo* pBufferBinds;
uint32_t imageOpaqueBindCount;
const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
uint32_t imageBindCount;
const VkSparseImageMemoryBindInfo* pImageBinds;
uint32_t signalSemaphoreCount;
const VkSemaphore* pSignalSemaphores;
} VkBindSparseInfo;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.waitSemaphoreCountis the number of semaphores upon which to wait before executing the sparse binding operations for the batch.pWaitSemaphoresis a pointer to an array of semaphores upon which to wait on before the sparse binding operations for this batch begin execution. If semaphores to wait on are provided, they define a semaphore wait operation.bufferBindCountis the number of sparse buffer bindings to perform in the batch.pBufferBindsis a pointer to an array of VkSparseBufferMemoryBindInfo structures.imageOpaqueBindCountis the number of opaque sparse image bindings to perform.pImageOpaqueBindsis a pointer to an array of VkSparseImageOpaqueMemoryBindInfo structures, indicating opaque sparse image bindings to perform.imageBindCountis the number of sparse image bindings to perform.pImageBindsis a pointer to an array of VkSparseImageMemoryBindInfo structures, indicating sparse image bindings to perform.signalSemaphoreCountis the number of semaphores to be signaled once the sparse binding operations specified by the structure have completed execution.pSignalSemaphoresis a pointer to an array of semaphores which will be signaled when the sparse binding operations for this batch have completed execution. If semaphores to be signaled are provided, they define a semaphore signal operation.
Valid Usage
VUID-VkBindSparseInfo-pWaitSemaphores-03246
If any element of pWaitSemaphores or pSignalSemaphores was
created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE
then the pNext chain must include a
VkTimelineSemaphoreSubmitInfo structure
VUID-VkBindSparseInfo-pNext-03247
If the pNext chain of this structure includes a
VkTimelineSemaphoreSubmitInfo structure and any element of
pWaitSemaphores was created with a VkSemaphoreType of
VK_SEMAPHORE_TYPE_TIMELINE then its waitSemaphoreValueCount
member must equal waitSemaphoreCount
VUID-VkBindSparseInfo-pNext-03248
If the pNext chain of this structure includes a
VkTimelineSemaphoreSubmitInfo structure and any element of
pSignalSemaphores was created with a VkSemaphoreType of
VK_SEMAPHORE_TYPE_TIMELINE then its
signalSemaphoreValueCount member must equal
signalSemaphoreCount
VUID-VkBindSparseInfo-pSignalSemaphores-03249
For each element of pSignalSemaphores created with a
VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the
corresponding element of
VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must
have a value greater than the current value of the semaphore when the
semaphore signal operation is
executed
VUID-VkBindSparseInfo-pWaitSemaphores-03250
For each element of pWaitSemaphores created with a
VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the
corresponding element of
VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must
have a value which does not differ from the current value of the
semaphore or from the value of any outstanding semaphore wait or signal
operation on that semaphore by more than
maxTimelineSemaphoreValueDifference
VUID-VkBindSparseInfo-pSignalSemaphores-03251
For each element of pSignalSemaphores created with a
VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the
corresponding element of
VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must
have a value which does not differ from the current value of the
semaphore or from the value of any outstanding semaphore wait or signal
operation on that semaphore by more than
maxTimelineSemaphoreValueDifference
Valid Usage (Implicit)
VUID-VkBindSparseInfo-sType-sType
sType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
VUID-VkBindSparseInfo-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 VkDeviceGroupBindSparseInfo, VkFrameBoundaryEXT, or VkTimelineSemaphoreSubmitInfo
VUID-VkBindSparseInfo-sType-unique
The sType value of each structure in the pNext chain must be unique
VUID-VkBindSparseInfo-pWaitSemaphores-parameter
If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles
VUID-VkBindSparseInfo-pBufferBinds-parameter
If bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures
VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter
If imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures
VUID-VkBindSparseInfo-pImageBinds-parameter
If imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures
VUID-VkBindSparseInfo-pSignalSemaphores-parameter
If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles
VUID-VkBindSparseInfo-commonparent
Both of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice