WDDM 的优点

注意

XDDM 和 VGA 驱动程序不会在 Windows 8 及更高版本的操作系统上进行编译。 如果显示硬件连接到Windows 8计算机,而没有经认证支持 WDDM 1.2 或更高版本的驱动程序,则系统默认运行基本显示驱动程序。

由于以下增强功能,使用 WDDM 创建图形/显示驱动程序比使用 Windows 2000 显示驱动程序模型 (XDDM) 更容易。 此外,WDDM 驱动程序有助于提高操作系统稳定性和安全性。 更少的驱动程序代码在内核模式下运行,它可以访问系统地址空间并可能导致崩溃。

  • Direct3D 运行时和 DirectX 图形内核子系统 (Dxgkrnl) 执行更多显示处理;也就是说,与驱动程序相比,运行时和子系统中的代码更多。 此处理包括管理视频内存的代码,并计划直接内存访问 (GPU 的 DMA) 缓冲区。 有关详细信息,请参阅 视频内存管理和 GPU 计划

  • Surface 创建所需的内核模式阶段更少。

    在早于 Windows Vista 的操作系统上创建 Surface 需要连续的内核模式调用:

    1. DdCanCreateSurface
    2. DdCreateSurface
    3. D3dCreateSurfaceEx

    在 WDDM 中创建图面只需要 CreateResource 用户模式显示驱动程序调用,后者又调用运行时的 pfnAllocateCb 函数。 此调用会导致 Dxgkrnl 调用内核模式驱动程序的 DxgkDdiCreateAllocation 函数。

  • 创建和销毁图面以及锁定和解锁资源的调用将更均匀地配对。

  • WDDM 以相同的方式处理视频内存、系统内存和托管图面。 Windows Vista 之前的操作系统以微妙不同的方式处理这些组件。

  • 着色器转换在显示驱动程序的用户模式部分执行。

    此方法消除了在内核模式下执行着色器转换时出现的以下复杂性:

    • 与设备驱动程序接口 (DDI) 抽象不匹配的硬件模型
    • 转换中使用的复杂编译器技术

    由于着色器处理完全按进程进行,并且不需要硬件访问,因此不需要内核模式着色器处理。 因此,可以在用户模式下处理着色器转换代码。

    必须围绕用户模式转换代码编写 try/except 代码。 转换错误应导致返回到应用程序处理。

    后台转换 (也就是说,在独立于其他显示处理线程的线程中运行的翻译代码) 更容易为用户模式编写。