VK_EXT_swapchain_maintenance1(3)

# VK_EXT_swapchain_maintenance1(3) Manual Page

## Name

VK_EXT_swapchain_maintenance1 - device extension

## Registered Extension Number

276

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_swapchain
and
VK_EXT_surface_maintenance1
and
VK_KHR_get_physical_device_properties2
or
Vulkan Version 1.1

## Deprecation State

- Promoted to VK_KHR_swapchain_maintenance1 extension

## Contact

- Shahbaz Youssefi [GitHub]syoussefi

## Extension Proposal

VK_EXT_swapchain_maintenance1

## Other Extension Metadata

Last Modified Date

  2022-12-16

Interactions and External Dependencies

  - Promoted to `VK_KHR_swapchain_maintenance1`

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

`VK_EXT_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.

## Promotion to `VK_KHR_swapchain_maintenance1`

All functionality in this extension is included in `VK_KHR_swapchain_maintenance1`, with the suffix changed to KHR. The original type, enum, and command names are still available as aliases of the KHR functionality.

## New Commands

- vkReleaseSwapchainImagesEXT

## New Structures

- VkReleaseSwapchainImagesInfoEXT

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT

- Extending VkPresentInfoKHR:

  - VkSwapchainPresentFenceInfoEXT

  - VkSwapchainPresentModeInfoEXT

- Extending VkSwapchainCreateInfoKHR:

  - VkSwapchainPresentModesCreateInfoEXT

  - VkSwapchainPresentScalingCreateInfoEXT

## New Enum Constants

- `VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME`

- `VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT

  - VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT

  - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT

  - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT

  - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT

  - VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT

- Extending VkSwapchainCreateFlagBitsKHR:

  - VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT

## Version History

- Revision 0, 2019-05-28 (James Jones)

  - Initial revisions

- Revision 1, 2022-08-21 (Shahbaz Youssefi)

  - Add functionality and complete spec

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