为跑分不要节操?显卡测试猫腻大揭秘(Z)
这套方法由Quake时代开始至今,已经有逾十年的历史,然而由于作弊情况越来越多,近期外国有多家媒体已经质疑FPS测试的参考价值,并且开始探索全新的测试方法,结果发现N卡的“画面流畅度”相对同级A卡优胜几倍,此外还有一些如“HD7000流畅度完虐HD6000”之类很有争议性的结论,到底他们是怎么测试的?传统显卡测试的猫腻又何在?下面我们一起来关注。
电子游戏的基本原理:动画
要了解传统FPS帧率测试的实际含义和其缺陷,我们必须先弄明白电子游戏的基本原理:动画。
动画基本原理
我们玩的电子游戏本质上都是电脑动画效果,不同的只是这个动画是我们能够操作、干预的。游戏动画和我们日常看的日本动画一样,都是由一个个静止画面连续播放产生视觉残留,形成的“活动”错觉,这些静止画面就是所谓的“帧”。(Frame,FPS里的“F”)
10fps vs 2fps
动画其实就是“帧”的连续播放,而其播放速度就是“FPS”,即每秒播放多少个帧。每秒播放的帧数的多少有何意义呢?我们可以看上面的例子,这两个动画都是由6个帧组成的,不同的是第一个的播放速度是10fps,看起来比较正常,而第二个是2fps,看起来像慢动作,这种“fps决定速度”的现象在街霸4之类Benchmark中也可以看到。
游戏的最大动画速度是有限的
有用户可能就要问了,我玩大CF时平均帧率达到稳定236fps,为什么相对其他只有70fps的玩家没有“加速”的效果?其实游戏动画实际最大速度是有限的,一般就是60fps,在到达这个值前,游戏可以看到“加速”的效果,而到达这个值后,游戏已经不能再“加速”了,更高的fps只是为更极端的动态效果留下空间,而这类动态效果在游戏中并不常见,也不明显。
传统游戏的性能测试是什么原理?
经典Benchmark测试:孤岛危机
无论是全自动化的Benchmark工具测试还是手动运行的游戏测试,基本上都是通过运行一段固定帧数(长度)固定场景的游戏画面来实现的。这个固定长度画面运行的总时间可以拆分成秒,每秒都可以有一个FPS值,然后将这些FPS的平均数算出来,即可获得平均帧率(平均FPS),它是我们最常用于判断游戏流畅度的指标。
除此之外,其实FPS还有最大FPS和最小FPS两个数值可以参考,顾名思义它们就是测试过程中出现的最大的FPS值和最小FPS值,它们可以反映显卡的最好和最差的表现情况。
传统测试方法有什么弊端?
AMD火花门精简画质,提升FPS
以FPS来衡量性能有两个弊端,首先FPS是基于秒来计算的,而帧的渲染表现是毫秒级的,FPS无法真实表现每一秒图像的真实流畅度,其次FPS纯粹是种“工作量”的统计,对工作的质量不闻不问,事实留下了很多作弊的空间。比如COD7测试中,有人发现同样的画面,A卡的火花数量要比N卡少很多,这就是著名的“火花门”,是当时AMD利用驱动精简画质来提升FPS的作弊手段。
绘制绿色的一小块作为一帧,提升FPS
光以平均FPS来论,有火花门的A卡非但不会有什么问题,成绩还更好看,不过话说回来这种作弊还只是牺牲画面冲击力来提升帧率,更可恶的还在后头:小画面当整帧。FPS统计的是每秒处理的帧数,是个纯粹的数量指标,一些游戏中显卡可能为了制造更多的帧而采取一些奇怪的做法,比如间歇性输出一个3x3像素的小方块为一帧,或者把一个完整画面切分成多个小画面输出。这两种做法都不会让玩家的游戏更流畅,可能还会带来画面撕裂,但是测出来的FPS数值就是更高。
掉帧与操作延迟再多,FPS照样可以很高
最后一个问题就是掉帧,如果显卡处理某一帧或某几帧的时候需要花费特别多的时间,游戏就会出现掉帧顿卡,画面突然不流畅,或者操作延迟,你所做的都要一小段时间后才显示出来,比如上图这种,玩家在触屏上指示着球员冲到了30的线上,而游戏主屏幕上该球员却还在40的线上,画面是很流畅,但是已经滞后于用户的操作。对于掉帧,显卡可以用上面的插入空帧或者切出小画面来补救,让FPS看起来正常,而对于延迟,FPS是完完全全无法反映问题存在。
小结:毫无疑问,基于FPS的平均FPS分析法的确存在问题,那么,国外先进媒体现在又在尝试怎样的测试呢?他们又怎么得出A卡不如N卡流畅的结论呢?下面我们就来具体说说。
基于帧渲染时间的新测试方法:
测试使用Frap软件
这些外国媒体提出的新测试方法基于“帧渲染时间”,也就是显卡绘制一帧画面所消耗的时间,他们通过Fraps软件的Frametimes设置来统计帧渲染时间,然后再用统计所得数据进行分析处理。
帧渲染时间计算与流畅度参考
可能有些玩家一时间还没想明白测帧渲染时间意义何在,因此我们还是先来算算。如果我们以30fps为可玩的话,那么在1秒,也就是1000毫秒(ms)以内,显卡必须保证所有帧的平均处理时间为33.3毫秒一帧,大于这个数值会卡,小于这个数值会流畅。简而言之,帧渲染时间越小越好。
运行固定场景、一定长度的游戏
设置好Fraps软件之后,他们会运行一段固定场景,固定时间的游戏,比如60秒或者90秒,然后用Fraps自带的FPS功能测得这段游戏的FPS和帧时间。实际上,运行一定场景长度的画面会更好,因为FPS不同的话,同样时间内展示的内容(帧数量)其实是不同的。
处理所得数据
Fraps得出的帧时间文件可以用Excel之类软件打开,不过还需要进一步处理才能得出每一帧的处理时间,得到这些数据后,他们就可以作各种统计和表格制作处理。
小结:这是一套非常简单、低成本的方法,此外还有些媒体提出了更准确,但是也更高成本的方法,我们下面会继续提及,不过就现在而言,我们还是先来看看他们用这种方法测试出了什么样的成绩。
N卡就比A卡流畅?HD7950 vs GTX660Ti对比测试:
传统FPS测试供参考(引自The Tech Report)
我们引用The Tech Report的HD7950 vs GTX660Ti对比测试来分析,以传统平均FPS角度出发,GTX660Ti和HD7950的性能表现差不了多少,都处在60fps的流畅参考值之上。
帧渲染时间对比(引自The Tech Report)
以原始的帧时间数据制作出来的图表,由于数据非常密集,因此形状可能会呈现出一条竖线的样子,实际上它们是上下波动的折线。可以看到,A卡的帧渲染时间不断在高值和低值之间跳来跳去,并不稳定,而且数值偏高。
99%帧渲染时间表(引自The Tech Report)
这个表格对比的是大多数情况下,两款显卡的帧渲染时间有何不同,可以看出显卡的真实渲染性能。再一次,A卡处理时间大部分时候都落后于N卡10ms左右。
不流畅时间总和(引自The Tech Report)
最后一个表格是特高帧渲染时间出现的总时间,可以看出显卡有多大可能性出现顿卡现象。这一次A卡还是继续中枪,出现20fps那种流畅度的几率是N卡的两倍。
小结:这些测试的结果很出人意料,也引起了很多网友的广泛争论和质疑,但是The Tech Report的作者强调,这些测试都是经过5次测试、长时间验证得出的结果,你不能忽略它带来的新信息:就算到达平均60fps的“完美流畅”参考值之上,A卡的实际游戏流畅度还是不如N卡。
实际上,The Tech Report还不是第一个这样测试的媒体,某家法国媒体此前也在使用这套测试方法,它存在已经超过一年了,而且现在越来越多媒体在用或者参考。我们姑且暂不分析这套方法可能存在的问题,先来拿几张相关显卡亲身体验一下到底流畅度能差多少。
A卡真的不流畅?编辑亲测受争议显卡:
HD6850居然不值得买?
回到我们开篇的问题上,A卡HD7950流畅度真的就比N卡GTX660Ti差很多吗?为了验证这种说法,我们亲身试玩了游戏并作了测试分析。此外,The Tech Report的其他测试也显示,HD7000系列的流畅度要比HD6000更好,因此我们也还会看看HD6850和普通HD7770的流畅度是否真能看出个高低。
无主之地2:A卡N卡区别不大,HD6850表现比HD7770更好
按照帧渲染时间对比,A卡在无主之地2之中的流畅度应该会比N卡明显差,而且差距会很明显。笔者选择了反抗军城镇和沙漠飞车两个场景进行测试,结果真心看不出HD7950和GTX660Ti有流畅度方面的差异,而HD6850虽然的确开始时略微卡了一下,射击操作延迟约0.5秒,但只是很短时间的问题,实际上它运行一段时间后的流畅度要比HD7770更好。
帧渲染时间计算表
当然我们不会只看主观感受,我们还用Fraps测了GTX660Ti和HD7950的帧渲染时间。上图就是HD7950的成绩,大部分时候维持在8~12之间,不过有小段出了几个偏高的数值,其中最高的97ms延迟,已经算掉帧了。相对的,N卡的帧渲染时间的确更低、更稳定,没有出现任何特别偏高的数值,因此从绝对理论角度出发,A卡不如N卡流畅应该是真有其事。
孤岛危机2:两队显卡流畅度差别不大,画面该撕裂的还是要撕裂
我们测试的另一款游戏是孤岛危机2,它硬件要求较高、画面比较绚丽,不过比较容易出画面撕裂。同样最极端画质设置下,GTX660Ti和HD7950的游戏体现都很流畅,没有感觉谁比谁迟滞,而HD6850方面,表现还是没有输给HD7770,同样非常高画质设置下,都能够玩得流畅。
60fps视频分析画面撕裂
我们还录制了60fps的无压缩视频来分析画面撕裂情况,无论是A卡还是N卡实际都在测试场景显示出比较多的画面撕裂,其中情况最糟糕是公版频率的HD7770.不过这可能都是显示器不同步造成的,反正我们分析了几千帧的画面都没有看到画面撕裂的情况,说明大家还是守规矩没作弊的。
小结:如果从绝对的、理论的角度分析,A卡的流畅度的确不如N卡,但如果从常人的、感性的角度出发,笔者必须很诚实地告诉大家,平均FPS同级的A卡与N卡的流畅度区别很难察觉,而且画面出现撕裂问题的情况在现实游戏中很少,那样的作弊手段可能更多出现在固定的BenchMark测试中,因为大部分Bench的内容是固定的、容易针对“优化”的。
显然,这种基于帧渲染时间的测试方法的确有其道理所在,但是可能有点太极端、太理论,于是我们有了下面这种新的测试方法尝试,它可能是目前信息最丰富、最有参考价值,但是也最高本、高消耗的测试方法。
模拟真实用户,万元硬件测显卡方法解析:
测试方法核心:视频采集卡
使用Fraps测试帧渲染时间非常简单而且低成本,不过由于相当理论化,而且可能由于依赖测试平台自身软硬件而不是太可靠,于是国外的PC Perspective提出了更激进的测试方法:使用视频采集卡把原始的画面输出收集起来分析。这款视频采集卡型号不明,不过我们知道它可以收集双路DVI数据,也就是2560x1600分辨率、60Hz刷新率的输出画面,明显不是件便宜货。
拆分视频输出
怎样把显卡的输出既输出到显示器又输出到视频采集卡呢?答案就是用DVI一转多输出把输出画面复制成两份。这种输出方法完全不依赖软件,因此可以最大限度排除驱动和系统等因素影响到测试的结果。
另一台电脑接收视频数据
不可能让一台电脑同时运行游戏,另一方面又搞视频采集,因此这套测试方法需要使用另一台电脑来收集视频数据。而这可能比看起来更困难,因为这种视频收集的数据量非常大,必须维持稳定的400MB/s的写入速度,考虑到寿命的话,毫无疑问要组建大容量的机械硬盘RAID阵列,而这一点也不便宜。
自动分析工具
最后,这种测试方法可以收集到的数据多达成千上万帧,如果要人一帧帧分析当然是不可能的,因此他们也在尝试制作一些自动化工具来分析。由于收集的数据非常多,他们可以分析帧率、帧渲染时间、顿卡、绘图不完整、流畅度等各种方面的问题,不过就目前来说,他们还在探索中,估计到2月我们就可能会看到一些有趣的结果——又或者什么都没有。
小结:这种收集分析用户最终看到的每一帧画面的做法很直观易懂,而且它可能引申出的信息量最为丰富而且贴近用户,可能是当前最有参考价值的显卡与游戏测试方法 ,但是我们也必须看到起弊端:硬件成本很高,技术难度很大。这不仅对于进行硬件评测的媒体很有压力,而且对于用户们来说,这种方法也难以模拟、无法验证,容易形成媒体一言堂的局面。
总结:
当前FPS评测方法有问题
当前以FPS为基础的平均帧率测试它只考察画面的数量,不考察画面的质量,容易遇上各种作弊手段,而且即使游戏出现各种画面撕裂和延迟,成绩照样可以到比较高的水平,不能很好地反映可能存在的问题。
新测试方法能解决部分问题
基于帧渲染时间的测试的确能解决部分存在的问题,比如上图这种渲染时间突然降得非常低的情况(一般13~14,突然降成2),应该就是有作弊嫌疑了。而如果说更准确、更全面的当然还是收集分析用户最终看到的帧画面,不过实现起来比较难就是了,论实现难度还是帧渲染时间更靠谱,目前著名硬件测试软件3DMark也似乎在考虑加入一些类似的测试,以解决存在的问题。
帧渲染时间测试缺点:AMD太伤心
帧渲染时间测试的确能够解决部分问题,但它也带来了一些新的问题,比如“N卡就比A卡流畅”。帧渲染时间与驱动有关,而AMD的驱动质量不如NV,这个是大家公认的,而且AMD未来还要长时间依赖28nm制程,可能要用到2014年年末,如果真是这样,那么未来的测试可能就是不停重复“N卡就比A卡流畅”,且不说结果是否准确,反正结果都基本知道了,还用测吗?这可不公平。
帧渲染时间测试缺点:太过严苛
回到“N卡就比A卡流畅”这个说法身上,它是否真的准确?如果按这种“渲染时间”思路来看,那24fps的电影简直完全不能看了,但事实是这些电影基本流畅——只要每一帧都能正常、稳定提供,其实24fps都基本够用。但游戏和电影不同,显卡帧渲染时间是变动的,其画面提供并不稳定,于是要考虑容错。在帧数少的时候,容错能力会很差,一帧出问题就会很明显,而随着帧数的增加,不仅画面更流畅、能表达的动态效果更多,而且事实上容错能力也上升了。
HD7950与GTX660Ti的对决往往是60fps以上的对决,容错能力已经很强,画面其实都已经流畅得有过饱和的帧,每一帧画面出现的时间非常短,就算其中部分几帧出问题,也很快会被正常的帧给覆盖掉,肉眼很难看出有问题,帧处理时间测试可能有时就在纠结这些帧,未免太严苛了,因此“GTX660Ti就比HD7950流畅”、“N卡就比A卡流畅”并不准确。
帧渲染时间测试缺点:显示器刷新率有限
帧渲染时间测试最后一个问题就是没有考虑显示器的刷新率。一般现在的液晶显示器刷新率就60Hz,也就是每秒最多刷新60次,最多显示60帧动画,只有3D液晶能是120Hz,但是由于价格较高,目前还不是主流。在显示器每秒只有60帧的前提下,去谈HD7950的90帧里有10帧出问题,其实一点也不现实,因为用户可能根本就看不到这10帧。
总的来说业界目前还缺乏一个精准而且用户容易验证的显卡测试方法,作弊还是难以避免,在PC上是这样,在智能手持上也是这样,平均帧率结合帧渲染时间分析可能是最低成本、易实现、有参考价值的做法,二者缺一不可,否则都会走向各自的误区。