Class KHRDescriptorUpdateTemplate

java.lang.Object
org.lwjgl.vulkan.KHRDescriptorUpdateTemplate

public class KHRDescriptorUpdateTemplate extends Object
Applications may wish to update a fixed set of descriptors in a large number of descriptor sets very frequently, i.e. during initialization phase or if it is required to rebuild descriptor sets for each frame. For those cases it is also not unlikely that all information required to update a single descriptor set is stored in a single struct. This extension provides a way to update a fixed set of descriptors in a single VkDescriptorSet with a pointer to an application-defined data structure describing the new descriptors.
Promotion to Vulkan 1.1

CmdPushDescriptorSetWithTemplateKHR is included as an interaction with VK_KHR_push_descriptor. If Vulkan 1.1 and VK_KHR_push_descriptor are supported, this is included by VK_KHR_push_descriptor.

The base functionality in this extension is included in core Vulkan 1.1, with the KHR suffix omitted. The original type, enum, and command names are still available as aliases of the core functionality.

Name String
VK_KHR_descriptor_update_template
Extension Type
Device extension
Registered Extension Number
86
Revision
1
API Interactions
  • Interacts with VK_EXT_debug_report
  • Interacts with VK_KHR_push_descriptor
Deprecation State
Contact
Other Extension Metadata
Last Modified Date
2017-09-05
IP Status
No known IP claims.
Interactions and External Dependencies
Contributors
  • Jeff Bolz, NVIDIA
  • Michael Worcester, Imagination Technologies
  • Field Details

    • VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION

      public static final int VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION
      The extension specification version.
      See Also:
    • VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME

      public static final String VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME
      The extension name.
      See Also:
    • VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR

      public static final int VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR
      Extends VkStructureType.
      See Also:
    • VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR

      public static final int VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR
      Extends VkObjectType.
      See Also:
    • VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR

      public static final int VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR
      Extends VkDescriptorUpdateTemplateType.
      See Also:
    • VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR

      public static final int VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
      Extends VkDescriptorUpdateTemplateType.
      See Also:
    • VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT

      public static final int VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
      Extends VkDebugReportObjectTypeEXT.
      See Also:
  • Method Details

    • nvkCreateDescriptorUpdateTemplateKHR

      public static int nvkCreateDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pDescriptorUpdateTemplate)
    • vkCreateDescriptorUpdateTemplateKHR

      public static int vkCreateDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, VkDescriptorUpdateTemplateCreateInfo pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pDescriptorUpdateTemplate)
      Parameters:
      device - the logical device that creates the descriptor update template.
      pCreateInfo - a pointer to a VkDescriptorUpdateTemplateCreateInfo structure specifying the set of descriptors to update with a single call to CmdPushDescriptorSetWithTemplate or UpdateDescriptorSetWithTemplate.
      pAllocator - controls host memory allocation as described in the Memory Allocation chapter.
      pDescriptorUpdateTemplate - a pointer to a VkDescriptorUpdateTemplate handle in which the resulting descriptor update template object is returned.
    • nvkDestroyDescriptorUpdateTemplateKHR

      public static void nvkDestroyDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, long descriptorUpdateTemplate, long pAllocator)
    • vkDestroyDescriptorUpdateTemplateKHR

      public static void vkDestroyDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, long descriptorUpdateTemplate, @Nullable VkAllocationCallbacks pAllocator)
      Parameters:
      device - the logical device that has been used to create the descriptor update template
      descriptorUpdateTemplate - the descriptor update template to destroy.
      pAllocator - controls host memory allocation as described in the Memory Allocation chapter.
    • vkUpdateDescriptorSetWithTemplateKHR

      public static void vkUpdateDescriptorSetWithTemplateKHR(org.lwjgl.vulkan.VkDevice device, long descriptorSet, long descriptorUpdateTemplate, long pData)
      Parameters:
      device - the logical device that updates the descriptor set.
      descriptorSet - the descriptor set to update
      descriptorUpdateTemplate - a VkDescriptorUpdateTemplate object specifying the update mapping between pData and the descriptor set to update.
      pData - a pointer to memory containing one or more VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView structures or VkAccelerationStructureKHR or VkAccelerationStructureNV handles used to write the descriptors.
    • vkCmdPushDescriptorSetWithTemplateKHR

      public static void vkCmdPushDescriptorSetWithTemplateKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long descriptorUpdateTemplate, long layout, int set, long pData)
      Parameters:
      commandBuffer - the command buffer that the descriptors will be recorded in.
      descriptorUpdateTemplate - a descriptor update template defining how to interpret the descriptor information in pData.
      layout - a VkPipelineLayout object used to program the bindings. It must be compatible with the layout used to create the descriptorUpdateTemplate handle.
      set - 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 - a pointer to memory containing descriptors for the templated update.
    • vkCreateDescriptorUpdateTemplateKHR

      public static int vkCreateDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, VkDescriptorUpdateTemplateCreateInfo pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pDescriptorUpdateTemplate)