DXGKDDI_CONTROLINTERRUPT3回调函数 (d3dkmddi.h)
DxgkDdi_ControlInterrupt3 函数启用或禁用图形硬件上指定 VidPnSourceId 的给定中断类型。
语法
DXGKDDI_CONTROLINTERRUPT3 DxgkddiControlinterrupt3;
NTSTATUS DxgkddiControlinterrupt3(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_CONTROLINTERRUPT3 InterruptControl
)
{...}
参数
[in] hAdapter
图形处理单元(GPU)适配器对象的句柄。 驱动程序从调用其 DxgkDdiAddDevice 函数,在 MiniportDeviceContext 参数中返回了此句柄。
[in] InterruptControl
提供中断类型、VSYNC 状态和 VidPnSourceId 的 DXGKARG_CONTROLINTERRUPT3 结构。
返回值
DxgkDdi_ControlInterrupt3 返回以下值之一:
返回代码 | 说明 |
---|---|
STATUS_SUCCESS | 中断类型已在图形硬件上成功启用或禁用。 |
STATUS_NOT_IMPLEMENTED | DxgkDdi_ControlInterrupt3 不支持启用或禁用指定的中断类型。 |
言论
VSync 控件用于在 WDDM 中切换 VSync ON 和 OFF,以便通过方案在 VidPn 源的活动使用情况与关闭 VSync 实现的节能之间取得平衡。 通常,作系统控制 VSync 何时应保持 ON 和 OFF 的逻辑,并通过 DDI 调用通知 IHV 内核模式驱动程序(KMD)。 KMD 执行请求。 在 Windows 10 版本 2004(WDDM 2.7)之前,VSync 控件的粒度是每个适配器;也就是说,对于给定的适配器,VSync 控件适用于适配器的每个 VidPn 源。 例如,假设有两个 VidPn 源连接到两个不同的输出的适配器。 如果一个输出没有活动,并且其中没有 VSync/VBlank 的使用者,则只有一个选项:OS 必须保留 VSync ON 以用于非活动输出。
对于双屏便携式设备,当不需要 VSync ON 时,将 VSync ON 保留为一个屏幕具有显著的电源成本。 它要求显示控制器/显示链接保持活动状态,并阻止支持自我刷新的面板进入低频率、低功率自刷新模式。 在 Windows 10 版本 2004 及更高版本中,DxgkDdiControlInterrupt3 允许对适配器的每个 VidPn 源进行更精细的 VSync 控制。
在适配器的生存期内,OS 仅使用一个 DxgkDdiControlInterrupt3 或 DxgkDdi_ControlInterrupt2。
未实现 DxgkDdi_ControlInterrupt3 的 WDDM 2.7 驱动程序选择退出独立的 VidPn VSync 控件,并且 OS 将仅调用 DxgkDdi_ControlInterrupt2。 DXGK_DRIVERCAPS->IndependentVidPnVSync 功能必须在不支持 DxgkDdi_ControlInterrupt3的驱动程序中为 0;否则,OS 将失败适配器初始化。 如果驱动程序确实实现了 DxgkDdi_ControlInterrupt3,则可以将该功能设置为 0 或 1 以指示 Per-VidPn 支持。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 版本 2004 |
标头 | d3dkmddi.h |