Structures

VkPushDescriptorSetWithTemplateInfoKHR

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

The VkPushDescriptorSetWithTemplateInfoKHR structure is defined as:

typedef struct VkPushDescriptorSetWithTemplateInfoKHR {
    VkStructureType sType;
    const void* pNext;
    VkDescriptorUpdateTemplate descriptorUpdateTemplate;
    VkPipelineLayout layout;
    uint32_t set;
    const void* pData;
} 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-VkPushDescriptorSetWithTemplateInfoKHR-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-VkPushDescriptorSetWithTemplateInfoKHR-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-VkPushDescriptorSetWithTemplateInfoKHR-layout-07993

layout must be compatible with the layout used to create descriptorUpdateTemplate

VUID-VkPushDescriptorSetWithTemplateInfoKHR-descriptorUpdateTemplate-07994

descriptorUpdateTemplate must have been created with a templateType of VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR

VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07995

set must be the same value used to create descriptorUpdateTemplate

VUID-VkPushDescriptorSetWithTemplateInfoKHR-set-07304

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

VUID-VkPushDescriptorSetWithTemplateInfoKHR-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_KHR

VUID-VkPushDescriptorSetWithTemplateInfoKHR-None-09495

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

Valid Usage (Implicit)

VUID-VkPushDescriptorSetWithTemplateInfoKHR-sType-sType

sType must be VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR

VUID-VkPushDescriptorSetWithTemplateInfoKHR-pNext-pNext

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

VUID-VkPushDescriptorSetWithTemplateInfoKHR-sType-unique

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

VUID-VkPushDescriptorSetWithTemplateInfoKHR-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