C Specification

The VkPushDescriptorSetWithTemplateInfoKHR structure is defined as:

// Provided by VK_KHR_maintenance6 with VK_KHR_push_descriptor
typedef struct VkPushDescriptorSetWithTemplateInfoKHR {
    VkStructureType               sType;
    const void*                   pNext;
    VkDescriptorUpdateTemplate    descriptorUpdateTemplate;
    VkPipelineLayout              layout;
    uint32_t                      set;
    const void*                   pData;
} VkPushDescriptorSetWithTemplateInfoKHR;

Members

  • 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.

Description

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

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

See Also

Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0