VkDescriptorSetAllocateInfo
The VkDescriptorSetAllocateInfo structure is defined as:
typedef struct VkDescriptorSetAllocateInfo {
VkStructureType sType;
const void* pNext;
VkDescriptorPool descriptorPool;
uint32_t descriptorSetCount;
const VkDescriptorSetLayout* pSetLayouts;
} VkDescriptorSetAllocateInfo;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.descriptorPoolis the pool which the sets will be allocated from.descriptorSetCountdetermines the number of descriptor sets to be allocated from the pool.pSetLayoutsis a pointer to an array of descriptor set layouts, with each member specifying how the corresponding descriptor set is allocated.
Valid Usage
VUID-VkDescriptorSetAllocateInfo-apiVersion-07895
If the VK_KHR_maintenance1 extension is not enabled and
VkPhysicalDeviceProperties::apiVersion is less than Vulkan
1.1,
descriptorSetCount must not be greater than the number of sets
that are currently available for allocation in descriptorPool
VUID-VkDescriptorSetAllocateInfo-apiVersion-07896
If the VK_KHR_maintenance1 extension is not enabled and
VkPhysicalDeviceProperties::apiVersion is less than Vulkan
1.1,
descriptorPool must have enough free descriptor capacity
remaining to allocate the descriptor sets of the specified layouts
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308
Each element of pSetLayouts must not have been created with
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044
If any element of pSetLayouts was created with the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
set, descriptorPool must have been created with the
VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380
If pSetLayouts[i] was created with an element of
pBindingFlags that includes
VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, and
VkDescriptorSetVariableDescriptorCountAllocateInfo is included in
the pNext chain, and
VkDescriptorSetVariableDescriptorCountAllocateInfo::descriptorSetCount
is not zero, then
VkDescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts[i]
must be less than or equal to
VkDescriptorSetLayoutBinding::descriptorCount for the
corresponding binding used to create pSetLayouts[i]
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610
If any element of pSetLayouts was created with the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT bit set,
descriptorPool must have been created with the
VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT flag set
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-08009
Each element of pSetLayouts must not have been created with the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT bit set
Valid Usage (Implicit)
VUID-VkDescriptorSetAllocateInfo-sType-sType
sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
VUID-VkDescriptorSetAllocateInfo-pNext-pNext
pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo
VUID-VkDescriptorSetAllocateInfo-sType-unique
The sType value of each structure in the pNext chain must be unique
VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameter
descriptorPool must be a valid VkDescriptorPool handle
VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter
pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles
VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength
descriptorSetCount must be greater than 0
VUID-VkDescriptorSetAllocateInfo-commonparent
Both of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice