VkDescriptorUpdateTemplateCreateInfo
The VkDescriptorUpdateTemplateCreateInfo structure is defined as:
typedef struct VkDescriptorUpdateTemplateCreateInfo {
VkStructureType sType;
const void* pNext;
VkDescriptorUpdateTemplateCreateFlags flags;
uint32_t descriptorUpdateEntryCount;
const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
VkDescriptorUpdateTemplateType templateType;
VkDescriptorSetLayout descriptorSetLayout;
VkPipelineBindPoint pipelineBindPoint;
VkPipelineLayout pipelineLayout;
uint32_t set;
} VkDescriptorUpdateTemplateCreateInfo;
or the equivalent
typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.flags
is reserved for future use.descriptorUpdateEntryCount
is the number of elements in thepDescriptorUpdateEntries
array.pDescriptorUpdateEntries
is a pointer to an array of VkDescriptorUpdateTemplateEntry structures describing the descriptors to be updated by the descriptor update template.templateType
Specifies the type of the descriptor update template. If set toVK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
it can only be used to update descriptor sets with a fixeddescriptorSetLayout
. If set toVK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
it can only be used to push descriptor sets using the providedpipelineBindPoint
,pipelineLayout
, andset
number.descriptorSetLayout
is the descriptor set layout used to build the descriptor update template. All descriptor sets which are going to be updated through the newly created descriptor update template must be created with a layout that matches (is the same as, or defined identically to) this layout. This parameter is ignored iftemplateType
is notVK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
.pipelineBindPoint
is a VkPipelineBindPoint indicating the type of the pipeline that will use the descriptors. This parameter is ignored iftemplateType
is notVK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
pipelineLayout
is a VkPipelineLayout object used to program the bindings. This parameter is ignored iftemplateType
is notVK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
set
is the set number of the descriptor set in the pipeline layout that will be updated. This parameter is ignored iftemplateType
is notVK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
Valid Usage
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350
If templateType
is
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
,
descriptorSetLayout
must be a valid VkDescriptorSetLayout
handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351
If templateType
is
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
,
pipelineBindPoint
must be a valid VkPipelineBindPoint value
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352
If templateType
is
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
,
pipelineLayout
must be a valid VkPipelineLayout
handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353
If templateType
is
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
, set
must be the unique set number in the pipeline layout that uses a
descriptor set layout that was created with
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-04615
If templateType
is
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
,
descriptorSetLayout
must not contain a binding with type
VK_DESCRIPTOR_TYPE_MUTABLE_EXT
Valid Usage (Implicit)
VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType
sType
must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO
VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNext
pNext
must be NULL
VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask
flags
must be 0
VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter
pDescriptorUpdateEntries
must be a valid pointer to an array of descriptorUpdateEntryCount
valid VkDescriptorUpdateTemplateEntry structures
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameter
templateType
must be a valid VkDescriptorUpdateTemplateType value
VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylength
descriptorUpdateEntryCount
must be greater than 0
VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent
Both of descriptorSetLayout
, and pipelineLayout
that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice