Structures

VkPushDescriptorSetWithTemplateInfo

Structure specifying a descriptor set push operation using a descriptor update template

The VkPushDescriptorSetWithTemplateInfo structure is defined as:

typedef struct VkPushDescriptorSetWithTemplateInfo {
    VkStructureType sType;
    const void* pNext;
    VkDescriptorUpdateTemplate descriptorUpdateTemplate;
    VkPipelineLayout layout;
    uint32_t set;
    const void* pData;
} VkPushDescriptorSetWithTemplateInfo;

or the equivalent

typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
  • sType is a VkStructureType value identifying this structure.
  • pNext is NULL or a pointer to a structure extending this structure.
  • descriptorUpdateTemplate is a descriptor update template defining how to interpret the descriptor information in pData.
  • layout is a VkPipelineLayout object used to program the bindings. It must be compatible with the layout used to create the descriptorUpdateTemplate handle. If the dynamicPipelineLayout feature is enabled, layout can be VK_NULL_HANDLE and the layout must be specified by chaining VkPipelineLayoutCreateInfo structure off the pNext
  • set is the set number of the descriptor set in the pipeline layout that will be updated. This must be the same number used to create the descriptorUpdateTemplate handle.
  • pData is a pointer to memory containing descriptors for the templated update.

Valid Usage

VUID-VkPushDescriptorSetWithTemplateInfo-commandBuffer-00366

The pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer’s parent VkCommandPool’s queue family

VUID-VkPushDescriptorSetWithTemplateInfo-pData-01686

pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate

VUID-VkPushDescriptorSetWithTemplateInfo-layout-07993

layout must be compatible with the layout used to create descriptorUpdateTemplate

VUID-VkPushDescriptorSetWithTemplateInfo-descriptorUpdateTemplate-07994

descriptorUpdateTemplate must have been created with a templateType of VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS

VUID-VkPushDescriptorSetWithTemplateInfo-set-07995

set must be the same value used to create descriptorUpdateTemplate

VUID-VkPushDescriptorSetWithTemplateInfo-set-07304

set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created

VUID-VkPushDescriptorSetWithTemplateInfo-set-07305

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

VUID-VkPushDescriptorSetWithTemplateInfo-None-09495

If the dynamicPipelineLayout feature is not enabled, layout must be a valid VkPipelineLayout handle

VUID-VkPushDescriptorSetWithTemplateInfo-layout-09496

If layout is VK_NULL_HANDLE, the pNext chain must include a valid VkPipelineLayoutCreateInfo structure

Valid Usage (Implicit)

VUID-VkPushDescriptorSetWithTemplateInfo-sType-sType

sType must be VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO

VUID-VkPushDescriptorSetWithTemplateInfo-pNext-pNext

pNext must be NULL or a pointer to a valid instance of VkPipelineLayoutCreateInfo

VUID-VkPushDescriptorSetWithTemplateInfo-sType-unique

The sType value of each structure in the pNext chain must be unique

VUID-VkPushDescriptorSetWithTemplateInfo-commonparent

Both of descriptorUpdateTemplate, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice