Multiplane overlay VidPN presentation
When multiplane overlays are used, these requirements apply to functions used to present on multiple surfaces in video present networks (VidPNs):
- If DXGK_MULTIPLANE_OVERLAY_PLANE.Enabled is false, the display miniport driver should disable the specified plane.
- If a plane was enabled in a previous call to DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay but is not present in the current call, the driver should continue to display the plane without flipping it.
- It's possible that the driver will receive multiple calls to DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay during the same VSync (one call to flip one plane, and another call to flip a different plane). In this case, the driver should process both calls.
- The data passed should have been validated in user mode by a trusted source. However, the display miniport driver should still check the data to ensure that it doesn't cause problems. If the data is incorrect, the driver can fail the call with a STATUS_INVALID_PARAMETER error code, but such failures might not be handled gracefully and imply either a bug in the operating system or in the user mode driver.
When DXGKARG_SETVIDPNSOURCEVISIBILITY.Visible is set to FALSE on a given source in a call to this function, all hardware planes must be disabled, including the layer used for the primary surface. When Visible is set to TRUE, only the plane used for the primary surface must be enabled, and all other planes must remain disabled.
When this function is called, the driver should disable all non-primary overlay planes. The primary surface is flipped using DxgkDdiSetVidPnSourceAddressWithMultiPlaneOverlay when in multiplane overlay mode.