Windows 图形显示驱动开发-WDDM 3.2-自动显示切换(六)

显示切换后应保持不变的显示属性

显示切换不应更改以下任何显示属性:

  1. 桌面分辨率
  2. VidPn 路径(包括 VidPn 源模式、目标模式、缩放等)
  3. DPI
  4. 夜灯设置
  5. Gamma
  6. 显示拓扑
  7. HDR 开启/关闭
  8. SDR 白色等级
  9. 颜色配置文件
  10. 监视器的 OPM 目标类型
  11. 显示器亮度

匹配 GPU 上限,以实现无缝切换体验

为了给用户提供无缝的切换体验,显示器在切换后的配置应与切换前保持一致。 要实现这种行为,两个 GPU 都需要相同的 GPU 功能支持。 例如,如果一个 GPU 支持 HDR,而另一个 GPU 不支持,那么在一个 GPU 上启用 HDR 时进行切换就不会是无缝的。

下表列出了 GPU 显示功能和特性,并说明了两个 GPU 之间的对齐要求。

功能 需要无缝支持的 GPU
HDR 如果面板支持 HDR,那么两个 GPU 要么支持 fp16 HDR,要么不支持 HDR。
Hw 游标 否。 OS 能适应不同的游标功能,而不会对用户造成明显的干扰。
MPO 否。 OS 能适应不同的 MPO 功能,而不会对用户造成明显的干扰。
PSR 两个 GPU 都需要支持这一功能。
EDID/DisplayID 两个 GPU 必须公开相同的 EDID/DisplayId。
亮度上限 两个 GPU 都必须支持相同的亮度接口和亮度上限。
亮度级别 两个 GPU 需要公开相同的亮度级别和时间间隔。
解决方法 两个 GPU 需要支持相同的源模式和目标分辨率。
刷新率 参阅如果 GPU1 不支持 GPU0 运行面板时的刷新率
动态刷新率 否。 OS 可适应不同的虚拟刷新率支持。
可变刷新率 参阅如果 GPU1 不支持 GPU0 运行面板时的刷新率
如果 GPU1 不支持 GPU0 运行面板时的刷新率,则会出现问题

如果 GPU1 不支持与 GPU0 相同的模式,那么缩减模式很可能会存储在显示拓扑数据库中。 然后,当系统切换回 GPU0 时,将设置缩减模式。 例如,如果 GPU0 支持 120Hz,但 GPU1 只支持 60Hz,那么可能会发生以下序列:

  1. 系统配置为 GPU0 控制显示器,并且模式为 120Hz。
  2. 用户手动切换为 GPU1。
  3. 显示拓扑数据库为显示器存储了 120Hz,但 GPU1 不支持,因此 OS 选择了 60Hz。
  4. 60Hz 已设定并存储在显示拓扑数据库中。
  5. 用户手动切换回 GPU0。
  6. 显示拓扑数据库从数据库中读取 60Hz。

为提供最佳体验,OEM 应选择同时支持内部面板最大刷新率的 iGPU 和 dGPU。 如果这是不可能的,而一个 GPU 无法支持面板的最大刷新速率,那么能够支持面板刷新率的 GPU 必须支持 Windows 动态刷新率(DRR)功能,并且需要包含以下范围:

  • 其他 GPU 的最高刷新率。
  • 内部面板的最高刷新率。

例如,如果面板可支持 300Hz,而 iGPU 只能支持 60Hz,那么 dGPU 必须支持 VRR,频率范围至少为 60Hz 至 300Hz。

总之,ADS 对刷新率的要求是:

  1. 内部面板的最大刷新率由 iGPU 和 dGPU 支持。
  2. 支持内部面板最大刷新率的 GPU 必须支持从其他 GPU 所能支持的最高刷新率到内部面板最大刷新率范围的 DRR。

HDR 和 Dolby Vision

OS 在切换后,GPU1 的内部面板上会设置与切换前 GPU0 内部面板上相同的 HDR/Dolby 视觉状态。 用户应该不会注意到任何变化。

夜灯

夜灯是通过 WDDM gamma 或色彩矩阵接口(DDI)实现的。 在这两种情况下,OS 切换到 GPU1 后,设置的夜灯级别与切换前的 GPU0 相同。

颜色配置文件

OS 会在面板切换后应用与切换前相同的颜色配置文件。

显示故障检查屏幕

目前,OS 支持在非 POST 设备上显示 bug 检查屏幕。 当发生 bug 检查时,OS:

  • 不会切换多路复用器。
  • 使用当前操作系统的支持来显示故障检查屏幕。

在评估要显示 bug 检查的潜在目标时,OS 会跳过与切换到不同目标的多路复用器相连的任何目标。

在从 GPU0 分离的 HPD 被处理的那一小段时间里,来自 GPU1 的 HPD 尚未完全处理。 如果在此时间段内发生故障检测,用户将不会看到故障检测。 如果在 PSR 仍处于启用状态的一小段时间内发生 bug 检查,控制显示器的驱动程序应确保在 OS 调用DxgkDdiSystemDisplayEnable 时面板未处于 PSR 模式。

内容自适应亮度算法

在理想情况下,两个 GPU 使用的内容自适应算法应该产生相同的效果。 然而,相同的效果可能不会出现,用户在切换内部面板时可能会注意到差异。

相关推荐
cjchsh7 分钟前
ctfhub-web信息泄露通关攻略
windows·python·github
扛枪的书生2 小时前
Windows 提权-SeImpersonatePrivilege 特权
windows·渗透·kali·提权
i建模3 小时前
windows下访问linux,unix终端工具选型
linux·windows·unix
局外人_Jia4 小时前
【C# 变量字符串还原转义字符】
linux·数据库·windows·正则表达式·c#·字符串·indexof
i建模5 小时前
Windows前端开发IDE选型全攻略
前端·ide·windows·node.js·编辑器·visual studio code
WIFI_BT_DEV6 小时前
Linux设备驱动开发-PCI/PCIE
c语言·arm开发·驱动开发·嵌入式硬件·硬件架构·信息与通信·信号处理
开开心心就好8 小时前
多功能免费网络测速及问题诊断工具
网络·人工智能·windows·python·软件工程·软件需求
黑客影儿11 小时前
白帽黑客系列教程之Windows驱动开发(64位环境)入门教程(五)
c语言·windows·驱动开发·程序人生·系统安全·学习方法·visual studio
WIFI_BT_DEV11 小时前
Linux设备驱动开发-Pinctrl子系统使用详解
linux·c语言·arm开发·驱动开发·嵌入式硬件·硬件工程·信息与通信