DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 callback function (d3dkmddi.h)

DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 is called to change the overlay configuration being displayed.

Syntax

DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 DxgkddiSetvidpnsourceaddresswithmultiplaneoverlay3;

NTSTATUS DxgkddiSetvidpnsourceaddresswithmultiplaneoverlay3(
  IN_CONST_HANDLE hAdapter,
  IN_OUT_PDXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 pSetVidPnSourceAddressWithMultiPlaneOverlay
)
{...}

Parameters

hAdapter

Identifies the adapter containing the overlay hardware.

pSetVidPnSourceAddressWithMultiPlaneOverlay

A pointer to a DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 structure that describes the surfaces and display options to present.

Return value

DXGKDDI_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3 returns the following values:

Return code Description
STATUS_SUCCESS The routine completed successfully.
STATUS_INVALID_PARAMETER In the [hardware flip queue model]/windows-hardware/drivers/display/hardware-flip-queue), the driver was unable to process a flip request.
STATUS_RETRY Returned for reasons such as the driver failed to queue a request to the hardware due to pending flips or the driver needs to be called at the PASSIVE_LEVEL. If the driver needs to be called at PASSIVE_LEVEL it should also set the DXGK_SETVIDPNSOURCEADDRESS_OUTPUT_FLAGS.PrePresentNeeded flag.

Remarks

This function is typically called at interrupt level, but if the driver needs to perform hardware configuration that can only be performed at PASSIVE_LEVEL, the driver can request that this function be recalled at PASSIVE_LEVEL by returning STATUS_RETRY and setting the DXGK_SETVIDPNSOURCEADDRESS_OUTPUT_FLAGS.PrePresentNeeded flag.

Even when called at PASSIVE_LEVEL, the driver should avoid spending a significant amount of time in this call because the call blocks the main GPU scheduler thread and delay could lead to present glitches. Time intensive actions should be queued as separate work items by driver and handled in background. In this scenario, any conflicts between the queued item and hardware changes demanded by future pre/post calls should be managed by the driver.

Requirements

Requirement Value
Target Platform Windows
Header d3dkmddi.h

See also

DXGKARG_SETVIDPNSOURCEADDRESSWITHMULTIPLANEOVERLAY3