VkPushDescriptorSetWithTemplateInfoKHR
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
isNULL
or a pointer to a structure extending this structure.descriptorUpdateTemplate
is a descriptor update template defining how to interpret the descriptor information inpData
.layout
is a VkPipelineLayout object used to program the bindings. It must be compatible with the layout used to create thedescriptorUpdateTemplate
handle. If thedynamicPipelineLayout
feature is enabled,layout
can be VK_NULL_HANDLE and the layout must be specified by chaining VkPipelineLayoutCreateInfo structure off thepNext
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 thedescriptorUpdateTemplate
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
VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-09496
If layout
is VK_NULL_HANDLE, the pNext
chain must
include a valid VkPipelineLayoutCreateInfo structure
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-descriptorUpdateTemplate-parameter
descriptorUpdateTemplate
must be a valid VkDescriptorUpdateTemplate handle
VUID-VkPushDescriptorSetWithTemplateInfoKHR-layout-parameter
If layout
is not VK_NULL_HANDLE, layout
must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetWithTemplateInfoKHR-pData-parameter
pData
must be a pointer value
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