正文内容 评论(0)
HyperFormance的秘密
Virtu MVP的最主要的特性就是HyperFormance了,独显和集显互联以提高性能。打开软件的支持列表,目前已经可以看到非常多的游戏和应用支持混合加速了。
Lucid自己的测试显示在支持Virtu的测试中分数及帧速有较大提升。
看起来HyperFormance带来的性能改善还是很明显的
现在来看看这个性能提升到底是怎么回事吧。是不是HyperFormance帮助显卡创建了更多的图像?是,但又不是,用FRAPS记录《失落星球2》的帧时间来看看吧。
《失落星球2》中的帧时间曲线
不开HyperFormance时,每帧图像的渲染时间稳定在10-16ms,曲线波动并不大,意味着帧速更平稳。开了HyperFormance之后,帧时间有两种分布,一种是平均5ms(称之为A),另外一种是10-16ms(称之为B)。很显然,渲染的图像数量增多了,但是渲染的图像并不是相匹配的。
再用专业的图形分析工具来验证一下吧,他们使用了AMD GPU Perf Studio软件抓取整个渲染过程进行分析。这个软件是专业的图形分析工具,NVIDIA和Intel都有类似软件,当然是收费的,要价数百甚至上千美元。
GPU Perf Studio很挑剔,而它使用的大多数DX10/11游戏往往又不支持HyperFormance,最后他们找了3DMark Vantage的场景做测试。
由于HD 6870在Virtu环境下有bug,频率只有100MHz,为了简化测试过程,他们只能用640x480分辨率的E模式做测试,结果如下:
专业软件分析的3DMark Vantage测试结果
一如前面FRAPS记录的结果,正常模式下帧时间比较平稳,而HyperFormance的渲染时间依然有两个等级,5ms以及15-20ms。
在解释这个差异之前先来看一下DX规范中渲染一张图像的过程。DX11的图像渲染是要分步完成的,每次由CPU向GPU发送一条指令以执行任务,这一步叫做draw call。
在GPU Perf Studio监视的3DMark Vantgae第一个场景中,正常模式下需要有200个draw call,B时间(10-16ms)下的HyperFormance需要的数量跟正常情况相同,但是5ms的那个帧时间是个什么情况呢?
在某一帧暂停之后我们可以通过Frame Debugger工具看到这时的渲染只有4个draw call。这四个draw call主要是:
1.在屏幕底部放置旗帜(转译的英文是Placement of banner at the bottom of the screen)
2.记录fps数量
3.记录时间
4.记录计算过的图像数量
(ps,这部分过于技术化,而且原文是法文,不懂,可以无视,了解下面的意思就行了)
很明显这种行为是在作弊。Virtu MVP拦截了CPU发送的draw call命令,抛弃了其中对图像渲染真正有用的draw call只留下上述四个过程,除了屏幕底部,先前的图像处理只不过是在重复。这些图像被Virtu MVP人工插入以提高帧率。如果计算一下每秒计算的真正有用的帧数量,那么HyPerformance就会现原形。
HyPerformance的小把戏需要针对每个游戏或者程序单独优化,这也解释了为什么它为什么只支持一部分游戏和程序。
注意一点,HyPerformance在《质量效应》游戏里不能完整工作,这也让hardwar.fr网站顺利捕捉到了两张交替渲染的图像截图。
《质量效应》中的两张截图暗示了HyPerformance可以选择显示哪张图
理论上,通过控制集显和独显上的两个帧缓冲器,HyPerformance可以决定到底那张图像要输出到屏幕上,也就是说Virtu MVP可以让那些只渲染了一半的图像根本不显示到屏幕上,用户根本没机会看到那些作弊欺骗帧数的图像。
在《质量效应》游戏中,draw call的排序机制工作不正常,图像输出的选择是有缺陷的,所以才有机会截到这两张图对比,实际上游戏是没法玩的。
(剩下的内容太技术化,内容太多,不翻了,结论已经有了)。
本文收录在
#显卡
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...