C Specification
The VkSurfacePresentModeKHR structure is defined as:
// Provided by VK_KHR_surface_maintenance1
typedef struct VkSurfacePresentModeKHR {
    VkStructureType     sType;
    void*               pNext;
    VkPresentModeKHR    presentMode;
} VkSurfacePresentModeKHR;or the equivalent
// Provided by VK_EXT_surface_maintenance1
typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT;Members
- 
sTypeis a VkStructureType value identifying this structure.
- 
pNextisNULLor a pointer to a structure extending this structure.
- 
presentModeis the presentation mode the swapchain will use.
Description
If the VkSurfacePresentModeKHR structure is included in the
pNext chain of VkPhysicalDeviceSurfaceInfo2KHR, the values
returned in VkSurfaceCapabilitiesKHR::minImageCount,
VkSurfaceCapabilitiesKHR::maxImageCount,
VkSurfacePresentScalingCapabilitiesKHR::minScaledImageExtent,
and VkSurfacePresentScalingCapabilitiesKHR::maxScaledImageExtent
are valid only for the specified presentMode.
If presentMode is VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or
VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, the per-present mode
image counts must both be one.
The per-present mode image counts may be less-than or greater-than the
image counts returned when VkSurfacePresentModeKHR is not provided.
| Note | If VkSwapchainPresentModesCreateInfoKHR is provided to swapchain
creation, the requirements for forward progress may be less strict.
For example, a FIFO swapchain might only require 2 images to guarantee
forward progress, but a MAILBOX one might require 4.
Without the per-present image counts, such an implementation would have to
return 4 in VkSurfaceCapabilitiesKHR:: VkSwapchainPresentModesCreateInfoKHR is required for the specification to be backwards compatible with applications that do not know about, or make use of this feature. | 
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.