// Copyright 2019-2022 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

[open,refpage='VkSwapchainPresentModesCreateInfoEXT',desc='All presentation modes usable by the swapchain',type='structs']
--
Applications can: modify the presentation mode used by the swapchain on a
per-presentation basis.
However, all presentation modes the application intends to use with the
swapchain must: be specified at swapchain creation time.
To specify more than one presentation mode when creating a swapchain,
include the sname:VkSwapchainPresentModesCreateInfoEXT structure in the
pname:pNext chain of the slink:VkSwapchainCreateInfoKHR structure.

The sname:VkSwapchainPresentModesCreateInfoEXT structure is defined as:

include::{generated}/api/structs/VkSwapchainPresentModesCreateInfoEXT.adoc[]

  * pname:sType is the type of this structure.
  * pname:pNext is `NULL` or a pointer to a structure extending this
    structure.
  * pname:presentModeCount is the number of presentation modes provided.
  * pname:pPresentModes is a list of presentation modes with
    pname:presentModeCount entries

.Valid Usage
****
  * [[VUID-VkSwapchainPresentModesCreateInfoEXT-None-07762]]
    Each entry in pPresentModes must: be one of the elink:VkPresentModeKHR
    values returned by fname:vkGetPhysicalDeviceSurfacePresentModesKHR for
    the surface
  * [[VUID-VkSwapchainPresentModesCreateInfoEXT-pPresentModes-07763]]
    The entries in pPresentModes must: be a subset of the present modes
    returned in
    slink:VkSurfacePresentModeCompatibilityEXT::pname:pPresentModes, given
    slink:VkSwapchainCreateInfoKHR::pname:presentMode in
    slink:VkSurfacePresentModeEXT
  * [[VUID-VkSwapchainPresentModesCreateInfoEXT-presentMode-07764]]
    slink:VkSwapchainCreateInfoKHR::pname:presentMode must: be included in
    pname:pPresentModes
****

include::{generated}/validity/structs/VkSwapchainPresentModesCreateInfoEXT.adoc[]
--

