跑分跟实际表现不一样?优化很重要!
最后,规格只是GPU的一个方面,实际表现跟架构也有很大的关系。更进一步的,就算是Benchmark中跑分差不多的GPU,在不同的游戏中,实际表现也会有差别。
首先,Benchmark程序,大部分都是公平的,所以本质上,Benchmark都是“零优化”程序,公平起见,他们的纹理会用RGBA的PNG,TGA,或者ETC1纹理,不会用到各个GPU自家的格式。
但是游戏不一样,游戏可以做相应的优化。例如PVR的GPU,可以用4bpp甚至2bpp的PVRTC纹理,相比于未压缩的贴图就可以节省8倍甚至16倍的带宽。而没有被优化到的情况下,可能只能跟着Mali用不支持alpha通道的ETC1,做2次贴图,浪费带宽。部分厂商甚至在通用数据包里放了一些未压缩贴图,那差距就更大了。同款游戏,跑分接近的GPU,iOS上的特效更好,流畅度更佳,就有优化的原因。
其次,Benchmark在一定程度上都是相对超前的。大部分GPU跑Benchmark的帧率,都不会到流畅的级别(要是满帧了还怎么测出区别)。早期的Benchmark可能更加侧重贴图和像素部分。新一代的Benchmark则提升了场景复杂度,对多边形和Shader计算的压力进一步增大,例如GLBenchmark 从2.1到2.5的提升。因此,一些三角形生成能力和原生Shader计算能力高的GPU,比如Adreno 220/225,得分提升就会比较明显。