楼主:
alvinli (alvin)
2020-03-28 17:17:07一个做过GPU, 待过萤幕厂, 也待过微软windows team的人路过说明一下...
刚你按下Windows HDR模式的时候,
基本上Windows是告诉显示卡要从标准RGB buffer切换成HDR用的video buffer,
显示卡如果从萤幕EDID上读到他有支援这个功能的话就会开始:
1.准备新的video/frame buffer
2.跟萤幕的HDR芯片沟通
3.跟萤幕HDR芯片沟通完后如果成功就跟windows报是否成功
3a.失败的话当然就跟user说失败了
4.成功后windows准备buffer的时候就会带着HDR需要的参数给显示卡(还有DRM资讯)
5.显示卡就会把这个格式丢给萤幕
HDR这个技术本身重点在于色阶压缩,
将画面过曝跟过暗的色阶曲线压成大致是平均分配的状态,
所以可以是多个frame合成, 也可以是单frame用不同frequency产生,
看HDR芯片怎么处理还有参数怎么带这样.
G-sync or whatever sync就不是了, 那是游戏,显卡,萤幕之间的事情.
显卡从萤幕EDID上得知它支援G-sync, 显卡自己也打开G-sync支援的话,
显卡就会报给应用程式说你可以开G-sync,
然后游戏call的API就不会经过Windows了, 命令会直接到显卡去,
(也不是完全不经过啦, 但总之OS不太会介入graphics API)
由显卡负责跟萤幕沟通whatever sync要怎么做,
显卡就会跟萤幕协调出一个可行的frame输出率.
当G-sync跟HDR都开的时候呢?
萤幕就要同时跟显卡报HDR跟G-Sync的状况,
前面说到HDR是关于色阶压缩,
所以基本上显卡送过来的每个frame都会经过HDR芯片处理,
做得好一点的, 会同时考虑前后frame一致性, 差一点的大概就每张各自算各自的.
G-sync就不是HDR这颗芯片处理了,
萤幕需要视HDR处理的状况反映在丢回去给显示卡的参数中,
简单的说就是个比较复杂的流程,
当分辨率很高更新率很高的时候状况更是艰难,
因为高分辨率时每个frame处理的时间会拉长, 但你设定的高更新率又让它不能太长.
显卡的话, 它需要处理HDR protected content, 需要计算自己frame输出率,
需要配合萤幕的能力调整输出率, 大概是这样,
基本上就是萤幕跟它说什么它就配合处理.
但PlayReady (HDR protected content, DRM处理)这边就有个变量了,
这个基本上是Windows会决定什么时候需要reauthenticate,
这个authenticate的时间我记得规格上好像是7ms内要完成(不确定, 要翻spec看看)
而这个authentication大概固定每几秒就可能需要做一次.
但Windows不会去管GPU有多忙, 那是GPU需要去处理的.
所以如果某段时间内GPU太忙, PlayReady authenticate等了比较长的时间,
或是线材不好导致PlayReady authenticate延迟不稳定或太长的话,
GPU这边只能根据实际状况调整, 万一某一次authenticate超过7ms,
那可能就会有几个ms的时间是没有内容输出的(因为authenticate失败了),
需要靠萤幕上的HDR芯片去补, 或是显示卡的其他技术去补.
或者说, PlayReady authenticate的时间也影响了输出率,
例如如果每次authenticate的时候都等了6ms,
(无论原因是是线材不好还是GPU过载还是什么其他原因)
那你当时的画面输出率就会被锁在166张每秒,
但GPU仍然还需要花一点时间去画图,
而的萤幕可能最高能7ms收一次(144Hz的情况),
在没有G-sync认证的萤幕上, 此时你的画面就很高机率会破掉.
(HDR处理需要时间, 萤幕不可能真的7ms收一次, 一定是更短的时间要收到)
这样不知道你会觉得是谁的问题?
我是觉得萤幕是凶手的机率比较大啦...
※ 引述《westwade (秋思化刃)》之铭言:
: 月初入手XV272U P
: 搭配显卡技嘉 Windforce 2070S O8G
: 想说终于可以HDR+Gsync来享受一下
: 然后过程中各种问题
: 简单说HDR+Gsync下
: 开启HDR模式会有机会失败 要一直重开
: 这问题经过各种爬文收集后
: 似乎是win10的问题
: 然后前几天更新最新的驱动后
: 玩mhwi时发现居然各种破图成一片亮光
: 不停测试后发现重启HDR后就解决了
: 讲这么多只是好奇
: HDR会有这些问题 是
: 1.微软做不好
: 2.NV驱动做不好
: 3.HDR技术不成熟
: 到底是谁的锅XDD
: