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 不支持启用或禁用指定的中断类型。 |
注解
在 WDDM 中使用 VSync 控件来切换 VSync ON 和 OFF,以在方案有效使用 VidPn 源和通过关闭 VSync 实现的节能之间取得平衡。 通常,操作系统控制 VSync 何时应保持打开和关闭的逻辑,并通过 DDI 调用通知 IHV 内核模式驱动程序 (KMD) 。 KMD 执行请求。 在Windows 10版本 2004 (WDDM 2.7) 之前,VSync 控件的粒度是每个适配器;也就是说,对于给定的适配器,VSync 控件应用于适配器的每个 VidPn 源。 例如,假设有两个 VidPn 源连接到两个不同的输出的适配器。 如果一个输出没有活动,并且其上没有 VSync/VBlank 的使用者,则只有一个选项:OS 必须为非活动输出保留 VSync ON。
对于双屏便携式设备,在不需要时为一个屏幕保留 VSync 会产生巨大的电源成本。 它要求显示控制器/显示链接保持活动状态,并阻止支持自我刷新的面板进入低频率、低功耗自刷新模式。 在 Windows 10 版本 2004 及更高版本中,DxgkDdiControlInterrupt3 允许对适配器的每个 VidPn 源进行更精细的 VSync 控制。
在适配器的生存期内,操作系统仅使用 DxgkDdiControlInterrupt3 或 DxgkDdi_ControlInterrupt2 之一。
不实现 DxgkDdi_ControlInterrupt3 的 WDDM 2.7 驱动程序选择退出独立的 VidPn VSync 控制,操作系统将仅调用 DxgkDdi_ControlInterrupt2。 DXGK_DRIVERCAPS-IndependentVidPnVSync> 功能在不支持DxgkDdi_ControlInterrupt3的驱动程序中必须为 0;否则,OS 将失败适配器初始化。 如果驱动程序实现了 DxgkDdi_ControlInterrupt3,则可以将该功能设置为 0 或 1 以指示 Per-VidPn 支持。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 2004 |
标头 | d3dkmddi.h |