Electronic Joint Business

Solution for E-Business

dxdi

WDDM 编程与调试 (2) — WDDM 的历史版本和内部操作流程

作为 W2K 和 XP 上的显示驱动模型 XDDM/XPDM 替代者,WDDM 的目标始终是为了获得更好的图形性能、支持新的图形功能和提高稳定性。从 Windows 8 开始,微软彻底放弃了 XPDM 架构,从此 WDDM 成为了编写显卡驱动的唯一选择。

WDDM 提供了桌面窗口管理器 DWM 的所必须的功能支持,后者是一个窗口组合管理器,运行在 D3D 之上,可以对桌面和应用进行渲染。WDDM 还提供了新的 DXGI 接口来满足基本的设备创建和管理的需求。WDDM 规范要求 GPU 至少要兼容 DirectX 9,且显卡驱动都必须实现 DirectX 9 运行时的设备驱动接口以便支持以前的 DirectX 9 应用,此外还可根据需要支持其他 DirectX 10 以上版本的运行时接口。

WDDM 的主要运用场景之一是 DWM。DWM 所管理的桌面和应用窗口都是 D3D 应用,因此打开窗口的数量会直接影响所需的显存量,由于打开窗口数量是不受限制的,这可能会导致可用显存不足, 进而需要虚拟化。此外 DWM 组合到最终桌面的窗口内容一般来自不同进程,所以跨进程的表面共享也是必须的。此外, DWM 所管理的桌面上可以有其他 DirectX 应用同时在运行, 因此它们必须能够以共享的方式访问 GPU, 这就需要进行调度。

虽说微软在 Windows Vista 上(它同时支持 XPDM 和 WDDM)就实现了组合窗口管理器,或者说组合式窗口理论上并不需要一个新的驱动模型。微软试图通过对功能和性能的标准化,使得不同供应商的 GPU 在 WDDM 上能提供一致的用户体验。通过推出一个完全不同的驱动模型,原先驱动模型中缺失的功能得以消弭。1

接下来我们回顾一下 WDDM 各个历史版本来了解每个版本都增加了哪一些新功能。2

>>> 阅读全文

 

, , , ,