对于同时使用高刷新率显示器(如144Hz、165Hz或240Hz)以及保留一块60Hz显示器作为第二块屏幕的用户来说,可能会遇到一个令人困扰的问题。要诊断这个问题,可以按照以下步骤操作:首先,关闭所有其他程序;其次,在主屏幕上使用Chrome浏览器打开testufo网站;接着,稍等片刻,观察网页下方的颜色变化,如果变为黄色或绿色,并且上方第一排显示144或更高的数值,则说明显示器工作正常。
如果测试结果不符合上述标准,那么很可能是桌面刷新率设置不正确。此时,需要进入NVIDIA或AMD的控制面板,调整桌面的刷新率,然后重新测试。
接下来,打开一个新的Chrome标签页,将其拖拽到60Hz的副屏幕上,然后访问任何一个视频网站,播放视频或直播内容。稍等片刻或刷新testufo网页,你会观察到令人惊讶的现象:
网页上方的第一排数值变成了60帧!
这就是所谓的“中招”了。这个故障自Windows 10于2015年发布以来一直存在,而Windows 7、8、8.1系统则没有这个问题。虽然某些版本的AMD驱动程序曾经没有这个问题,但目前最新版本的Intel、AMD和NVIDIA驱动程序都存在这一故障。
目前还没有彻底解决这个问题的方法。许多Windows 10 Insider用户,包括我自己,已经提交了大量的Bug报告。据分析,这个Bug可能是桌面合成器和WDDM驱动层共同作用的结果,因此短期内很难得到修复。
那么,面对这个问题,我们可以采取哪些措施呢?
目前我有以下几个建议的解决方案:
1. 购买一个与主屏幕刷新率相同的显示器——虽然这个方法可行,但估计很少有人愿意这样做。
2. 尝试让副屏幕不运行显卡加速的内容。
下面我将详细说明如何实现第二个方案。由于NVIDIA取消了驱动面板中的多屏幕性能优化选项,因此需要使用第三方工具来实现这一目标:
这个工具可以关闭副屏幕的OpenGL加速。OpenGL虽然有一定作用,但问题的核心在于Direct3D。由于AERO效果依赖于Direct3D,关闭它会导致窗口无法显示。因此,我们需要关闭浏览器的GPU加速。Chrome目前无法关闭GPU加速,所以只能使用Firefox作为副屏幕专用浏览器,并在选项中关闭硬件加速:
然后,打开任意视频直播页面。之后刷新Chrome的飞行UFO测试页面:
嗯,虽然还是有些掉帧,但至少刷新率是正确的了。掉帧是CPU渲染的结果,总的来说,可以接受。
下面是使用OBS进行直播用户的设置建议:
关闭预览功能,即可解决锁定低刷新率的问题。
还有一个奇怪的现象:
在副屏幕使用Chrome观看YouTube视频时,不会影响主屏幕的帧数。
目前还不清楚为什么会出现这种情况,可能与VP9解码器的渲染流程有关。国内网站通常使用h264编码。另外,Windows系统不支持桌面多刷新率,因此刷新率和帧数会按照最高显示器的标准来设置。也就是说,在窗口模式下,60Hz的副屏幕会显示144fps的帧数,但由于144不能被60整除,所以会产生跳帧现象,即144和60Hz组合的双屏幕模式中,60Hz的屏幕会显得格外卡顿。
为了解决这个问题,可以将高刷新率屏幕的刷新率设置为60的整数倍,例如120Hz、180Hz或240Hz。
当然,与144Hz相比,这点卡顿可能不是非常重要。至少我个人决定在Windows支持多刷新率之前,先忍耐一下,毕竟保证主屏幕的144Hz体验还是比较重要的。
另外,将60Hz的显示器超频到72Hz也是一个可行的解决方案。基本上,大部分60Hz显示器都可以超频到这个频率。
我的副屏幕是4k60Hz显示器,使用DP 1.2接口,最高只能在4k分辨率下超频到66Hz,所以无法采用这种方法。