有关帧率、帧延迟、卡顿的问题已经被国内外不少专业媒体讨论了很多次,简单说就是:传统的FRAPS测量法并不可靠,它显示的只是原始渲染帧率,无法代表实际显示在屏幕上的结果,也无法反映出渲染过程中出现的掉帧、坏帧现象。
NVIDIA、AMD都已经意识到了这一问题的存在,NVIDIA更是不惜成本地打造了一个FCAT系统,向大家展示如何通过高精度视频捕捉来展现最真实的游戏帧率。AMD GCN架构也被发现存在较严重的帧延迟现象,特别是在多GPU交火情况下,结果就是所谓的“microshuttering”。
比如说双芯的Radeon HD 7990:
如图所示,黑色曲线时FRAPS报告的实时帧率,红色部分是完全未显示出来的掉帧,橙色部分则是显示不完全的帧,蓝色曲线才是玩家看到的帧率。
可见,渲染过程中存在大量显示不完全的帧画面,导致实际体验和FRAPS结果差异很大。《幕府将军2》也是A卡暴露此问题最严重的游戏之一。
其实AMD很早就承认了这个问题,并承诺改进驱动来解决。
今天,催化剂13.8 Beta终于迈出了第一步,增加支持“AMD CrossFire Frame Pacing”(交火帧封装),确保在多GPU交火的系统中,帧渲染能够更加平滑地显示出来。目前支持DX10、DX11游戏,分辨率支持最高2560×1600,仅限单屏系统,未来还会支持DX9、OpenGL游戏和Eyefinity宽域多屏。
在新的催化剂控制中心里,玩家们可以在游戏-3D程序设置页面的AMD CrossFireX区域找到“Frame Pacing”,开启它就行了。
AMD没有公布具体技术原理,我们也不关心细节了,只看结果如何(感兴趣的可以参考一下这里)。AnandTech就通过六款游戏进行了深入的测试,一起来看看究竟怎么样。
测试使用FCAT系统记录相关参数,衡量指标叫做“Delta Percentages”(德尔塔百分比/本文简称DP):搜集帧渲染时间之间的德尔塔(差异),求平均值,然后除以整个测试的平均帧时间,结果越小越好,一般认为不超过15-20%都可以接受。
参测显卡主要有AMD Radeon HD 6990、7970GE、7990,NVIDIA GeForce GTX 590、680、690。A卡驱动有催化剂13.8 Beta、13.6 Beta2、13.5 Beta2,N卡统一用326.19。操作系统是Windows 8 Pro。
【测试结果汇总】
首先上单块Radeon HD 7990,13.8 VS. 13.6:
AMD没有让我们失望,所有六款游戏的DP都大大降低了,原本最严重的《幕府将军2》已经不到30,虽然还是偏高一些但比之前好太多了,而其它五款都在20%左右或者更低。
以下是每款游戏的帧渲染时间结果,其中红色是13.6、黄色是13.8,差异太明显了,但是《杀手5:赦免》改进得还不够。
再在13.8中分别开启、关闭交火帧封装,也能看出改进效果。
这时大家可能会怀疑,帧渲染时间的改进会不会以牺牲帧率为代价,就像以前的画质换帧率或者帧率换画质?
除了《杀手5》,13.8的性能的确比13.6有所下降,幅度5-10%不等,不过对比13.5,同样除了《杀手5》,其它还都是略高一些的。可见,性能的确受到了影响,但是并不严重,相信后续会完善这方面。
接下来上Radeon HD 7970 GE,分别单卡、双卡交火,驱动都用13.8:
单卡表现非常好,均在1%左右,而双卡也基本可以接受,除了《幕府将军2》略高一些之外其它都降到了合理范围。
以下是每款游戏的具体情况:
第三轮,Radeon HD 7990 VS. GeForce GTX 690:
NVIDIA完胜,但是图表上看不出来的是,AMD在测试期间没有出现一个掉帧、坏帧,这简直有些不可思议。事实上,GeForce GTX 690虽然没有掉帧,但也还有少量的坏帧,特别是在部分测试的开始阶段。有趣的是,坏帧这个概念还是NVIDIA先提出来的。
最后是DX9 VS. DX11。AMD说现在还不支持DX9游戏,我们就拿《幕府将军2》(参测游戏中唯一支持DX9模式的)来验证下:
果然悲剧。DX9游戏等等吧。
【游戏测试详细结果】
这部分是更具体的结果,逐一列出每款游戏测出来的平均帧率、最低帧率、德尔塔百分比,以及第95百分位帧时间,统计95%的帧渲染时间会低于哪个值,当然那也是越低越好。