Multiplane overlay support
Multiplane overlays can be supported by Windows Display Driver Model (WDDM) 1.3 and later drivers. This capability is new starting with Windows 8.1.
These sections describe how to implement this capability in your driver.
Multiplane overlay functions called by user-mode display drivers
All user-mode multiplane overlay functions that the operating system implements.
Function | Description |
---|---|
pfnPresentMultiPlaneOverlayCb (D3D) | Copies content from a source multiplane overlay allocation to a destination allocation. Can be called by Windows Display Driver Model (WDDM) 1.3 or later user-mode display drivers. |
pfnPresentMultiPlaneOverlayCb (DXGI) | Copies content from a source multiplane overlay allocation to a destination allocation. Can be called by WDDM 1.3 or later user-mode display drivers. |
Multiplane overlay functions implemented by the user-mode driver
This section contains functions that a Windows Display Driver Model (WDDM) 1.3 and later user-mode display driver must implement in order to support multiplane overlays.
The driver supplies pointers to DXGI multiplane overlay functions through members of the DXGI1_3_DDI_BASE_FUNCTIONS structure in a call to the user-mode display driver's adapter-specific CreateDevice(D3D10) function. For more info, see Supporting the DXGI DDI.
The driver supplies pointers to Microsoft Direct3D multiplane overlay functions through members of the D3DDDI_DEVICEFUNCS structure in a call to the driver's CreateDevice function.
All functions that a user-mode driver must implement in order to support multiplane overlays.
Function | Description |
---|---|
pfnCheckMultiPlaneOverlaySupport (D3D) | Called by the Direct3D runtime to check the details on hardware support for multiplane overlays. |
pfnCheckMultiPlaneOverlaySupport (DXGI) | Called by the Microsoft DirectX Graphics Infrastructure (DXGI) runtime to check the details on hardware support for multiplane overlays. |
pfnGetMultiPlaneOverlayCaps | Called by the DXGI runtime to request that the user-mode display driver get basic overlay plane capabilities. Optionally implemented by WDDM 1.3 and later user-mode display drivers. |
pfnGetMultiplaneOverlayGroupCaps | Called by the DXGI runtime to request that the user-mode display driver get a group of overlay plane capabilities. Optionally implemented by WDDM 1.3 and later user-mode display drivers. |
pfnPresentMultiplaneOverlay (D3D) | Called by the Direct3D runtime to notify the user-mode display driver that an application finished rendering and requests that the driver display the source surface by either copying or flipping or that the driver perform a color-fill operation. Must be implemented by WDDM 1.3 or later drivers that support multiplane overlays. |
pfnPresentMultiplaneOverlay (DXGI) | Called by the DXGI runtime to notify the user-mode display driver that an application finished rendering and requests that the driver display the source surface by either copying or flipping or that the driver perform a color-fill operation. Must be implemented by WDDM 1.3 or later drivers that support multiplane overlays. |
Multiplane overlay user-mode structures and enumerations
All user-mode structures and enumerations that are used with multiplane overlay device driver interfaces (DDIs).
DDI | Description |
---|---|
D3DDDI_MULTIPLANE_ALLOCATION_INFO | Specifies info about a multiplane overlay allocation. |
D3DDDI_MULTIPLANE_OVERLAY_ATTRIBUTES | Used by the user-mode display driver to specify overlay plane attributes. |
D3DDDI_MULTIPLANE_OVERLAY_BLEND | Identifies a blend operation to be performed on an overlay plane. |
D3DDDI_MULTIPLANE_OVERLAY_CAPS | Used by the user-mode display driver to specify overlay plane capabilities. |
D3DDDI_MULTIPLANE_OVERLAY_FEATURE_CAPS | Identifies overlay capabilities. |
D3DDDI_MULTIPLANE_OVERLAY_FLAGS | Identifies a flip operation to be performed on an overlay plane. |
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS | Used by the user-mode display driver to specify a group of overlay plane capabilities. |
D3DDDI_MULTIPLANE_OVERLAY_GROUP_CAPS_INPUT | Specifies info on a multiplane overlay capability group. |
D3DDDI_MULTIPLANE_OVERLAY_STRETCH_QUALITY | Identifies filtering processes that the hardware should perform when it stretches or shrinks multiplane overlay data. |
D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT | Identifies the overlay plane's video frame format. Only the D3DDDI_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE value is supported. |
D3DDDI_MULTIPLANE_OVERLAY_YCbCr_FLAGS | Identifies YUV range and conversion info that describes a multiplane overlay. |
D3DDDI_PRESENT_MULTIPLANE_OVERLAY | Specifies an overlay plane to display. |
D3DDDIARG_CHECKMULTIPLANEOVERLAYSUPPORT | Used in a call to the pfnCheckMultiPlaneOverlaySupport (D3D) function to check details on hardware support for multiplane overlays. |
D3DDDIARG_PRESENTMULTIPLANEOVERLAY | Specifies a multiplane overlay resource to display. |
D3DDDICB_PRESENTMULTIPLANEOVERLAY | Describes multiplane overlay allocations that content is copied to and from. |
Multiplane overlay kernel-mode driver-implemented functions
All multiplane overlay functions that the display miniport driver implements.
Function | Description |
---|---|
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT | Called by the Microsoft DirectX graphics kernel subsystem to check the details of hardware support for multiplane overlays. |
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 | The following new function is called to determine whether a specific multi-plane overlay configuration is supported. |
DXGKDDI_GETMULTIPLANEOVERLAYCAPS | Called to retrieve multiplane overlay capabilities. Support for this DDI is required for any WDDM 2.2 driver that wants to support multiple planes. |
DXGKDDI_POSTMULTIPLANEOVERLAYPRESENT | Called after a new multi-plane overlay configuration has taken effect, allowing the driver to optimize hardware state. Optional for Windows Display Driver Model (WDDM) 2.0 or later drivers that support multi-plane overlays. |
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 | Called to change the overlay configuration being displayed. |
DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT2 | DxgkDdiCheckMultiPlaneOverlaySupport2 is called to determine whether a specific multi-plane overlay configuration is supported. |
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY | Sets the addresses of multiple surfaces, including the Desktop Window Manager (DWM)'s swapchain, that are associated with a particular video present source. This function is used to present multiple surfaces (including the DWM’s swapchain) to the screen. |
DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 | DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 is called to change the overlay configuration being displayed. |
Multiplane overlay kernel-mode structures
All structures that are used by the display miniport driver.
Structure | Description |
---|---|
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_PLANE | Specifies the support attributes that the hardware provides for multiplane overlays. |
DXGK_CHECK_MULTIPLANE_OVERLAY_SUPPORT_RETURN_INFO | Specifies limitations on hardware support of multiplane overlays. |
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES | Used by the display miniport driver to specify overlay plane attributes. |
DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 | DXGK_MULTIPLANE_OVERLAY_ATTRIBUTES2 is used by the display miniport driver to specify overlay plane attributes. |
DXGK_MULTIPLANE_OVERLAY_BLEND | Identifies a blend operation to be performed on an overlay plane. |
DXGK_MULTIPLANE_OVERLAY_FLAGS | Identifies a flip operation to be performed on an overlay plane. |
DXGK_MULTIPLANE_OVERLAY_PLANE | Specifies an overlay plane to display in a call to the DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay function. |
DXGK_MULTIPLANE_OVERLAY_PLANE2 | DXGK_MULTIPLANE_OVERLAY_PLANE2 is used with the DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 function to specify an overlay plane to display. |
DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE | DXGK_MULTIPLANE_OVERLAY_PLANE_WITH_SOURCE describes the multi-plane overlay plane attributes, allocation, and video present network source identification number. |
DXGK_MULTIPLANE_OVERLAY_VSYNC_INFO | Specifies an overlay plane to display during a VSync interval. |
DXGK_MULTIPLANE_OVERLAY_YCbCr_FLAGS | Identifies YUV range and conversion info that describes a multiplane overlay. |
DXGK_PRESENTMULTIPLANEOVERLAYINFO | Specifies info on a VidPN input and an overlay plane to display. |
DXGK_PRESENTMULTIPLANEOVERLAYLIST | Specifies an overlay plane to display in a call to the DxgkDdiPresent function. |
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT | Used in a call to the DxgkDdiCheckMultiPlaneOverlaySupport function to check details on hardware support for multiplane overlays. |
DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 | DXGKARG_CHECKMULTIPLANEOVERLAYSUPPORT2 is passed to the DxgkDdiCheckMultiPlaneOverlaySupport2 function to determine whether a specific multi-plane overlay configuration is supported. |
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY | Contains arguments for the DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay function. |
DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 | DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY2 is passed to the DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay2 function to change the overlay configuration being displayed. |
Multiplane overlay kernel-mode enumerations
All enumerations that are used by the display miniport driver.
Enumeration | Description |
---|---|
DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_MODE | Identifies the overlay plane's stereo flip mode. Only the DXGK_MULTIPLANE_OVERLAY_STEREO_FLIP_NONE value is supported. |
DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT | Identifies the overlay plane's stereo presentation format. Only the DXGK_MULTIPLANE_OVERLAY_STEREO_FORMAT_MONO value is supported. |
DXGK_MULTIPLANE_OVERLAY_STRETCH_QUALITY | Identifies filtering processes that the hardware should perform when it stretches or shrinks multiplane overlay data. |
DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT | Identifies the overlay plane's video frame format. Only the DXGK_MULTIPLANE_OVERLAY_VIDEO_FRAME_FORMAT_PROGRESSIVE value is supported. |
This user-mode enumeration constant value supports multiplane overlays and is new for Windows 8.1:
- D3DDDICAPS_TYPE (D3DDDICAPS_GET_MULTIPLANE_OVERLAY_GROUP_CAPS constant value)
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for