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;
- sTypeis a VkStructureType value identifying this structure.
- pNextis- NULLor a pointer to a structure extending this structure.
- flagsis reserved for future use.
- descriptorUpdateEntryCountis the number of elements in the- pDescriptorUpdateEntriesarray.
- pDescriptorUpdateEntriesis a pointer to an array of VkDescriptorUpdateTemplateEntry structures describing the descriptors to be updated by the descriptor update template.
- templateTypeSpecifies the type of the descriptor update template. If set to- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SETit can only be used to update descriptor sets with a fixed- descriptorSetLayout. If set to- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORSit can only be used to push descriptor sets using the provided- pipelineBindPoint,- pipelineLayout, and- setnumber.
- descriptorSetLayoutis 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 if- templateTypeis not- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET.
- pipelineBindPointis a VkPipelineBindPoint indicating the type of the pipeline that will use the descriptors. This parameter is ignored if- templateTypeis not- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS
- pipelineLayoutis a VkPipelineLayout object used to program the bindings. This parameter is ignored if- templateTypeis not- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS
- setis the set number of the descriptor set in the pipeline layout that will be updated. This parameter is ignored if- templateTypeis not- VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS
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,
pipelineBindPoint must be a valid VkPipelineBindPoint value
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352
If templateType is
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
pipelineLayout must be a valid VkPipelineLayout handle
VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353
If templateType is
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS, setmust 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
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