# VkSwapchainPresentModesCreateInfoKHR(3) Manual Page

## Name

VkSwapchainPresentModesCreateInfoKHR - All presentation modes usable by the swapchain

Loading… please wait.

## C Specification

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 `VkSwapchainPresentModesCreateInfoKHR` structure in the `pNext` chain of the VkSwapchainCreateInfoKHR structure.

The `VkSwapchainPresentModesCreateInfoKHR` structure is defined as:

    // Provided by VK_KHR_swapchain_maintenance1
    typedef struct VkSwapchainPresentModesCreateInfoKHR {
        VkStructureType            sType;
        const void*                pNext;
        uint32_t                   presentModeCount;
        const VkPresentModeKHR*    pPresentModes;
    } VkSwapchainPresentModesCreateInfoKHR;

or the equivalent

    // Provided by VK_EXT_swapchain_maintenance1
    typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `presentModeCount` is the number of presentation modes provided.

- `pPresentModes` is a list of presentation modes with `presentModeCount` entries

## Description

Valid Usage

- VUID-VkSwapchainPresentModesCreateInfoKHR-None-07762
  Each entry in pPresentModes must be one of the VkPresentModeKHR values returned by `vkGetPhysicalDeviceSurfacePresentModesKHR` for the surface

- VUID-VkSwapchainPresentModesCreateInfoKHR-presentModeFifoLatestReady-10160
  If the `presentModeFifoLatestReady` feature is not enabled, pPresentModes must not contain `VK_PRESENT_MODE_FIFO_LATEST_READY_KHR`

- VUID-VkSwapchainPresentModesCreateInfoKHR-pPresentModes-07763
  The entries in pPresentModes must be a subset of the present modes returned in VkSurfacePresentModeCompatibilityKHR::`pPresentModes`, given VkSwapchainCreateInfoKHR::`presentMode` in VkSurfacePresentModeKHR

- VUID-VkSwapchainPresentModesCreateInfoKHR-presentMode-07764
  VkSwapchainCreateInfoKHR::`presentMode` must be included in `pPresentModes`

Valid Usage (Implicit)

- VUID-VkSwapchainPresentModesCreateInfoKHR-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR`

- VUID-VkSwapchainPresentModesCreateInfoKHR-pPresentModes-parameter
  `pPresentModes` must be a valid pointer to an array of `presentModeCount` valid VkPresentModeKHR values

- VUID-VkSwapchainPresentModesCreateInfoKHR-presentModeCount-arraylength
  `presentModeCount` must be greater than `0`

## See Also

VK_EXT_swapchain_maintenance1, VK_KHR_swapchain_maintenance1, VkPresentModeKHR, VkStructureType

## Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0