C Specification

Some surfaces may not be capable of using all the device group present modes.

To query the supported device group present modes for a particular surface, call:

// Provided by VK_KHR_swapchain with VK_VERSION_1_1, VK_KHR_device_group with VK_KHR_surface
VkResult vkGetDeviceGroupSurfacePresentModesKHR(
    VkDevice                                    device,
    VkSurfaceKHR                                surface,
    VkDeviceGroupPresentModeFlagsKHR*           pModes);


  • device is the logical device.

  • surface is the surface.

  • pModes is a pointer to a VkDeviceGroupPresentModeFlagsKHR in which the supported device group present modes for the surface are returned.


The modes returned by this command are not invariant, and may change in response to the surface being moved, resized, or occluded. These modes must be a subset of the modes returned by vkGetDeviceGroupPresentCapabilitiesKHR.

Valid Usage (Implicit)
  • VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter
    device must be a valid VkDevice handle

  • VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameter
    surface must be a valid VkSurfaceKHR handle

  • VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameter
    pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value

  • VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent
    Both of device, and surface must have been created, allocated, or retrieved from the same VkInstance

Host Synchronization
  • Host access to surface must be externally synchronized

Return Codes
On success, this command returns

On failure, this command returns



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

SPDX-License-Identifier: CC-BY-4.0