VK_VALVE_mutable_descriptor_type
Other Extension Metadata
Last Modified Date
2020-12-02
IP Status
No known IP claims.
Contributors
- Joshua Ashton, Valve
- Hans-Kristian Arntzen, Valve
Description
This extension allows applications to reduce descriptor memory footprint by allowing a descriptor to be able to mutate to a given list of descriptor types depending on which descriptor types are written into, or copied into a descriptor set.
The main use case this extension intends to address is descriptor indexing
with VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
where the
descriptor types are completely generic, as this means applications can
allocate one large descriptor set, rather than having one large descriptor
set per descriptor type, which significantly bloats descriptor memory usage
and causes performance issues.
This extension also adds a mechanism to declare that a descriptor pool, and therefore the descriptor sets that are allocated from it, reside only in host memory; as such these descriptors can only be updated/copied, but not bound.
These features together allow much more efficient emulation of the raw D3D12 binding model. This extension is primarily intended to be useful for API layering efforts.
New Structures
- VkMutableDescriptorTypeListVALVE
- Extending VkDescriptorSetLayoutCreateInfo, VkDescriptorPoolCreateInfo:
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
New Enum Constants
VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME
VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION
- Extending VkDescriptorPoolCreateFlagBits:
VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE
- Extending VkDescriptorSetLayoutCreateFlagBits:
VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE
- Extending VkDescriptorType:
VK_DESCRIPTOR_TYPE_MUTABLE_VALVE
- Extending VkStructureType:
VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE
Version History
- Revision 1, 2020-12-01 (Joshua Ashton, Hans-Kristian Arntzen)
- Initial specification, squashed from public draft.