VK_KHR_maintenance9(3)

# VK_KHR_maintenance9(3) Manual Page

## Name

VK_KHR_maintenance9 - device extension

## Registered Extension Number

585

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1

## Contact

- Mike Blumenkrantz [GitHub]zmike

## Extension Proposal

VK_KHR_maintenance9

## Other Extension Metadata

Last Modified Date

  2025-05-29

Interactions and External Dependencies
Contributors

  - Mike Blumenkrantz, Valve

  - Shahbaz Youssefi, Google

  - Hans-Kristian Arntzen, Valve

  - Piers Daniell, NVIDIA

  - Daniel Story, Nintendo

  - Jeff Bolz, NVIDIA

## Description

VK_KHR_maintenance9 adds a collection of minor features, none of which would warrant an entire extension of their own.

The new features are as follows:

- Support VkDevice with no queues. These can be used as effectively an offline compiler to prepopulate pipeline caches, without expensive queue creation or internal memory allocations.

- Allow `vkCmdSetEvent2` to not provide a dependency, providing `vkCmdSetEvent`-style usage using enums from `VK_KHR_synchronization2`

- Add a VkQueryPoolCreateFlagBits::VK_QUERY_POOL_CREATE_RESET_BIT_KHR flag to create a query pool with all queries initialized to the reset state.

- Allow any integer bit width for specific bit-wise operations.

- Add a property to enable sparse support with `VK_EXT_image_2d_view_of_3d`.

- Add a property to indicate the implementation will return (0,0,0,0) or (0,0,0,1) to vertex shaders that read unassigned attributes.

- The effects of image memory barriers and image layout transitions on 3D images created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT are scoped to the slices specified by the user-provided VkImageSubresourceRange.

- Queue family ownership transfers are no longer required for buffers and linear images, and a new physical device queue family property is exposed to indicate whether queue family ownership transfers are required for optimal images.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceMaintenance9FeaturesKHR

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceMaintenance9PropertiesKHR

- Extending VkQueueFamilyProperties2:

  - VkQueueFamilyOwnershipTransferPropertiesKHR

## New Enums

- VkDefaultVertexAttributeValueKHR

## New Enum Constants

- `VK_KHR_MAINTENANCE_9_EXTENSION_NAME`

- `VK_KHR_MAINTENANCE_9_SPEC_VERSION`

- Extending VkDependencyFlagBits:

  - VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR

- Extending VkQueryPoolCreateFlagBits:

  - VK_QUERY_POOL_CREATE_RESET_BIT_KHR

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR

  - VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR

## Issues

None.

## Version History

- Revision 1, 2025-05-29 (Contributors)

  - Internal revisions

## See Also

No cross-references are available

## Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0