VK_KHR_swapchain_maintenance1(3)

# VK_KHR_swapchain_maintenance1(3) Manual Page

## Name

VK_KHR_swapchain_maintenance1 - device extension

## Registered Extension Number

488

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_swapchain
and
VK_KHR_surface_maintenance1
and
VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1

## Contact

- Shahbaz Youssefi [GitHub]syoussefi

## Extension Proposal

VK_KHR_swapchain_maintenance1

## Other Extension Metadata

Last Modified Date

  2025-03-31

Contributors

  - James Jones, NVIDIA

  - Jeff Juliano, NVIDIA

  - Shahbaz Youssefi, Google

  - Chris Forbes, Google

  - Ian Elliott, Google

  - Yiwei Zhang, Google

  - Charlie Lao, Google

  - Lina Versace, Google

  - Ralph Potter, Samsung

  - Igor Nazarov, Samsung

  - Hyunchang Kim, Samsung

  - Suenghwan Lee, Samsung

  - Munseong Kang, Samsung

  - Joonyong Park, Samsung

  - Hans-Kristian Arntzen, Valve

  - Lisa Wu, Arm

  - Daniel Stone, Collabora

  - Pan Gao, Huawei

## Description

This extension is based off the `VK_EXT_swapchain_maintenance1` extension.

`VK_KHR_swapchain_maintenance1` adds a collection of window system integration features that were intentionally left out or overlooked in the original `VK_KHR_swapchain` extension.

The new features are as follows:

- Specify a fence that will be signaled when the resources associated with a present operation can be safely destroyed.

- Allow changing the present mode a swapchain is using at per-present granularity.

- Allow applications to define the behavior when presenting a swapchain image to a surface with different dimensions than the image. Using this feature may allow implementations to avoid returning VK_ERROR_OUT_OF_DATE_KHR in this situation.

- Allow applications to defer swapchain memory allocation for improved startup time and memory footprint.

- Allow applications to release previously acquired images without presenting them.

## New Commands

- vkReleaseSwapchainImagesKHR

## New Structures

- VkReleaseSwapchainImagesInfoKHR

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR

- Extending VkPresentInfoKHR:

  - VkSwapchainPresentFenceInfoKHR

  - VkSwapchainPresentModeInfoKHR

- Extending VkSwapchainCreateInfoKHR:

  - VkSwapchainPresentModesCreateInfoKHR

  - VkSwapchainPresentScalingCreateInfoKHR

## New Enum Constants

- `VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME`

- `VK_KHR_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR

  - VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR

  - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR

  - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR

  - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR

  - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR

- Extending VkSwapchainCreateFlagBitsKHR:

  - VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR

## Version History

- Revision 1, 2025-03-31 (Shahbaz Youssefi)

  - Based on VK_EXT_swapchain_maintenance1

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