当前位置: 首页 > news >正文

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

亮度数据

为了确保用户不会因为切换而注意到亮度变化,GPU0 和 GPU1 显示的所有亮度属性都必须相同。 此要求可确保在切换 GPU0 至 GPU1 之前的任何亮度级别,在切换至 GPU1 后都可以支持。

为此,GPU0 和 GPU1 的驱动程序必须:

  • 使用相同的亮度接口,即 DXGK_BRIGHTNESS_INTERFACE_2 或 DXGK_BRIGHTNESS_INTERFACE_3,其中强烈推荐使用版本 3。
  • 对于亮度 v3 接口,两种驱动程序都必须显示基于尼特的亮度或未校准亮度。
  • 对于亮度 v2 接口,两个驱动程序都必须从 GetPossibleBrightness 返回完全相同的可能亮度级别。
  • 对于亮度 v3 接口,两个驱动程序必须返回完全相同的范围;也就是说,每个驱动程序都应从 GetNitRanges 返回完全相同的 DXGK_BRIGHTNESS_GET_NIT_RANGES_OUT 结构。
  • 驱动程序用于将 OS 提供的亮度水平转换为面板特定设置的内部表格必须相同。

在大多数笔记本电脑中,GPU 驱动程序会以非标准方式从平台获取部分或全部亮度数据。 我们预计,这种平台到 GPU 的数据交换可能需要扩大,方可满足这些要求。

虽然在适配器启动时会查询亮度接口,但在内部面板进行 HPD 编辑之前,OS 不会调用亮度接口的任何 DDI。 HPD 发生在多路复用器切换到 GPU 之后,因此此时驱动程序可以访问内部面板的 EDID。

我们知道,对于不支持 PWM 的面板,驱动程序可以通过 IHV 特有的方法来设置面板亮度。 但是,这种方法会增加 TCon 的复杂性,因为它可能必须支持以不同的 IHV 特定方式获取亮度,这取决于通过多路复用器连接的 GPU。

多路复用器的启动配置

在系统启动时,系统固件会控制哪个 GPU 连接到内部面板。 OS 会存储上一次控制面板的 GPU。 然后,在启动序列中,OS 会根据需要切换多路复用器,以便由正确的 GPU 控制面板。

为了在需要切换多路复用器时保留任何启动映像,只有在以下情况下才会进行切换:

  • 两个 GPU 均已启动。
  • OS 已从控制输出的启动图形过渡到控制输出的 DWM/Shell。

因此,当控制内部面板的 GPU 调用 DxgkddiSettimingsfromvidpn 后,切换就会发生。在切换过程中,如果面板处于 PSR 状态,用户将会遇到屏幕冻结的现象。

向驱动程序提供多路复用器信息

这一功能的设计意图是让 OS 调用驱动程序来提供信息,而不是提供一个驱动程序可以随时调用的回调。 这种方法可以避免驱动程序在切换序列中查询 OS 状态时出现混乱。

在下列情况下,OS 会调用驱动程序的 DxgkDdiDisplayMuxUpdateState DDI 向驱动程序提供当前的多路复用器状态:

在驱动程序启动时,这允许驱动程序在面板未连接时避免及时轮询序列。
从 Dx 返回 D0 时。 当从某些电源状态(如休眠)返回时,固件可能需要重置多路复用器,因此驱动程序不知道状态。
这些情况以及切换序列中涉及的正常 DDI 可确保驱动程序在 GPU 处于活动状态的任何时候都能确定多路复用器的切换方向。

在此功能的第一个版本中,没有计划在内部面板未处于活动状态时切换多路复用器,因此所有切换都将经过相同的序列。


http://www.mrgr.cn/news/92429.html

相关文章:

  • 如何搭建起成熟的团队知识文档管理系统
  • 15.5 基于 RetrievalQA 的销售话术增强系统实战:构建智能销售大脑
  • AI知识架构之神经网络
  • 销售成交九步思维魔方
  • C语言文件操作深度解析:从基础到实践
  • 文件系统
  • 项目过程管理思维导图
  • 一文了解Java中的虚拟线程新特性
  • 基于大模型的肺纤维化预测及临床方案研究报告
  • 网页制作09-html,css,javascript初认识のhtml如何使用表单
  • 剑指 Offer II 031. 最近最少使用缓存
  • [已解决]dify设置本地模型deepseek报错[Error 111]
  • 自动驾驶之BEVDet
  • Redis分布式缓存面试题
  • 鸿蒙OS特点对测试的影响
  • Vulhub靶机 Apache APISIX Dashboard RCE(CVE-2021-45232)(渗透测试详解)
  • 每日一题——字母异位词分组
  • 最好的Git实践指南(Windows/Linux双系统详解)
  • Javase 笔记(自用)
  • uniapp h5支付宝支付