// Copyright (c) 2014-2017 The Khronos Group Inc.
// Copyright notice at https://www.khronos.org/registry/speccopyright.html

[[create_shared_swapchains,create_shared_swapchains]]

// refBegin vkCreateSharedSwapchainsKHR - Create multiple swapchains that share presentable images

When the +VK_KHR_display_swapchain+ extension is enabled, multiple
swapchains that share presentable images are created by calling:

include::../../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 sname:VkSwapchainKHR
    handles in which the created swapchain objects will be returned.

fname:vkCreateSharedSwapchains is similar to flink:vkCreateSwapchainKHR,
except that it takes an array of sname: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::../../validity/protos/vkCreateSharedSwapchainsKHR.txt[]
