无边框窗口模式会增加操作延迟吗
无边框窗口模式会增加操作延迟吗
在游戏设置中,全屏独占模式、禁用全屏优化、无边框窗口和窗口化等不同显示模式会对操作延迟产生怎样的影响?本文通过实测对比,给出了具体的数据结果。
在本文所在的文集的第一篇文章中,我就提到了要使用全屏独占模式,分辨率刷新率使用显示器默认值,且与桌面同步。言外之意就是不要使用无边框窗口化,不要使用乱七八糟的自定义分辨率。(非要用的话其实也有办法优化操作延迟...
前几天无意间刷到 @兜不住的三角酷 的视频,介绍了几种翻转模式。我不保证其内容完全正确。
翻转模式
其中最右侧一栏,绿色的操作延迟较低,红色的较高。
尝试在国外搜索翻转模式的相关资料,可以这么说,凡是微软官方或是权威一点的资料,基本都涉及directx编程,我并不懂这个。其实原理说起来并不难理解。DWM,Desktop Window Manager,是Windows的“显示融合器”。如果你要显示的内容包括游戏和桌面各种窗口(即使它被挡住了,这里指的是无边框窗口模式),这些内容要经过DWM混合,再交给显卡输出,这个过程会增加操作延迟。全屏独占模式可以让游戏画面绕过DWM直接输出,所以操作延迟较低。
各种翻转模式,MPO,全屏优化...理论过于复杂,我们为什么不直接进行完整的操作延迟测试呢?
测试硬件:5800X,3200C16双通道,RTX3070,ROG PG279QM,蝰蛇V2。
测试工具:NVIDIA Reflex Latency Analyzer
测试游戏:守望先锋2
游戏设置:
这是初始状态的设置。图像质量是我自用的,不做推荐。不开最高是因为3070带不动团战240。不开最低是因为虽然这样操作延迟最低,但画质过低,游戏体验过于拉跨。我一个玩T的,操作延迟其实并没有那么重要。所以不做推荐。视频设置为什么锁帧231,为什么开启减少缓冲和reflex,前面一系列文章都有讲。NVIDIA控制面板关于守望先锋2的设置全部默认。G-sync默认只对全屏程序开启。
测试场景:
测试英雄换成了毛加。毛加点击左键不会导致屏幕震动,提高了数据稳定性。延迟分析器的敏感度改为默认的中,之前是高。我前几天的动态说过我测了高中低对这种原生支持延迟分析器的游戏,测试结果没有区别。在该场景点击50次左键,读取平均系统延迟。系统延迟=点击鼠标到屏幕像素点发生变化的时间差,即完整操作延迟。
测试结果:
全屏独占+全屏优化(即不开禁用全屏优化,这是默认值):9.1ms
全屏独占+禁用全屏优化:9.3ms
无边框窗口:14.7ms
窗口化:15.0ms
可以看到全屏独占模式的操作延迟最低,禁用全屏优化在分辨率刷新率为显示器默认值且屏幕上无OSD程序(不包括GFE)时对操作延迟几乎没有影响。无边框窗口模式和窗口化都会额外增加操作延迟,大概增加了66%。我这里操作延迟低是因为我硬件性能强,显示器刷新率高,后台几乎没有乱七八糟的程序(聊天软件QQ微信等,语音软件KOOK YY等,直播软件直播姬OBS等,还有各种管家软件)。如果你不是这样,操作延迟可能比我这里高的多。同样的,选择无边框窗口或窗口模式增加延迟的幅度,也可能比我这里要高的多。
一些插曲。
窗口模式测试过程中遇到一个困难,因为窗口模式的游戏,上面有个标题栏,下面有任务栏,导致延迟分析器的白点不能对齐到720列位置,测半天测不出数。通过调整窗口大小,对准了才能测到数,所以窗口是这样的。
右边多了一条,导致游戏实际渲染分辨率不足1440P。窗口模式和无边框窗口,游戏里都没有分辨率设置。UU加速器已经隐藏到任务栏,但暴雪战网隐藏不了。给它隐藏到右下角任务栏,右键它打开OW,它还会出现到桌面上。
无边框窗口则发现一个现象,即这个模式不支持G-sync。
帧数锁的231,刷新率依然是240。没有测把G-sync改成对窗口程序生效是什么效果。
前文提到的那位UP主在视频中提到了如果自定义分辨率,则建议使用 禁用全屏优化,即使用传统翻转模式。我没有自定义分辨率,没测这个。
关于自定义分辨率,还涉及到缩放设备的选择,N卡默认是显示器处理,可以改成GPU处理,还可以改缩放模式,例如留黑边还是拉伸。这些都可能影响测试结果。我个人玩游戏从来不用自定义分辨率。我做测试基本上都是为了自己的游戏体验和满足好奇心,靠这个一分钱不赚,所以我不会测对我没意义的内容。
欢迎提问和讨论。