VkDisplaySurfaceCreateInfoKHR(3)

# VkDisplaySurfaceCreateInfoKHR(3) Manual Page

## Name

VkDisplaySurfaceCreateInfoKHR - Structure specifying parameters of a newly created display plane surface object

## C Specification

The `VkDisplaySurfaceCreateInfoKHR` structure is defined as:

    typedef struct VkDisplaySurfaceCreateInfoKHR {
        VkStructureType                   sType;
        const void*                       pNext;
        VkDisplaySurfaceCreateFlagsKHR    flags;
        VkDisplayModeKHR                  displayMode;
        uint32_t                          planeIndex;
        uint32_t                          planeStackIndex;
        VkSurfaceTransformFlagBitsKHR     transform;
        float                             globalAlpha;
        VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
        VkExtent2D                        imageExtent;
    } VkDisplaySurfaceCreateInfoKHR;

## Members

- `sType` is the type of this structure.

- `pNext` is `NULL` or a pointer to an extension-specific structure.

- `flags` is reserved for future use, and must be zero.

- `displayMode` is a VkDisplayModeKHR handle specifying the mode to use when displaying this surface.

- `planeIndex` is the plane on which this surface appears.

- `planeStackIndex` is the z-order of the plane.

- `transform` is a VkSurfaceTransformFlagBitsKHR value specifying the transformation to apply to images as part of the scanout operation.

- `globalAlpha` is the global alpha value. This value is ignored if `alphaMode` is not `VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR`.

- `alphaMode` is a VkDisplayPlaneAlphaFlagBitsKHR value specifying the type of alpha blending to use.

- `imageExtent` The size of the presentable images to use with the surface.

## Description

| Note Creating a display surface must not modify the state of the displays, planes, or other resources it names. For example, it must not apply the specified mode to be set on the associated display. Application of display configuration occurs as a side effect of presenting to a display surface.

Valid Usage

- `planeIndex` must be less than the number of display planes supported by the device as determined by calling `vkGetPhysicalDeviceDisplayPlanePropertiesKHR`

- If the `planeReorderPossible` member of the `VkDisplayPropertiesKHR` structure returned by `vkGetPhysicalDeviceDisplayPropertiesKHR` for the display corresponding to `displayMode` is `VK_TRUE` then `planeStackIndex` must be less than the number of display planes supported by the device as determined by calling `vkGetPhysicalDeviceDisplayPlanePropertiesKHR`; otherwise `planeStackIndex` must equal the `currentStackIndex` member of `VkDisplayPlanePropertiesKHR` returned by `vkGetPhysicalDeviceDisplayPlanePropertiesKHR` for the display plane corresponding to `displayMode`

- If `alphaMode` is `VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR` then `globalAlpha` must be between `0` and `1`, inclusive

- `alphaMode` must be `0` or one of the bits present in the `supportedAlpha` member of `VkDisplayPlaneCapabilitiesKHR` returned by `vkGetDisplayPlaneCapabilitiesKHR` for the display plane corresponding to `displayMode`

- The `width` and `height` members of `imageExtent` must be less than the `maxImageDimensions2D` member of `VkPhysicalDeviceLimits`

Valid Usage (Implicit)

- `sType` must be `VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR`

- `pNext` must be `NULL`

- `flags` must be `0`

- `displayMode` must be a valid `VkDisplayModeKHR` handle

- `transform` must be a valid VkSurfaceTransformFlagBitsKHR value

- `alphaMode` must be a valid VkDisplayPlaneAlphaFlagBitsKHR value

## See Also

VkDisplayModeKHR, VkDisplayPlaneAlphaFlagBitsKHR, VkDisplaySurfaceCreateFlagsKHR, VkExtent2D, VkStructureType, VkSurfaceTransformFlagBitsKHR, vkCreateDisplayPlaneSurfaceKHR

## 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 (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.