VK_KHR_maintenance11(3)

# VK_KHR_maintenance11(3) Manual Page

## Name

VK_KHR_maintenance11 - device extension

## Registered Extension Number

658

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1

## API Interactions

- Interacts with VK_EXT_mesh_shader

- Interacts with VK_EXT_shader_object

- Interacts with VK_KHR_extended_flags

- Interacts with VK_NV_mesh_shader

## Contact

- Mike Blumenkrantz [GitHub]zmike

## Extension Proposal

VK_KHR_maintenance11

## Other Extension Metadata

Last Modified Date

  2025-09-09

Interactions and External Dependencies
Contributors

  - Mike Blumenkrantz, Valve

  - Piers Daniell, NVIDIA

  - Hans-Kristian Arntzen, Valve

  - Caterina Shablia, Collabora

## Description

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

The new features are as follows:

- Add D3D compatibility for mismatch between `Arrayed` in shaders and the arrayness of the underlying descriptor when the descriptor contains a single array layer

- Clarify the pipeline depth clipping state when the pipeline is created without VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT being set and the VkPipelineRasterizationDepthClipStateCreateInfoEXT struct is not present

- Add VK_SHADER_CREATE_INDEPENDENT_SETS_BIT_KHR to enable shader object functionality to mimic VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT used for graphics pipeline libraries, including a new pipeline layout creation flag VK_PIPELINE_LAYOUT_CREATE_NO_TASK_SHADER_BIT_KHR to ensure pipeline layouts used with shader objects also created with VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT to be compatible

- Allow `queueFamilyIndexCount` of 1 in VkBufferCreateInfo, VkPhysicalDeviceImageDrmFormatModifierInfoEXT, VkTensorCreateInfoARM, and VkImageCreateInfo, when `sharingMode` is VK_SHARING_MODE_CONCURRENT.

- Require `minImageTransferGranularity` to be (1,1,1) even on transfer-only queues and add `optimalImageTransferGranularity` queue family property to communicate the performance bump for copies not aligned to the optimal granularity.

- When copying between a buffer and an image on a transfer-only queue, do not require `bufferOffset` to be a multiple of 4.

## New Structures

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceMaintenance11FeaturesKHR

- Extending VkQueueFamilyProperties2:

  - VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR

## New Enum Constants

- `VK_KHR_MAINTENANCE_11_EXTENSION_NAME`

- `VK_KHR_MAINTENANCE_11_SPEC_VERSION`

- Extending VkImageCreateFlagBits:

  - VK_IMAGE_CREATE_ALIAS_SINGLE_LAYER_DESCRIPTOR_BIT_KHR

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_11_FEATURES_KHR

  - VK_STRUCTURE_TYPE_QUEUE_FAMILY_OPTIMAL_IMAGE_TRANSFER_GRANULARITY_PROPERTIES_KHR

If VK_EXT_shader_object is supported:

- Extending VkPipelineLayoutCreateFlagBits:

  - VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT

- Extending VkShaderCreateFlagBitsEXT:

  - VK_SHADER_CREATE_INDEPENDENT_SETS_BIT_KHR

If VK_EXT_shader_object and VK_EXT_mesh_shader or VK_NV_mesh_shader is supported:

- Extending VkPipelineLayoutCreateFlagBits:

  - VK_PIPELINE_LAYOUT_CREATE_NO_TASK_SHADER_BIT_KHR

If VK_KHR_extended_flags is supported:

- Extending VkImageCreateFlagBits2KHR:

  - VK_IMAGE_CREATE_2_ALIAS_SINGLE_LAYER_DESCRIPTOR_BIT_KHR

## Issues

None.

## Version History

- Revision 1, 2025-09-09 (Mike Blumenkrantz)

  - Initial revision

## 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