# VK_EXT_surface_maintenance1(3) Manual Page

## Name

VK_EXT_surface_maintenance1 - instance extension

Loading… please wait.

## Registered Extension Number

275

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_surface
and
VK_KHR_get_surface_capabilities2

## Deprecation State

- Promoted to VK_KHR_surface_maintenance1 extension

## Contact

- Shahbaz Youssefi [GitHub]syoussefi

## Extension Proposal

VK_EXT_surface_maintenance1

## Other Extension Metadata

Last Modified Date

  2022-12-16

Interactions and External Dependencies

  - Promoted to `VK_KHR_surface_maintenance1`

Contributors

  - James Jones, NVIDIA

  - Jeff Juliano, NVIDIA

  - Lionel Landwerlin, Intel

  - Shahbaz Youssefi, Google

  - Chris Forbes, Google

  - Ian Elliott, Google

  - Hans-Kristian Arntzen, Valve

  - Daniel Stone, Collabora

## Description

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

The new features are as follows:

- Allow querying number of min/max images from a surface for a particular presentation mode.

- Allow querying a surface’s scaled presentation capabilities.

- Allow querying a surface for the set of presentation modes which can be easily switched between without requiring swapchain recreation.

## Promotion to `VK_KHR_surface_maintenance1`

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

## New Structures

- Extending VkPhysicalDeviceSurfaceInfo2KHR:

  - VkSurfacePresentModeEXT

- Extending VkSurfaceCapabilities2KHR:

  - VkSurfacePresentModeCompatibilityEXT

  - VkSurfacePresentScalingCapabilitiesEXT

## New Enums

- VkPresentGravityFlagBitsEXT

- VkPresentScalingFlagBitsEXT

## New Bitmasks

- VkPresentGravityFlagsEXT

- VkPresentScalingFlagsEXT

## New Enum Constants

- `VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME`

- `VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT`

  - `VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT`

  - `VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT`

## Version History

- Revision 0, 2019-02-27 (Lionel Landwerlin)

  - Internal revisions

- Revision 0, 2020-06-15 (James Jones)

  - Internal revisions

- Revision 1, 2022-11-09 (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-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0