WDDM 2.1 要求表
功能 |
| |
供应和回收改进 | 必需 | |
视频内存管理 | 可选 | |
硬件保护内容的可靠性改进 | 选择硬件 | |
支持 Windows GameDVR 的应用程序 |
| |
间接显示 | 选择硬件 | |
驱动程序存储和并行安装 | 必需 | |
适用于摄像头/捕获场景的 DirectX 内存图面共享 | 必需 |
WDDM 2.1 支持以下 D3D 版本:D3D9、D3D10、D3D10.1、D3D11、D3D11.x、D3D12
供应和回收改进
添加了 PFND3DDDI_RECLAIMALLOCATIONS3CB 回调函数,以减少在后台模式下运行的应用程序的内存占用。 此接口可让应用程序在进入后台时提供可接受完全回收的资源。 因此,进程生存期管理器能够从使用 DirectX 的后台程序中回收更多内存,从而减少后台程序在内存压力下被终止的次数。
其他 DDI 更改:
- PFND3DDDI_UPDATEALLOCATIONPROPERTYCB 回调
- PFND3DDDI_OFFERALLOCATIONS2CB 回调
- D3DDDICB_OFFERALLOCATIONS2 结构
- D3DDDICB_RECLAIMALLOCATIONS3 结构
支持 Windows GameDVR 的应用程序
Windows 10 周年版改进了全屏游戏中使用 Windows 游戏栏和 GameDVR 的功能。
WDDM 2.1 驱动程序需要支持名为当前批处理的性能功能,该功能为翻转模型交换链添加了多线程支持。 此基本功能可确保带游戏栏的全屏游戏以与早期版本 Windows 相同的性能运行。
为启用此功能添加了以下 DDI:
- PFND3DDDI_SYNCTOKENCB 回调
- D3DDDIARG_SYNCTOKEN 结构
- PFND3DDDI_SYNCTOKEN 回调
间接显示
在 WDDM 2.1 中,“间接显示”使 USB 连接的显示器能够像其他监视器一样,参与所有相同的用户体验。 此外,间接显示驱动程序 (IDD) 是一种用户模式驱动程序,开发起来比内核模式驱动程序简单,因此有助于提高系统的整体可靠性。
- 在 WDDM 2.1 中,启用了以下 USB 显示功能/体验:
- 当 USB 显示器连接到 Windows 平台或升级操作系统时,会从 Windows 更新下载并安装适当的驱动程序。
- 将监视器连接到 USB 显示硬件时,将检测并设置正确的监视器拓扑结构、分辨率和 DPI。
- 用户可以在监视器上更改其分辨率和缩放。
- 用户可以断开 USB 显示器并重新连接显示器,而不会产生意想不到的副作用。
- 通过断开连接并重新连接到同一监控器,监控器拓扑结构将得以保留。
- USB 显示器可在睡眠和休眠等各种电源状态下正常工作。
驱动程序存储和并行安装
WDDM 2.1 引入了通过驱动程序存储安装图形驱动程序的功能。 这种安装图形驱动程序的机制提高了 Windows Update 驱动程序更新的复原能力。 它能消除驱动程序文件版本不匹配导致的系统不稳定和用户发起的重启。 每个后续驱动程序更新都将直接从其在驱动程序存储中的唯一位置(即 System32\DriverStore\FileRepository\[…])运行,从而避免驱动程序文件覆盖和不匹配。
驱动程序存储功能的实现需要更改图形驱动程序 INF 文件,以确保驱动程序文件被复制到唯一的驱动程序存储库。
DXIL
WDDM 2.1 引入了 GPU 着色器编译器堆栈从 DirectX 字节代码 (DXBC) 到 DirectX 中间语言 (DXIL) 的过渡,这是一种向 GPU 传输着色器指令的较新格式。 过渡到 DXIL 可为开发人员带来以下好处:
- 可编程性。 通过最大限度地减少 GPU 编程语法与开发人员熟悉的 CPU 语言之间的差异,提高了开发的易用性,降低了着色器创建过程对开发人员的复杂性。
- 高性能编译器:
- 启用运行时着色器性能可提高性能。
- DXIL 提供了一套内在函数,可在 GPU 的 SIMD 处理器通道间共享数据。
- 工作流灵活性 - DXIL 使开发人员能够控制自己的自定义工具和优化程序,并选择在生成时应用哪些编译步骤,而不是在运行时应用哪些编译步骤。
- 高级语言功能 - 高级语言可提供关键功能,从而消除 GPU 代码与 CPU 代码之间的差异,使得 GPU 程序员的学习曲线更加平坦。
这些功能的重点是为开发人员带来好处,而最终用户得到的好处是,即使在现有硬件上运行,新游戏或更新游戏的性能也会有所提高。
适用于摄像头/捕获场景的 DirectX 内存图面共享
在 WDDM 2.1 中,引入了帧服务器组件,以便在多个进程中同时共享摄像头或捕获设备。 捕获的帧可以保存到一个内存位置,多个应用程序都可以从中读取,而无需在进程和协处理器之间多次复制图像数据。 此功能可为符合 WDDM 2.1 标准的硬件和驱动程序提供跨多个进程的高效捕获图片管理、节能、更低的带宽和减少延迟。 最终结果是提高应用程序和用户的性能。
帧服务器将捕获的图像分配为跨进程可共享内存,并将该内存共享给请求访问的进程。 由于帧服务器会将纹理广播给多个客户端进程,因此纹理必须支持并发读取。 为此,目前支持 NV12 纹理。