vkGetPhysicalDeviceSurfacePresentModesKHR
To query the supported presentation modes for a surface, call:
VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
    VkPhysicalDevice physicalDevice,
    VkSurfaceKHR surface,
    uint32_t* pPresentModeCount,
    VkPresentModeKHR* pPresentModes);
- physicalDeviceis the physical device that will be associated with the swapchain to be created, as described for vkCreateSwapchainKHR.
- surfaceis the surface that will be associated with the swapchain.
- pPresentModeCountis a pointer to an integer related to the number of presentation modes available or queried, as described below.
- pPresentModesis either- NULLor a pointer to an array of VkPresentModeKHR values, indicating the supported presentation modes.
If pPresentModes is NULL, then the number of presentation modes
supported for the given surface is returned in
pPresentModeCount.
Otherwise, pPresentModeCount 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 pPresentModeCount is less than the number of
presentation modes supported, at most pPresentModeCount values will be
written, and VK_INCOMPLETE will be returned instead of
VK_SUCCESS, to indicate that not all the available modes were
returned.
If the VK_GOOGLE_surfaceless_query extension is enabled and
surface is VK_NULL_HANDLE, the values returned in
pPresentModes will only indicate support for
VK_PRESENT_MODE_FIFO_KHR,
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR, and
VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR.
To query support for any other present mode, a valid handle must be
provided in surface.
Valid Usage
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06524
If the VK_GOOGLE_surfaceless_query extension is not enabled,
surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525
If surface is not VK_NULL_HANDLE,
surface must be supported by physicalDevice, as reported by
vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent
platform-specific mechanism
Valid Usage (Implicit)
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameter
physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter
If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModeCount-parameter
pPresentModeCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameter
If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values
VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent
Both of physicalDevice, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance