Package org.lwjgl.vulkan
Class KHRDescriptorUpdateTemplate
java.lang.Object
org.lwjgl.vulkan.KHRDescriptorUpdateTemplate
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
- Promoted to Vulkan 1.1
- Contact
- Markus Tavenrath mtavenrath
Other Extension Metadata
- Last Modified Date
- 2017-09-05
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- Interacts with
VK_KHR_push_descriptor
- Interacts with
- Contributors
- Jeff Bolz, NVIDIA
- Michael Worcester, Imagination Technologies
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkDebugReportObjectTypeEXT.static final intExtendsVkDescriptorUpdateTemplateType.static final intExtendsVkDescriptorUpdateTemplateType.static final StringThe extension name.static final intThe extension specification version.static final intExtendsVkObjectType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkCreateDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pDescriptorUpdateTemplate) Unsafe version of:CreateDescriptorUpdateTemplateKHRstatic voidnvkDestroyDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, long descriptorUpdateTemplate, long pAllocator) Unsafe version of:DestroyDescriptorUpdateTemplateKHRstatic voidvkCmdPushDescriptorSetWithTemplateKHR(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, long descriptorUpdateTemplate, long layout, int set, long pData) static intvkCreateDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, VkDescriptorUpdateTemplateCreateInfo pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pDescriptorUpdateTemplate) Array version of:CreateDescriptorUpdateTemplateKHRstatic intvkCreateDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, VkDescriptorUpdateTemplateCreateInfo pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pDescriptorUpdateTemplate) static voidvkDestroyDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, long descriptorUpdateTemplate, @Nullable VkAllocationCallbacks pAllocator) static voidvkUpdateDescriptorSetWithTemplateKHR(org.lwjgl.vulkan.VkDevice device, long descriptorSet, long descriptorUpdateTemplate, long pData)
-
Field Details
-
VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION
public static final int VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSIONThe extension specification version.- See Also:
-
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_KHRExtendsVkStructureType.- See Also:
-
VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR
public static final int VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHRExtendsVkObjectType.- See Also:
-
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR
public static final int VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHRExtendsVkDescriptorUpdateTemplateType.- See Also:
-
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
public static final int VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHRExtendsVkDescriptorUpdateTemplateType.- 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_EXTExtendsVkDebugReportObjectTypeEXT.- See Also:
-
-
Method Details
-
nvkCreateDescriptorUpdateTemplateKHR
public static int nvkCreateDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pDescriptorUpdateTemplate) Unsafe version of:CreateDescriptorUpdateTemplateKHR -
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 aVkDescriptorUpdateTemplateCreateInfostructure specifying the set of descriptors to update with a single call toCmdPushDescriptorSetWithTemplateorUpdateDescriptorSetWithTemplate.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.pDescriptorUpdateTemplate- a pointer to aVkDescriptorUpdateTemplatehandle in which the resulting descriptor update template object is returned.
-
nvkDestroyDescriptorUpdateTemplateKHR
public static void nvkDestroyDescriptorUpdateTemplateKHR(org.lwjgl.vulkan.VkDevice device, long descriptorUpdateTemplate, long pAllocator) Unsafe version of:DestroyDescriptorUpdateTemplateKHR -
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 templatedescriptorUpdateTemplate- 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 updatedescriptorUpdateTemplate- aVkDescriptorUpdateTemplateobject specifying the update mapping betweenpDataand the descriptor set to update.pData- a pointer to memory containing one or moreVkDescriptorImageInfo,VkDescriptorBufferInfo, orVkBufferViewstructures orVkAccelerationStructureKHRorVkAccelerationStructureNVhandles 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 inpData.layout- aVkPipelineLayoutobject used to program the bindings. It must be compatible with the layout used to create thedescriptorUpdateTemplatehandle.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 thedescriptorUpdateTemplatehandle.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) Array version of:CreateDescriptorUpdateTemplateKHR
-