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;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.waitSemaphoreCount
is the number of semaphores upon which to wait before executing the sparse binding operations for the batch.pWaitSemaphores
is 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.bufferBindCount
is the number of sparse buffer bindings to perform in the batch.pBufferBinds
is a pointer to an array of VkSparseBufferMemoryBindInfo structures.imageOpaqueBindCount
is the number of opaque sparse image bindings to perform.pImageOpaqueBinds
is a pointer to an array of VkSparseImageOpaqueMemoryBindInfo structures, indicating opaque sparse image bindings to perform.imageBindCount
is the number of sparse image bindings to perform.pImageBinds
is a pointer to an array of VkSparseImageMemoryBindInfo structures, indicating sparse image bindings to perform.signalSemaphoreCount
is the number of semaphores to be signaled once the sparse binding operations specified by the structure have completed execution.pSignalSemaphores
is 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 struct 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