Skip to content

Latest commit

 

History

History
83 lines (63 loc) · 4.19 KB

nc-d3dkmddi-dxgkddi_controlinterrupt3.md

File metadata and controls

83 lines (63 loc) · 4.19 KB
UID title ms.date targetos tech.root description req.assembly req.construct-type req.ddi-compliance req.dll req.header req.idl req.include-header req.irql req.kmdf-ver req.lib req.max-support req.namespace req.redist req.target-min-winverclnt req.target-min-winversvr req.target-type req.type-library req.umdf-ver req.unicode-ansi topic_type api_type api_location api_name f1_keywords dev_langs
NC:d3dkmddi.DXGKDDI_CONTROLINTERRUPT3
DXGKDDI_CONTROLINTERRUPT3
03/24/2020
Windows
display
The DxgkDdi_ControlInterrupt3 function enables or disables the given interrupt type for the specified VidPnSourceId on the graphics hardware.
function
d3dkmddi.h
Windows 10, version 2004
apiref
LibDef
d3dkmddi.h
DXGKDDI_CONTROLINTERRUPT3
DXGKDDI_CONTROLINTERRUPT3
d3dkmddi/DXGKDDI_CONTROLINTERRUPT3
c++

-description

The DxgkDdi_ControlInterrupt3 function enables or disables the given interrupt type for the specified VidPnSourceId on the graphics hardware.

-parameters

-param hAdapter [in]

A handle to the adapter object for the graphics processing unit (GPU). The driver returned this handle in the MiniportDeviceContext parameter from a call to its DxgkDdiAddDevice function.

-param InterruptControl [in]

A DXGKARG_CONTROLINTERRUPT3 structure that supplies the interrupt type, the VSYNC state, and the VidPnSourceId.

-returns

DxgkDdi_ControlInterrupt3 returns one of the following values:

Return code Description
STATUS_SUCCESS The interrupt type was successfully enabled or disabled on the graphics hardware.
STATUS_NOT_IMPLEMENTED DxgkDdi_ControlInterrupt3 does not support enabling or disabling the specified interrupt type.

-remarks

VSync control is used in WDDM to toggle VSync ON and OFF to balance between active usage of a VidPn source by a scenario and power savings achieved by turning OFF VSync. In general, the operating system controls the logic of when VSync should remain ON and OFF and notifies the IHV Kernel Mode Driver (KMD) via a DDI call. The KMD executes the request. Before Windows 10, version 2004 (WDDM 2.7), the granularity of VSync control is per adapter; that is, for a given adapter, VSync control applies to every VidPn source of the adapter. For example, consider an adapter that has two VidPn sources connected to two different outputs. If one output has no activity and no consumers for VSync/VBlank on it, then there is only one option: the OS has to keep VSync ON for the inactive output.

For dual screen portable devices, keeping VSync ON for one screen when it is not needed has significant power costs. It requires the display controller/display link to remain active and prevents panels which support self-refresh from going into a low frequency, low power self-refresh mode. In Windows 10, version 2004 and later versions, DxgkDdiControlInterrupt3 allows for finer granularity VSync control of per VidPn Source of an adapter.

Only one of DxgkDdiControlInterrupt3 or DxgkDdi_ControlInterrupt2 will be used by the OS during the lifetime of an adapter.

WDDM 2.7 drivers that do not implement DxgkDdi_ControlInterrupt3 are opting out of independent VidPn VSync control, and the OS will only call DxgkDdi_ControlInterrupt2. The DXGK_DRIVERCAPS->IndependentVidPnVSync capability must be 0 in drivers that do not support DxgkDdi_ControlInterrupt3; otherwise, the OS will fail adapter initialization. If a driver does implement DxgkDdi_ControlInterrupt3, then the capability can be set to 0 or 1 to indicate Per-VidPn support.

-see-also

DXGKARG_CONTROLINTERRUPT2

DXGK_DRIVERCAPS

DXGKARG_CONTROLINTERRUPT3

DxgkDdi_ControlInterrupt2