VK_EXT_swapchain_maintenance1

Other Extension Metadata

Last Modified Date

2022-10-28

Contributors
  • 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.

New Commands

New Structures

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
    • Initial revisions
  • Revision 1, 2022-08-21 (Shahbaz Youssefi)
    • Add functionality and complete spec