生活哲学

什么是WDDM 3.0? WDDM 启用的功能

WDDM 是之前的 Windows 2000 和 Windows XP 显示驱动程序模型 XDDM/XPDM 的替代品,旨在支持更好的图形性能、新的图形功能和稳定性。 Windows Vista 和 Windows 7 中的显示驱动程序可能与 WDDM 或 XDDM 兼容。然而,随着 Windows 8 中 XDDM 的移除,WDDM 成为唯一的选择。

什么是 WDDM 3.0 的图片 1?WDDM 启用的功能

WDDM 提供使用桌面窗口管理器渲染桌面和应用程序所需的功能,桌面窗口管理器是一个运行在 Direct3D 之上的复合窗口管理器。它还支持基本设备创建和管理所需的新 DXGI 接口。 WDDM 至少需要一个支持 Direct3D 9c 的显卡和显示驱动程序来实现 Direct3D 9Ex 运行时运行旧版 Direct3D 应用程序的设备驱动程序接口;它可以选择为 Direct3D 10 及更高版本实现运行时接口。

WDDM 启用的功能

WDDM 驱动程序提供了以前的显示驱动程序模型所不具备的新功能领域。其中包括:

虚拟显存

在图形上下文中,虚拟化意味着单个进程(在用户模式下)即使在命令行中插入恶意命令也无法看到相邻进程的内存。 WDDM 驱动允许显存虚拟化,视频数据从显存拆分到系统 RAM 中。

如果可用视频内存不足以存储所有视频数据和纹理,则当前未使用的数据将移出系统 RAM 或驱动器。当需要交换的数据时,将其取回。早期的驱动程序模型(例如 XP 驱动程序模型)在某种程度上可以支持虚拟化,但这是驱动程序的责任,而不是在运行时处理。

时间表

运行时处理并发图形上下文的调度。每个指令列表都由 GPU 放入队列中等待执行,如果有更重要的任务到达并且尚未开始执行,则可以在运行时对其进行优先级排序。这与 CPU 上的本机线程不同,在本机线程中,任务不能被中断,因此可能需要比必要时间更长的时间,并使计算机的响应速度变慢。

原生线程和轻量级线程之间的混合调度算法将实现无缝并行。需要注意的是,调度并不是一个新概念,以前是各个驱动程序开发人员的责任。 WDDM 试图通过控制 GPU 任务的执行来统一不同厂商之间的体验。

Direct3D 表面之间的跨进程共享

Direct3D 图形表面是一个内存区域,用于保存有关用于渲染 2D 或 3D 场景的纹理网格的信息。 WDDM 允许跨进程共享 Direct3D 表面。因此,一个应用程序可以将另一个应用程序创建的网格合并到它正在显示的场景中。在 WDDM 之前,在进程之间共享纹理非常困难,因为它需要将数据从显存复制到系统内存,然后再复制回新设备的显存。

提高容错能力

Windows Vista 警告用户 WDDM 恢复成功

如果 WDDM 驱动程序崩溃或遇到错误,图形堆栈将重新启动驱动程序。将抑制图形硬件故障,并在必要时重置驱动程序。

Windows XP 驱动程序可以自由地处理它认为合适的硬件故障,方法是向用户报告或尝试静默恢复。使用 WDDM 驱动程序时,所有硬件故障都会导致驱动程序被重置,并且用户将收到一个弹出窗口的通知(这是供应商之间同意的)。

以前的驱动程序完全在内核模式下实现,而 WDDM 部分在用户模式下实现。如果用户模式区损坏且无法恢复,最多只会导致应用程序意外退出,而不是像以前的驱动程序模型那样创建蓝屏错误。

WDDM 还允许在无需重启的情况下重置图形硬件和更新驱动程序。

限制

新的驱动程序模型要求图形硬件至少具有 Shader Model 2.0 支持,因为固定功能管道现在已移植到 Shaders 2.0。然而,据微软称,截至 2009 年,运行 Windows Vista 的硬件中只有大约 1-2% 使用 XDDM,其余的已经能够使用 WDDM。

它还需要一些其他的硬件特性;因此,某些支持 SM 2.0 的硬件(例如 Intel GMA 900)未通过 WDDM 认证。

WDDM 1.0 版驱动程序模型的限制之一是它不支持多适配器、多显示器设置中的多个驱动程序。如果多显示器系统有多个图形为显示器供电的适配器,两个适配器必须使用相同的 WDDM 驱动程序。如果使用多个驱动程序,Windows 将禁用其中之一。 WDDM 1.1 没有这个限制。

WDDM 1.0/1.1 不允许驱动程序以前处理的某些模式,例如扩展模式(跨越两个显示器上的桌面),尽管双视图仍然可用。

需要一个新的显示器驱动程序模型

Windows 显示驱动程序模型激活的主要场景之一是桌面 Windows 管理器。由于 DWM 管理的桌面和应用程序窗口是 Direct3D 应用程序,因此打开窗口的数量直接影响所需的视频内存量。由于没有打开窗口的数量限制,可用显存可能不够,需要虚拟化。

由于 DWM 组成桌面的窗口内容最终是由不同的进程创建的,因此需要在进程之间共享表面。此外,由于在 DWM 管理的桌面上可能还有其他使用 DWM 运行的 DirectX 应用程序,因此它们需要能够访问共享的、预先调度的 GPU。

虽然 Microsoft 在 Windows Vista 中实现混合桌面的情况确实如此,但另一方面,复合桌面理论上不需要新的显示驱动程序模型即可按预期运行。在 Windows Vista 之前,在 Quartz、Compiz、WindowFX 等其他平台上已经成功部署了合成桌面。

Microsoft 尝试的方法是通过标准化其功能和性能来确保 WDDM 是跨来自多个供应商的不同 GPU 的统一体验。其他驱动程序模型中缺少的软件功能可能变得不重要,因为有扩展可用,或者引入了更简单或限制更少的驱动程序模型。

WDDM 3.0

什么是 WDDM 3.0 的图片 2?WDDM 启用的功能

WDDM 3.0 是最新版本的 Windows 显示驱动程序模型。 WDDM 3.0 将包括 Windows 11 上 Linux 程序的图形兼容性。

不可否认,有很多值得期待的地方,尽管许多人谴责 Windows 11 只是 Windows 10 的一个新主题包。我们知道的一件事是 Windows 11 包含 WDDM 3.0(Windows 显示驱动程序模型)。这意味着 WSL GUI,简称 WSLg-换句话说,Windows 中的图形 Linux 应用程序。

对 WLSg 的支持并不是全新的。 Windows Insider 程序的 Beta 测试人员可以短暂使用它,但 Windows 11 中包含 WDDM 3.0 标志着图形架构的两项重要改进的到来。

WDDM 3.0 出现在 Windows 10 Insider Preview "Cobalt" build 21301 上。WDDM 3.0 改进了额外的 Windows 子系统 Linux 中的图形架构:

  1. 用户模式驱动程序是在 WSL 包中为 Linux 编译的。
  2. 安装在 Linux 中的主机驱动程序

在 Windows 11 中运行 Linux GUI 应用程序的能力可能不会吸引所有人,但对于跨多个平台工作的任何人来说,这是一项重要的发展。

相关资讯

评论

回复