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