如何计算fragment shader的最大cycles
发布网友
发布时间:2022-05-09 13:24
我来回答
共1个回答
热心网友
时间:2024-01-30 16:01
比较SGX540和Mali-400的结果,Mali-400在lowlevel测试(填充率,三角形输出)里都落后,但在Egypt HD反超不少
一方面,SGX系列lowlevel测试高,我觉得有它TBDR架构的关系
另一方面,我们看整个渲染的过程……
三角形Setup-->vertex shader计算-->rasterization(光栅化)-->pixel shader(fragment)计算-->后端处理输出
当然中间很多部分都跟贴图/纹理 有关
Fillrate(填充率)理论测试
测的就是这个
三角形Setup-->vertex shader计算-->rasterization(光栅化)-->pixel shader(fragment)计算-->后端处理输出
三角形输出测试,测的
三角形Setup-->vertex shader计算-->rasterization(光栅化)-->pixel shader(fragment)计算-->后端处理输出
--------------------
然后三角形测试,vertex lit,测得这个
三角形Setup-->vertex shader计算-->rasterization(光栅化)-->pixel shader(fragment)计算-->后端处理输出
然后三角形输出,fragment lit,测得这个
三角形Setup-->vertex shader计算-->rasterization(光栅化)-->pixel shader(fragment)计算-->后端处理输出
一些GPU这部分理论性能测试低,很可能都是在这一步造成的瓶颈:
三角形Setup-->vertex shader计算-->rasterization(光栅化)-->pixel shader(fragment)计算-->后端处理输出
也就是三角形的setup能力在理论测试中不足,所以后面再nb也高不到哪去:
典型的就是Mali-400了
但实际表现是另一回事了……实际场景,如Egypt HD,大部分都是考验shader计算能力的
(特效啊什么的,都是靠shader计算出来的)所以实际压力的大是这两部分
三角形Setup-->vertex shader计算-->rasterization(光栅化)-->pixel shader(fragment)计算-->后端处理输出
而一般情况下,光影等等效果,更加吃pixel shader(记得末代DX9 Radeon X1000系列的3:1架构吧,疯狂增加pixel ALU),所以实际瓶颈往往是:
三角形Setup-->vertex shader计算-->rasterization(光栅化)-->pixel shader(fragment)计算-->后端处理输出
--
So,这时候拥有大量shader计算资源的Mali,Adreno就会相对nb了:
所以shader计算能力约40GFlops的Adreno 320干掉约30GFLops的543MP4,并没有悬念(当然差距很小,因为543MP4有TBDR支持,可以减少些计算量)
同样,~20GFlops的Mali-400干掉12GFlops的SGX540也是在意料之中的