blob: 9175147095b7b4b18e197cc50fbd213cf09f05d7 [file] [log] [blame]
// Copyright 2014-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0
[[create_shared_swapchains,create_shared_swapchains]]
[open,refpage='vkCreateSharedSwapchainsKHR',desc='Create multiple swapchains that share presentable images',type='protos']
--
When the `VK_KHR_display_swapchain` extension is enabled, multiple
swapchains that share presentable images are created by calling:
include::{generated}/api/protos/vkCreateSharedSwapchainsKHR.txt[]
* pname:device is the device to create the swapchains for.
* pname:swapchainCount is the number of swapchains to create.
* pname:pCreateInfos is a pointer to an array of
slink:VkSwapchainCreateInfoKHR structures specifying the parameters of
the created swapchains.
* pname:pAllocator is the allocator used for host memory allocated for the
swapchain objects when there is no more specific allocator available
(see <<memory-allocation,Memory Allocation>>).
* pname:pSwapchains is a pointer to an array of slink:VkSwapchainKHR
handles in which the created swapchain objects will be returned.
fname:vkCreateSharedSwapchainsKHR is similar to flink:vkCreateSwapchainKHR,
except that it takes an array of slink:VkSwapchainCreateInfoKHR structures,
and returns an array of swapchain objects.
The swapchain creation parameters that affect the properties and number of
presentable images must: match between all the swapchains.
If the displays used by any of the swapchains do not use the same
presentable image layout or are incompatible in a way that prevents sharing
images, swapchain creation will fail with the result code
ename:VK_ERROR_INCOMPATIBLE_DISPLAY_KHR.
If any error occurs, no swapchains will be created.
Images presented to multiple swapchains must: be re-acquired from all of
them before transitioning away from ename:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR.
After destroying one or more of the swapchains, the remaining swapchains and
the presentable images can: continue to be used.
include::{generated}/validity/protos/vkCreateSharedSwapchainsKHR.txt[]
--