level 13
GPU驱动开销是什么,为什么有人决定游戏实际体验?求科普
2017年05月03日 00点05分
1
level 12
各种api在进行绘制调用(draw call)的时候都要消耗一定的cpu资源,消耗得越多,驱动开销越大。同样的cpu,驱动开销越大,draw call能力越差;同样的驱动开销,cpu越强,draw call能力越强。
现在测驱动开销的程序,实际上是测的draw call能力,这些程序有 3d mark api overhead,星群(star swarm),gfxbench的driver overhead 1(opengl es2.0)和2(opengl es3.0),2d物理测试等。其中 3d mark api overhead是逐步加大draw call数量,直到fps降到30fps,最终成绩是达到30fps前的最大draw call数量。其他程序的成绩测则是帧率。实际上这些成绩为fps的程序,可以和draw call数量进行转换,因为每帧的draw call数量是一定的。draw call能力和cpu性能、驱动开销(驱动开销和驱动有关系,540在驱动升级后驱动开销比现在的530的小,660的驱动开销也比s65x的小)都有关。因为mali g71的驱动开销是adreno 540的3、4倍,所以在cpu性能差不多的情况下,835的draw call能力是8895的4倍多,960的3倍多。gfxbench driver overhead2,835 43.5fps(2.361g,835工程机2.457g跑出过48fps) ,8895 10.4fps,960 12.2fps,821 19.1fps。苹果的驱动开销非常小,cpu单核性能又强,所以draw call能力吊打整个android。
实际游戏过程中,消耗cpu的肯定不只draw call,还有其他运算。但draw call能力弱,在吃cpu的游戏中会拖后腿。比如同样的cpu,驱动开销大的在draw call中消耗的cpu资源多,那么分给其他运算的cpu资源就少了,fps就低。
2017年05月03日 02点05分
3
540的3dmark API大概比530能高多少?
2017年05月09日 10点05分
level 12
mali在utgard年代,驱动开销挺小的,gfxbench driver overhead成绩比较高。后来走下坡路。t760年代开始,驱动开销越更越大。driver overhead2,mt6752和5433差不多,7420不如5433,8890不如7420。955好像和7420最好成绩差不多,7420有draw call能力倒退现象,好多成绩差不多腰斩了。t880和g71的驱动开销差不多,g71的可能要小一点。
2017年05月03日 02点05分
5
查了下,5433 13.9fps,7420和mt6752 10fps,5433和7420都有过平均值很低的现象。8890 8.7fps(实际上我自己的只能跑7.5fps)。k95x和6797最高10fps。960最高12.5fps,8895最高10.3fps。540 44fps。
2017年05月03日 04点05分
回复 zhu3536 :thank you
2017年05月03日 07点05分
回复 zhu3536 :8895只有这么低吗,我看通吧爆料贴,开销也不低啊
2017年05月03日 17点05分
@回个话哈nice 你是说虐540的那个贴子?记得那贴子说8895的t-rex 136fps,driver overhead2有30多fps,那图是p的。136fps是按960的算出来的,但8895的带宽不够,达不到136fps。overhead2就10fps出头,多太多假
2017年05月03日 17点05分
level 13
决定性过了,但影响肯定是比较大的
造成驱动压力的应该主要是绘制调用和状态改变
绘制调用和引擎以及游戏开发本身有关,状态改变主要和api有关,比如open gl中,每次状态(顶点输入,像素输出,shader,混合等)都要经过驱动由cpu来创建和更改,而vulkan中被统一为流水线状态,这就节省了大量时间
不过现在造成驱动压力最大的原因还是线程的利用问题,opengl以及以前的dx主要还是单线程,所有驱动调用的context都只能集中在一个线程上,压力自然就大了。
另外powervr和老黄在这方面似乎走的长远些,他们都在自己的驱动上实现了一些opengl下的多线程实现,老黄还在dx11的驱动上加了一些多线程技术(command list,具体没研究过)
2017年05月05日 05点05分
7
确实是,我的mx4的g6200的驱动开销竟然比红米pro的x25还高
2017年05月05日 06点05分
@回个话哈nice 这个应该说pvr和驱动开销比mali的小,6595的draw call能力比6797强。
2017年05月05日 14点05分
opengl下确实以单线程为主。andtoid的游戏绝大多数吃单核性能。n卡在dx11下单线程draw call能力比a强百分之几十,多线程则是a卡的2、3倍,a卡在程序为多线程draw call下仍然只能利用单线程,n卡利用多线程。然后n卡的cpu使用率比a卡高
2017年05月05日 14点05分
一些人所说的“n卡偷cpu”
2017年05月05日 14点05分