本主题概述了影响 WPF 应用程序的 WPF 图形呈现注册表设置。
何时使用图形渲染注册表设置
这些注册表设置用于故障排除、调试和产品支持目的。 由于对注册表的更改会影响所有 WPF 应用程序,因此应用程序不应自动更改这些注册表项,也不应在安装期间更改这些注册表项。
什么是 XPDM 和 WDDM?
某些图形呈现注册表设置具有不同的默认值,具体取决于视频卡是使用 XPDM 还是 WDDM 驱动程序。 XPDM 是 Microsoft Windows XP 显示驱动程序模型,WDDM 是 Microsoft Windows 显示驱动程序模型。 WDDM 在运行 Windows Vista 和 Windows 7 的计算机上可用。 XPDM 在运行 Windows Vista、Microsoft Windows XP 和 Microsoft Windows Server 2003 的计算机上可用。 有关 WDDM 的详细信息,请参阅 Windows 显示驱动程序模型(WDDM)设计指南。
注册表设置
WPF 提供了四个用于控制 WPF 渲染的注册表设置:
设置 | DESCRIPTION |
---|---|
禁用硬件加速选项 | 指定是否应启用硬件加速。 |
最大多重采样值 | 指定抗锯齿 3D 内容的多重采样程度。 |
所需的视频驱动程序日期设置 | 指定系统是否禁用 2004 年 11 月之前发布的驱动程序的硬件加速。 |
使用参考光栅器选项 | 指定 WPF 是否应使用参考光栅化器。 |
任何知道如何引用 WPF 注册表设置的外部配置实用工具都可以访问这些设置。 还可以通过使用 Windows 注册表编辑器直接访问值来创建或修改这些设置。
禁用硬件加速选项
注册表项 | 值类型 |
---|---|
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration |
DWORD |
禁用硬件加速选项使你可以关闭硬件加速以进行调试和测试。 在应用程序中看到渲染伪影时,请尝试关闭硬件加速。 如果工件消失,则可能是您的视频驱动程序出现了问题。
禁用硬件加速选项是 0 或 1 的 DWORD 值。 值为 1 会禁用硬件加速。 如果系统满足硬件加速要求,则值为 0 可实现硬件加速;有关详细信息,请参阅 图形呈现层。
最大多重采样值
注册表项 | 值类型 |
---|---|
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\MaxMultisampleType |
DWORD |
使用最大多重采样值可以调整 3D 内容的最大抗锯齿量。 使用此级别在 Windows Vista 中禁用 3D 抗锯齿。
最大多重采样值为 DWORD 值,范围为 0 到 16。 值为 0 指定应禁用 3D 内容的多重采样抗锯齿,如果视频卡支持,则值 16 将尝试使用最多 16 倍的多重采样抗锯齿。 请注意,在使用 XPDM 驱动程序的计算机上设置此注册表项值将导致应用程序使用大量额外的视频内存、降低 3D 渲染的性能,并有可能引入呈现错误和稳定性问题。
如果未设置此注册表项,对于 XPDM 驱动程序,WPF 默认为 0,WDDM 驱动程序为 4。
所需的视频驱动程序日期设置
注册表项 | 值类型 |
---|---|
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\RequiredVideoDriverDate |
字符串 |
2004年11月,Microsoft发布了驱动程序测试指南的新版本:在此日期之后编写的驱动程序可提供更好的稳定性。 默认情况下,WPF 将为这些类型的驱动程序使用硬件加速管道,如果是此日期之前发布的 XPDM 驱动程序,则将退回到软件呈现。
通过所需的视频驱动程序日期设置,可以指定 XPDM 驱动程序的备用最小日期。 如果你确信视频驱动程序足够稳定,足以支持 WPF,则你应仅指定早于 2004 年 11 月的日期。
所需的视频驱动程序设置采用以下格式的字符串:
字符串格式 |
---|
YYYY/ 毫米/ DD |
其中 YYYY 是四位数年份, MM 是两位数月份, DD 是两位数的日期。 如果未设置此值,WPF 将使用 2004 年 11 月作为所需的视频驱动程序日期。
使用参考光栅器选项
注册表项 | 值类型 |
---|---|
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\UseReferenceRasterizer |
DWORD |
使用参考光栅器选项可以强制 WPF 进入模拟硬件呈现模式进行调试:WPF 进入硬件模式,但使用 Microsoft Direct3D 参考软件光栅器(d3dref9.dll)而不是实际的硬件设备。
参考光栅化器的速度非常慢,但可以绕过视频驱动程序,以避免因驱动程序问题导致的任何渲染问题。 因此,可以使用参考光栅器来确定呈现问题是否由视频驱动程序引起。 d3dref9.dll 文件必须位于应用程序可以访问它的位置,例如,在系统路径或应用程序的本地目录中的任何位置。
使用引用光栅器选项需要一个 DWORD 值。 值为 0 表示未使用引用光栅器。 任何其他非零值都强制 WPF 使用引用光栅器。