Package org.lwjgl.vulkan
Class EXTSwapchainMaintenance1
java.lang.Object
org.lwjgl.vulkan.EXTSwapchainMaintenance1
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
ERROR_OUT_OF_DATE_KHRin 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.
- Name String
VK_EXT_swapchain_maintenance1- Extension Type
- Device extension
- Registered Extension Number
- 276
- Revision
- 1
- Extension and Version Dependencies
VK_KHR_swapchainandVK_EXT_surface_maintenance1andVK_KHR_get_physical_device_properties2or Version 1.1- Contact
- Shahbaz Youssefi syoussefi
- Extension Proposal
- 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
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe extension name.static final intThe extension specification version.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkSwapchainCreateFlagBitsKHR. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkReleaseSwapchainImagesEXT(org.lwjgl.vulkan.VkDevice device, long pReleaseInfo) Unsafe version of:ReleaseSwapchainImagesEXTstatic intvkReleaseSwapchainImagesEXT(org.lwjgl.vulkan.VkDevice device, VkReleaseSwapchainImagesInfoEXT pReleaseInfo) Release previously acquired but unused images.
-
Field Details
-
VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION
public static final int VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXTSTRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
- See Also:
-
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXTSTRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
- See Also:
-
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXTSTRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
- See Also:
-
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXTSTRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
- See Also:
-
VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXTSTRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
- See Also:
-
VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
public static final int VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXTExtendsVkStructureType.Enum values:
STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXTSTRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXTSTRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT
- See Also:
-
VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT
public static final int VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXTExtendsVkSwapchainCreateFlagBitsKHR.- See Also:
-
-
Method Details
-
nvkReleaseSwapchainImagesEXT
public static int nvkReleaseSwapchainImagesEXT(org.lwjgl.vulkan.VkDevice device, long pReleaseInfo) Unsafe version of:ReleaseSwapchainImagesEXT -
vkReleaseSwapchainImagesEXT
public static int vkReleaseSwapchainImagesEXT(org.lwjgl.vulkan.VkDevice device, VkReleaseSwapchainImagesInfoEXT pReleaseInfo) Release previously acquired but unused images.C Specification
To release images previously acquired through
AcquireNextImage2KHRorAcquireNextImageKHR, call:VkResult vkReleaseSwapchainImagesEXT( VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);Description
Only images that are not in use by the device can be released.
Releasing images is a read-only operation that will not affect the content of the released images. Upon reacquiring the image, the image contents and its layout will be the same as they were prior to releasing it. However, if a mechanism other than Vulkan is used to modify the platform window associated with the swapchain, the content of all presentable images in the swapchain becomes undefined.
Note
This functionality is useful during swapchain recreation, where acquired images from the old swapchain can be released instead of presented.
Valid Usage
- Feature
swapchainMaintenance1must be enabled
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepReleaseInfomust be a valid pointer to a validVkReleaseSwapchainImagesInfoEXTstructure
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the device associated withVkReleaseSwapchainImagesInfoEXT::swapchain.pReleaseInfo- a pointer to aVkReleaseSwapchainImagesInfoEXTstructure containing parameters of the release.
- Feature
-