比较:当代GPU架构技术

当代的GPU架构分别有IMR,TBR,TBDR,Flex Render等。

IMR

Immediate Mode Rendering,渲染立即开始

优点: 省事,pc端基本用这个架构,直接对DRAM(主存储器)上进行读写,不会存在framedata这种缓存机制

缺点: 遮蔽处理的部分依然会被渲染处理器,浪费了大量性能和带宽。


TBR

Tile Based Rendering,FrameBuffer划分区块渲染,FrameBuffer几乎全部的访问在渲染这一块都在SRAM(高速缓冲存储器)上解决,最后把这块整体渲染完了才搬回DRAM(主存储器)。


优点: 相对IMR减少了不必要的渲染任务,大部分芯片的gpu,适合手机,手机芯片小,功耗严格控制

缺点: 遮蔽碎片依然会少量存在,而且需要中间缓冲器 需要一块块的绘制然后回拷,为了带宽低而执行效率变差

TBR和IMR的比较

TBR和IMR的比较

FrameData这个是tbr特有的在gpu绘制时所需的存储数据,在powervr上叫做arguments buffer,在arm上叫做plolygon lists。

在unity里面对rendertexture的使用也特别说明了一下,当不再使用这个rt之前,调用一次Discard()可以在某些移动设备上提高性能,即是这个原理,如果不discard,那么在unbind那一刻会触发此刻还存在的那个FrameData的处理。unbind的时候framedata就是清空 游戏中的全屏后处理被大量的使用,这在手机上性能不高,主要就是这些后处理可能在1帧内触发很多次不同的framebuffer之间的bind unbind,每一次bindunbind都需要对整个framebuffer的一次立即绘制。 切换framebuffer在tbr或tbdr的架构是性能瓶颈。

很明显tbr的模式比ir存在延迟 Tbr比ir多需要一份framedata的存储,这是比较重要的一个特性。顶点量而增大,顶点量占大头,甚至在一些情况增大到内存放不下的情况,而需要暂时移动到别处,这种情况对framedata的访问速度就奇慢无比了。

千万不要在同一帧内多次改变提交给gpu的资源,这会迅速把framedata撑大到装不下的状态。vb还绑定在gpu上没有被处理,处于framedata队列状态,改变过的vb又要过来了,这时gpu会对这个vb做一个新的拷贝,以存储vb的多份不同的数据。显然这又增加了framedata的存储。

TBDR

Tile Based Deferred Rendering,贴图延迟渲染,合并了完美像素 。

Imagination的PowerVR芯片,HSR(Hidden Surface Removal,隐藏面消除),申请了专利。


TBR和TBDR比较

TBR:VS - Defer - RS - PS

TBDR:VS - Defer - RS - Defer - PS

power vr上对不透明物体的排序是没有太大意义的,大部分android设备,预先的一遍early-z pass可能就可以大大减少你的overdraw了

移动端的early-z发生在framedata的处理过程中。

AlphaTest和AlphaBlend

HSR对AlphaTest和AlphaBlend物体都是没有作用的(但他俩仍然可以被EarlyZ拦住)

导致渲染性能降低只是与不透明物体相比较降低了,而不是说PowerVR在处理AlphaTest/Blend时比别的GPU慢。

blending(对framebuffer的读和写),msaa(增加对framebuffer读取的次数)其实在tbdr上反而是非常快速的

alpha-test,他对depth的写入是不能预先确定的,等到pixel shader执行,导致alpha-test之后的framedata失去了early –z的机会,也就增加了渲染量。

alpha-blending则不会写入depth,对于gpu提前剔除z是不影响的,再加上blending的带宽消耗在tbr上又微乎其微。

渲染顺序opaque,再alpha-test,最后blending。这样alpha-test不会阻挡到更多的不透明物体的z预剔除。

Adreno的Flex Render

Flex Render的功能是智能的在某些时候将渲染流程由TBR切换为IMR

当渲染目标足够小的时候IMR相比TBR/TBDR就有了更高的执行效率,毕竟省去了binning

(把图元分配到关联的Tile上)和拷贝操作 Flex Render的作用,就是根据渲染目标的大小让GPU的渲染模式在TBDR和IMR中自动切换。

本文转自 CSDN,为博主 llsansun 的原创文章,
遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/llsansun/article/details/107862817