VkSurfacePresentScalingCapabilitiesEXT(3)

# VkSurfacePresentScalingCapabilitiesEXT(3) Manual Page

## Name

VkSurfacePresentScalingCapabilitiesEXT - Structure describing the presentation scaling capabilities of the surface

Loading… please wait.

## C Specification

The `VkSurfacePresentScalingCapabilitiesEXT` structure is defined as:

    // Provided by VK_EXT_surface_maintenance1
    typedef struct VkSurfacePresentScalingCapabilitiesEXT {
        VkStructureType             sType;
        void*                       pNext;
        VkPresentScalingFlagsEXT    supportedPresentScaling;
        VkPresentGravityFlagsEXT    supportedPresentGravityX;
        VkPresentGravityFlagsEXT    supportedPresentGravityY;
        VkExtent2D                  minScaledImageExtent;
        VkExtent2D                  maxScaledImageExtent;
    } VkSurfacePresentScalingCapabilitiesEXT;

## Members

- `sType` is the type of this structure.

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

- `supportedPresentScaling` is a bitmask of VkPresentScalingFlagBitsEXT representing the scaling methods supported by the surface, or `0` if application-defined scaling is not supported.

- `supportedPresentGravityX` is a bitmask of VkPresentGravityFlagBitsEXT representing the X-axis pixel gravity supported by the surface, or `0` if Vulkan-defined pixel gravity is not supported for the X axis.

- `supportedPresentGravityY` is a bitmask of VkPresentGravityFlagBitsEXT representing the Y-axis pixel gravity supported by the surface, or `0` if Vulkan-defined pixel gravity is not supported for the Y axis.

- `minScaledImageExtent` contains the smallest valid swapchain extent for the surface on the specified device when one of the scaling methods specified in `supportedPresentScaling` is used, or the special value (0xFFFFFFFF, 0xFFFFFFFF) indicating that the surface size will be determined by the extent of a swapchain targeting the surface. The `width` and `height` of the extent will each be smaller than or equal to the corresponding `width` and `height` of VkSurfaceCapabilitiesKHR::`minImageExtent`.

- `maxScaledImageExtent` contains the largest valid swapchain extent for the surface on the specified device when one of the scaling methods specified in `supportedPresentScaling` is used, or the special value described above for `minScaledImageExtent`. The `width` and `height` of the extent will each be greater than or equal to the corresponding `width` and `height` of VkSurfaceCapabilitiesKHR::`maxImageExtent`.

## Description

Before creating a swapchain whose scaling mode can be specified through the use of VkSwapchainPresentScalingCreateInfoEXT, obtain the set of supported scaling modes by including a VkSurfacePresentModeEXT structure in the `pNext` chain of VkPhysicalDeviceSurfaceInfo2KHR when calling vkGetPhysicalDeviceSurfaceCapabilities2KHR. The implementation must return the same values in `VkSurfacePresentScalingCapabilitiesEXT` for any of the compatible present modes as obtained through VkSurfacePresentModeCompatibilityEXT.

Valid Usage (Implicit)

- VUID-VkSurfacePresentScalingCapabilitiesEXT-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT`

- VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentScaling-parameter
  `supportedPresentScaling` must be a valid combination of VkPresentScalingFlagBitsEXT values

- VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityX-parameter
  `supportedPresentGravityX` must be a valid combination of VkPresentGravityFlagBitsEXT values

- VUID-VkSurfacePresentScalingCapabilitiesEXT-supportedPresentGravityY-parameter
  `supportedPresentGravityY` must be a valid combination of VkPresentGravityFlagBitsEXT values

## See Also

VK_EXT_surface_maintenance1, VkExtent2D, VkPresentGravityFlagsEXT, VkPresentScalingFlagsEXT, VkStructureType

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

SPDX-License-Identifier: CC-BY-4.0