VkSurfaceCapabilities2KHR(3)

# VkSurfaceCapabilities2KHR(3) Manual Page

## Name

VkSurfaceCapabilities2KHR - Structure describing capabilities of a surface

## C Specification

The `VkSurfaceCapabilities2KHR` structure is defined as:

    // Provided by VK_KHR_get_surface_capabilities2
    typedef struct VkSurfaceCapabilities2KHR {
        VkStructureType             sType;
        void*                       pNext;
        VkSurfaceCapabilitiesKHR    surfaceCapabilities;
    } VkSurfaceCapabilities2KHR;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `surfaceCapabilities` is a VkSurfaceCapabilitiesKHR structure describing the capabilities of the specified surface.

## Description

If the `VK_GOOGLE_surfaceless_query` extension is enabled and VkPhysicalDeviceSurfaceInfo2KHR::`surface` in the vkGetPhysicalDeviceSurfaceCapabilities2KHR call is VK_NULL_HANDLE, the values returned in `minImageCount`, `maxImageCount`, `currentExtent`, and `currentTransform` will not reflect that of any surface and will instead be as such:

- `minImageCount` and `maxImageCount` will be 0xFFFFFFFF

- `currentExtent` will be (0xFFFFFFFF, 0xFFFFFFFF)

- `currentTransform` will be VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR

Only usage flags representable in VkImageUsageFlagBits are returned in `surfaceCapabilities.supportedUsageFlags`. If the `pNext` chain includes a VkImageUsageFlags2CreateInfoKHR structure, all usage flags are returned in VkImageUsageFlags2CreateInfoKHR::`usage`.

Valid Usage (Implicit)

- VUID-VkSurfaceCapabilities2KHR-sType-sType
  `sType` must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR

- VUID-VkSurfaceCapabilities2KHR-pNext-pNext
  Each `pNext` member of any structure (including this one) in the `pNext` chain must be either `NULL` or a pointer to a valid instance of VkDisplayNativeHdrSurfaceCapabilitiesAMD, VkImageUsageFlags2CreateInfoKHR, VkLatencySurfaceCapabilitiesNV, VkPresentTimingSurfaceCapabilitiesEXT, VkSharedPresentSurfaceCapabilities2KHR, VkSharedPresentSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesFullScreenExclusiveEXT, VkSurfaceCapabilitiesPresentBarrierNV, VkSurfaceCapabilitiesPresentId2KHR, VkSurfaceCapabilitiesPresentWait2KHR, VkSurfacePresentModeCompatibilityKHR, VkSurfacePresentScalingCapabilitiesKHR, VkSurfaceProtectedCapabilitiesKHR, or VkSwapchainFlagsSurfaceCapabilitiesEXT

- VUID-VkSurfaceCapabilities2KHR-sType-unique
  The `sType` value of each structure in the `pNext` chain must be unique

## See Also

VK_KHR_get_surface_capabilities2, VkStructureType, VkSurfaceCapabilitiesKHR, vkGetPhysicalDeviceSurfaceCapabilities2KHR

## 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

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0