Structures
VkDescriptorUpdateTemplateEntry
Describes a single descriptor update of the descriptor update template
The VkDescriptorUpdateTemplateEntry structure is defined as:
typedef struct VkDescriptorUpdateTemplateEntry {
uint32_t dstBinding;
uint32_t dstArrayElement;
uint32_t descriptorCount;
VkDescriptorType descriptorType;
size_t offset;
size_t stride;
} VkDescriptorUpdateTemplateEntry;
or the equivalent
typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
dstBindingis the descriptor binding to update when using this descriptor update template.dstArrayElementis the starting element in the array belonging todstBinding. If the descriptor binding identified bydstBindinghas a descriptor type ofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCKthendstArrayElementspecifies the starting byte offset to update.descriptorCountis the number of descriptors to update. IfdescriptorCountis greater than the number of remaining array elements in the destination binding, those affect consecutive bindings in a manner similar to VkWriteDescriptorSet above. If the descriptor binding identified bydstBindinghas a descriptor type ofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCKthendescriptorCountspecifies the number of bytes to update and the remaining array elements in the destination binding refer to the remaining number of bytes in it.descriptorTypeis a VkDescriptorType specifying the type of the descriptor.offsetis the offset in bytes of the first binding in the raw data structure.strideis the stride in bytes between two consecutive array elements of the descriptor update information in the raw data structure. The actual pointer ptr for each array element j of update entry i is computed using the following formula:const char *ptr = (const char *)pData + pDescriptorUpdateEntries[i].offset + j * pDescriptorUpdateEntries[i].stride
The stride is useful in case the bindings are stored in structs along with other data. IfdescriptorTypeisVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCKthen the value ofstrideis ignored and the stride is assumed to be1, i.e. the descriptor update information for them is always specified as a contiguous range.
Valid Usage
VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354
dstBinding must be a valid binding in the descriptor set layout
implicitly specified when using a descriptor update template to update
descriptors
VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355
dstArrayElement and descriptorCount must be less than or
equal to the number of array elements in the descriptor set binding
implicitly specified when using a descriptor update template to update
descriptors, and all applicable consecutive bindings
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226
If descriptor type is
VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, dstArrayElementmust be an integer multiple of 4
VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227
If descriptor type is
VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, descriptorCountmust be an integer multiple of 4
Valid Usage (Implicit)
VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter
descriptorType must be a valid VkDescriptorType value