控制台和远程 IDD 的 IddCx 1.4 更新

IddCx 版本 1.4 的以下更新适用于主机驱动程序和远程间接显示驱动程序 (IDD) 。

远程 IDD 的开发人员还应查看 远程 IDD 的 IddCx 1.4 更新 ,以获取其他特定于远程的更新。

更新 IddCxGetVersion 版本

iddCxGetVersion 在 Windows 10 版本 1903 上返回的 IddCx 版本已更新为IDDCX_VERSION_19H1 (0x1400) 。 有关 IddCx 相关版本 信息的完整列表,请参阅 IddCx 版本。

提供用于将桌面呈现到交换链的首选呈现适配器

IddCx 1.4 之前的 IddCx 版本使用 开机自测试 (POST) 适配器 来呈现传递给 IDD 的桌面图像(如果不是 PnpStopped)。 如果 POST 适配器为 PnpStopped,则改用系统提供的 Windows 高级光栅化平台 (WARP) 。 但是,有些配置和方案使用 POST 适配器无法提供最佳用户体验。

IddCx 1.4 包含可选的 IddCxAdapterSetRenderAdapter OS 回调。 IDD 可以调用 IddCxAdapterSetRenderAdapter 来设置它想要用于该适配器上所有交换链的呈现适配器。

Windows 在“设置”应用程序中还有一个“图形设置”页面,允许用户设置其节能或高性能 GPU 的首选项。 下表描述了这两个功能如何在具有 Intel 集成和 Nvidia 独立 GPU 的Surface Book设备上组合使用。

IDD 的 GPU pref* 用户/OS pref** DWM+ 的枚举 App++ 的枚举 Intel 路径~ Nvidia path~~ 交换链 GPU^
无或 Intel 系统 Intel Intel 同一适配器 混合跨适配器 Intel
无或 Intel 强力 Intel Intel 同一适配器 混合跨适配器 Intel
无或 Intel 性能 Intel Nvidia 同一适配器 混合跨适配器 Intel
Nvidia 系统 Nvidia Nvidia 混合跨适配器 同一适配器 Nvidia
Nvidia 强力 Nvidia Intel 混合跨适配器 同一适配器 Nvidia
Nvidia 性能 Nvidia Nvidia 混合跨适配器 同一适配器 Nvidia

其中:

  • *IDD 的 GPU pref = IDD 的首选 GPU
  • **用户/OS pref = 用户 (应用程序) 或 OS 的 GPU 首选项
  • +DWM 的枚举 = DX 运行时枚举桌面 Windows 管理器的 ID 监视器的 GPU (DWM)
  • 应用的 ++枚举 = DX 运行时枚举应用程序 ID 监视器的 GPU
  • ~Intel 路径 = 应用程序位于 Intel 上的应用程序到 DWM 表示路径
  • ~~Nvidia 路径 = 应用程序在 Nvidia 上时的应用程序到 DWM 表示路径
  • ^交换链 GPU = 创建间接显示器交换链的 GPU

更新 Windows 10版本 1903 及更高版本的 EvtIddCxMonitorAssignSwapChain 错误处理

从 Windows 10 版本 1903 开始,EvtIddCxMonitorAssignSwapChain 回调的 IddCx 错误处理已针对所有驱动程序版本进行了更改,并引入了新的状态代码。 有关详细信息,请参阅 EvtIdCxMonitorAssignSwapChain 错误处理

对于无 EDID 方案,请添加EVT_IDD_CX_MONITOR_GET_PHYSICAL_SIZE以提供监视器的物理宽度和高度

有时,即使监视器说明不可用,IDD 也需要提供物理监视器大小 (例如,当非 Windows 平台用作监视器) 时。 与其他桌面配置属性不同,监视器的物理大小是监视器的函数,因此在添加监视器后无法更改。 如果 IDD 提供监视器说明,OS 将从该说明中获取物理大小。 如果 IDD 无法提供说明,OS 将调用可选的 EVT_IDD_CX_MONITOR_GET_PHYSICAL_SIZE 驱动程序回调来检索物理大小。 此回调作为 IddCxMonitorArrival 调用的一部分调用。

生成在多个 IddCx 版本上运行的 IddCx v1.4 驱动程序

由于 IddCx 1.3 中针对 Windows 10 版本 1809 所做的更改,以及 IddCx 1.4 中所做的更改,可以生成单个 IDD 以在Windows 10版本 1809 及更高版本上运行。 有关详细信息 ,请参阅生成 IddCx 1.4 驱动程序