守望先锋:归来 锁帧与操作延迟测试和G 您所在的位置:网站首页 守望先锋1080p无法全屏怎么回事 守望先锋:归来 锁帧与操作延迟测试和G

守望先锋:归来 锁帧与操作延迟测试和G

2024-01-04 06:41| 来源: 网络整理| 查看: 265

这期视频播放量破万,感谢大家支持。

因为OW1的GPU瓶颈时,帧数后面是3个小点,OW2是2个小点,我猜想OW2的渲染机制可能有所变化,之前OW1时测试的结论可能出现错误,所以这次又测试了一些内容。

内容包括锁帧与NVIDIA GeForce Experience(简称GFE)的“平均PC延迟”的关系,以及G-sync与撕裂的相关测试。

首先是测试平台。交代测试平台的意义在于,不同配置和设置下,操作延迟数据是不同的,大家只需要关注结果数值的大小关系和提升/降低幅度。

CPU:AMD Ryzen R7 5800X 默认

内存:芝奇幻光戟3200C16 8Gx2双通道 仅开启XMP

显卡:RTX3070 默认

显示器:LG 27GL850 2560x1440 10bit 144Hz G-sync Compatible

锁帧均使用游戏内锁帧,操作延迟使用GFE的“平均PC延迟”表征。

下面是测试环节。

一 2K最低画质下,锁帧与操作延迟的关系

最低画质1最低画质2

最低画质如上面两张图所示。图像质量除了抗锯齿质量是第二个(FXAA),其它都是最低的,因为无抗锯齿的话锯齿太严重了,我认为无法游戏。视频页的内容与我所做视频相同,这里不再解释原因。NVIDIA控制面板关于OW2的选项全部为默认,全局G-sync保持默认的开启状态。

锁帧600(不锁帧)

测试场景如图所示,这个画面相对静止,没有移动的机器人。即使如此,操作延迟也在正负2ms左右波动。后面的图只会截取右上角的部分。

2K最低画质

锁帧600(游戏内最高),我的配置在这个场景下有534帧,操作延迟为4.1ms。

这里要介绍一下CPU指令队列的概念(flip queue)。可以想象一个游泳池,一个进水口,一个出水口,进的快,出的慢,水池就会被填满。满了之后进水口会进进停停,所以水池的水不会溢出。进的慢,出的快,水池里就几乎不会有水。这里的进水口是CPU给出的渲染指令,出水口是GPU渲染画面,游泳池是指令队列。DX11游戏默认的指令队列是3,当然,我不能确定OW2的默认指令队列是多少,可能是3,可能是2(2个小点?)。这个指令队列的存在会造成较高的操作延迟。减少或清空指令队列是降低操作延迟的一种方法。当GPU不瓶颈时,相当于进水口慢,出水口快,指令队列就会被清空。游戏内锁帧是CPU锁帧(也就是限制了进水口的速度),可以让GPU不瓶颈。

我选择将帧数锁定在略低于534,即520,在保持超高帧数的同时,让GPU不瓶颈,可以看到操作延迟依然是4.1ms,并未降低。这是因为NVIDIA Reflex在不锁帧时也可以清空指令队列。这是Reflex原理讲解,感兴趣可以看下。它是动态调整CPU处理下一帧的时间实现清空指令队列的。这个效果在OW1中非常不稳定,操作延迟忽高忽低,而在OW2中,我并未发现操作延迟的大幅度波动。

Reflex原理

锁帧141时,操作延迟为6.6ms,略微升高了2ms左右。锁帧到略低于刷新率是为了触发G-sync,以缓解撕裂。为什么说是缓解呢,后面会说。我在大学的物理实验课上,做过一个实验,测试自己的反应时间,在180-300ms。说这个,是让大家感受一下2ms是什么概念....

经常有人问,144Hz显示器,帧数超过144还有意义吗?有意义。帧数越高,操作延迟越低。在有Reflex时,通过锁帧使GPU不再瓶颈来降低操作延迟,已经几乎没有意义。所以帧数越高,操作延迟越低,这句话对于OW2来说是严格正确的。那么为什么我依然推荐锁帧?因为锁帧到略低于刷新率是为了触发G-sync,以较少的操作延迟涨幅,换来画面不撕裂,我认为是值得的。而且,由于每个画面的事件发生时间比较均匀,画面整体比较丝滑。你可以自己测试一下,144Hz显示器,锁帧141触发G-sync,和锁帧到180(前提是能跑到),看看哪个丝滑。我明显可以感觉到是前者丝滑,后者甚至有点卡...当帧数非常高的时候,比如到了400以上....丝滑程度和锁帧到141是差不多的...

二 2K较高画质下,锁帧与操作延迟的关系

较高画质1较高画质2

这个画质设置是我目前所用的。图像质量相比预设的超高,降低了一点局部雾化细节和阴影细节。抗锯齿质量预设就是SMAA中。之前手动设置到SMAA高,重启游戏会恢复到SMAA中。这是个bug,我已经在多处确认。目前是否修复不清楚。

2K较高画质

锁帧600,实际帧率为215,操作延迟为8.5ms。我这个配置只能跑到这么多。锁帧到略低于215,即205,操作延迟为9.5ms。锁帧到141,操作延迟为9.3ms。这三个值可以认为是基本相同,属于波动范围。

为什么结论和之前不一样了?因为帧数越高,操作延迟越低。在较高的画质下,帧数无法达到特别高,所以锁帧时,操作延迟的变化无法被清晰的观察到。

三 帧数达到600时会怎样?

600帧

越简单的场景,GPU压力越小,帧数能跑到更高。还是2K低画质,场景换成这个,帧数轻松跑到600。可以看到此时帧数后面是1个小点,GPU没有瓶颈。操作延迟为3.2ms,非常的低...

四 G-sync与撕裂测试

测试工具选择RTSS的FCAT。RTSS全程是Rivatuner Statistics Server。使用微星小飞机,MSI afterburner的朋友应该知道这个工具。它内置了一个显示撕裂线的工具,FCAT。

FCAT

常用的是 色彩顺序和moving bar。2-4列在调整scanline sync时可能用到,latency marker是为了配合高速摄影机来测试鼠标到屏幕的延迟,与本测试无关。

色彩顺序是这样的。

色彩顺序

左边会显示一个高速闪烁的条带。每个颜色不同的位置都是一个撕裂线。因为我的画面没动,所以右侧画面看不到撕裂。

moving bar

moving bar是这样的。画面上会有一个白色竖线从左向右移动。你滑动鼠标,可以看到竖线错位,这就是撕裂。

为什么画面会撕裂?简单说一下。在无任何sync技术的情况下,显卡的前后帧缓冲区的交替行为与显示器刷新画面的行为没有任何关系。显卡有前后两个帧缓冲区(设为A和B吧)。A连接显示器,B连接显卡。显卡渲染一个完整帧,放到B缓冲区里。B和A交换位置,B向显示器输出画面。此时显卡会向A里面渲染帧。渲染完成后,A和B再交换位置...这样循环。显示器刷新画面是从上到下一行一行刷新的。所谓刷新率就是一秒能刷几个画面。那么很容易想到...当显示器刷新画面时,前后帧缓冲区交换位置会发生什么?很明显,显示器的上部分和下部分的内容来自不同的帧,这就是画面撕裂。当帧数非常高时,一个画面可能来自很多帧,会有很多断层(撕裂线)。但因为每帧区别不大,反而不容易观察到撕裂。在帧数低于二倍刷新率时,撕裂会非常明显,甚至肉眼都可以观察到。

在无任何sync技术时,锁帧到刷新率依然会撕裂,帧数低于刷新率也会撕裂。因为撕裂的本质是“显卡的前后帧缓冲区的交替行为与显示器刷新画面的行为没有任何关系”。各种sync技术都是创造一种关系...

测试结果令我有点意外。(以下结果均在G-sync状态下测试)

当锁帧到144时,即锁帧等于刷新率,画面会撕裂。撕裂线的位置从屏幕下面往上面缓慢运动,到顶之后再从下面开始往上运动...

当锁帧到141时,即锁帧到刷新率-3,部分画面会撕裂,部分不撕裂,撕裂位置稳定在屏幕的最下面。大概是OW2英雄头像和技能的下面位置,并不影响游戏。

我逐渐降低锁帧值,140..139..138这样。锁帧越低,撕裂的情况越少。当锁帧到135时,我不再能观察到撕裂线。

也就是说,在锁帧略低于刷新率的前提下,锁帧越靠近刷新率,屏幕底部的撕裂画面数量占比越高。锁帧越远离刷新率,即越低,屏幕底部的撕裂画面数量越少。在我的配置和OW2这款游戏中,锁帧到135可以几乎完全消除撕裂。

五 主要结论

1 降低画质可以有效降低操作延迟。

因为画质越低,GPU渲染一帧的时间越短,所以操作延迟越低,这很容易理解。建议不要缩小分辨率和渲染比例,这会导致画面非常模糊,非常影响游玩体验。

2 锁帧到略低于刷新率会导致操作延迟轻微上升,但可以缓解/消除撕裂。

锁帧到略低于刷新率和锁帧到600,在我这里操作延迟仅升高2ms左右,可以说根本无法察觉。而锁帧的好处有以下几点:

①借助G-sync,可缓解/消除撕裂。锁帧越靠近刷新率,屏幕底部的撕裂画面数量占比越高但画面更流畅。锁帧越远离刷新率,即越低,屏幕底部的撕裂画面数量越少,但画面会略微更不流畅。在我的配置和OW2这款游戏中,锁帧到135可以几乎完全消除撕裂。(一个直播建议,像我这种比较高的配置且显示器是144,帧数放开了能跑到200以上的,可以锁帧到120,一是触发G-sync不撕裂,二是编码器每两个渲染帧编码一帧,这一帧的事件发生时间比较均匀,观众看到的60帧直播画面比较丝滑...)

②锁帧后,每个画面的事件的发生时间比较均匀,画面比较丝滑。

③锁帧后,CPU和GPU压力都会降低,温度低,风扇转的慢,噪音小。功耗低,省电。

④团战时画面复杂,帧数会降低很多,这会导致操作延迟波动。每个画面的事件的发生时间的均匀程度也会变化。这可能影响你的瞄准。而锁帧后,只要你的帧数能稳定在锁定的帧数,操作延迟和丝滑程度是不会大幅度变化的。

最后解释一下“每个画面的事件的发生时间比较均匀”这句话。

当你的电脑收到服务器发来的数据包,鼠标和键盘的指令,要经过CPU,(指令队列),GPU,显示器,才能被你看到。你看到的画面发生的事件,是在过去某一时间点发生的。这个时间点是否均匀,影响画面的丝滑程度。其实严格来说....如果帧率超过刷新率,你看到的每个画面都来自不同帧,很难定义这个画面事件发生的时间点......

本文是在凌晨4点撰写,精神状态并未处于最佳状态,如有错别字,见谅。文章如有错误,欢迎指出。也欢迎讨论和提问。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有