// 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[]
--
