VkSurfacePresentModeKHR
The VkSurfacePresentModeKHR structure is defined as:
typedef struct VkSurfacePresentModeKHR {
VkStructureType sType;
void* pNext;
VkPresentModeKHR presentMode;
} VkSurfacePresentModeKHR;
pub struct SurfacePresentModeKHR {
s_type: vk::StructureType,
p_next: *mut c_void,
present_mode: vk::PresentModeKHR,
}
typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT;
type SurfacePresentModeEXT = vk::SurfacePresentModeKHR;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.presentModeis the presentation mode the swapchain will use.
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.
minImageCount, which
pessimizes FIFO.
Conversely, an implementation may return a low number for minImageCount, but
internally bump the image count when application queries
vkGetSwapchainImagesKHR, which can surprise applications, and is not
discoverable until swapchain creation.
Using VkSurfacePresentModeKHR and
VkSwapchainPresentModesCreateInfoKHR together effectively removes this
problem.VkSwapchainPresentModesCreateInfoKHR is required for the specification
to be backwards compatible with applications that do not know about, or make
use of this feature.Valid Usage
VUID-VkSurfacePresentModeKHR-presentMode-07780
presentMode must be a value reported by
vkGetPhysicalDeviceSurfacePresentModesKHR for the specified
surface
Valid Usage (Implicit)
VUID-VkSurfacePresentModeKHR-sType-sType
sType must be VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR
VUID-VkSurfacePresentModeKHR-presentMode-parameter
presentMode must be a valid VkPresentModeKHR value