C Specification

The VkSurfacePresentModeCompatibilityKHR structure is defined as:

// Provided by VK_KHR_surface_maintenance1
typedef struct VkSurfacePresentModeCompatibilityKHR {
    VkStructureType      sType;
    void*                pNext;
    uint32_t             presentModeCount;
    VkPresentModeKHR*    pPresentModes;
} VkSurfacePresentModeCompatibilityKHR;

or the equivalent

// Provided by VK_EXT_surface_maintenance1
typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • presentModeCount is an integer related to the number of present modes available or queried, as described below.

  • pPresentModes is a pointer to an array of VkPresentModeKHR in which present modes compatible with a given present mode are returned.

Description

If pPresentModes is NULL, then the number of present modes that are compatible with the one specified in VkSurfacePresentModeKHR is returned in presentModeCount. Otherwise, presentModeCount must point to a variable set by the application to the number of elements in the pPresentModes array, and on return the variable is overwritten with the number of values actually written to pPresentModes. If the value of presentModeCount is less than the number of compatible present modes that are supported, at most presentModeCount values will be written to pPresentModes. The implementation must include the present mode passed to VkSurfacePresentModeKHR in pPresentModes, unless presentModeCount is zero.

To query the set of present modes compatible with a given initial present mode, add a VkSurfacePresentModeKHR structure in the pNext chain of VkPhysicalDeviceSurfaceInfo2KHR when calling vkGetPhysicalDeviceSurfaceCapabilities2KHR.

The application can create a swapchain whose present mode can be modified through the use of VkSwapchainPresentModesCreateInfoKHR.

Valid Usage (Implicit)
  • VUID-VkSurfacePresentModeCompatibilityKHR-sType-sType
    sType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR

  • VUID-VkSurfacePresentModeCompatibilityKHR-pPresentModes-parameter
    If presentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of presentModeCount VkPresentModeKHR values

See Also

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 2014-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0