VK_KHR_maintenance4
Other Extension Metadata
Last Modified Date
2021-10-25
Interactions and External Dependencies
- Requires SPIR-V 1.2 for
LocalSizeId
Contributors
- Lionel Duc, NVIDIA
- Faith Ekstrand, Intel
- Spencer Fricke, Samsung
- Tobias Hector, AMD
- Lionel Landwerlin, Intel
- Graeme Leese, Broadcom
- Tom Olson, Arm
- Stu Smith, AMD
- Yiwei Zhang, Google
Description
VK_KHR_maintenance4 adds a collection of minor features, none of which
would warrant an entire extension of their own.
The new features are as follows:
- Allow the application to destroy their VkPipelineLayout object immediately after it was used to create another object. It is no longer necessary to keep its handle valid while the created object is in use.
- Add a new
maxBufferSizeimplementation-defined limit for the maximum sizeVkBufferthat can be created. - Add support for the SPIR-V 1.2
LocalSizeIdexecution mode, which can be used as an alternative toLocalSizeto specify the local workgroup size with specialization constants. - Add a guarantee that images created with identical creation parameters will always have the same alignment requirements.
- Add new vkGetDeviceBufferMemoryRequirementsKHR, vkGetDeviceImageMemoryRequirementsKHR, and vkGetDeviceImageSparseMemoryRequirementsKHR to allow the application to query the image memory requirements without having to create an image object and query it.
- Relax the requirement that push constants must be initialized before they are dynamically accessed.
- Relax the interface matching rules to allow a larger output vector to match with a smaller input vector, with additional values being discarded.
- Add a guarantee for buffer memory requirement that the size memory requirement is never greater than the result of aligning create size with the alignment memory requirement.
New Commands
- vkGetDeviceBufferMemoryRequirementsKHR
- vkGetDeviceImageMemoryRequirementsKHR
- vkGetDeviceImageSparseMemoryRequirementsKHR
New Structures
- VkDeviceBufferMemoryRequirementsKHR
- VkDeviceImageMemoryRequirementsKHR
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- Extending VkPhysicalDeviceProperties2:
New Enum Constants
VK_KHR_MAINTENANCE_4_EXTENSION_NAMEVK_KHR_MAINTENANCE_4_SPEC_VERSION- Extending VkImageAspectFlagBits:
VK_IMAGE_ASPECT_NONE_KHR
- Extending VkStructureType:
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHRVK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHRVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHRVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR
Promotion to Vulkan 1.3
Vulkan APIs in this extension are included in core Vulkan 1.3, with the KHR suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
Issues
None.
Version History
- Revision 1, 2021-08-18 (Piers Daniell)
- Internal revisions
- Revision 2, 2021-10-25 (Yiwei Zhang)
- More guarantees on buffer memory requirements