陕西住房和城乡建设厅网站6,注册网站登录,手机网站建设的价格,浙江嘉兴seo网站优化推广一、专有名词解释
1.System on Chip#xff08;Soc#xff09;
Soc是把CPU、GPU、内存、通信基带、GPS模块等等整合在一起的芯片的称呼。常见有A系Soc#xff08;苹果#xff09;#xff0c;骁龙Soc#xff08;高通#xff09;#xff0c;麒麟Soc#xff08;华为Soc
Soc是把CPU、GPU、内存、通信基带、GPS模块等等整合在一起的芯片的称呼。常见有A系Soc苹果骁龙Soc高通麒麟Soc华为联发科Soc猎户座Soc三星去年苹果推出的M系Soc暂用于Mac但这说明手机、笔记本和PC的通用芯片已经出现了。
2.System Memory(物理内存)
Soc中GPU和CPU共用一块片内LPDDR物理内存就是我们常说的手机内存也叫System Memory大概几个G。此外CPU和GPU还分别有自己的高速SRAM的Cache缓存也叫On-chip Memory一般几百K~几M。不同距离的内存访问存在不同的时间消耗距离越近消耗越低读取System Memory的时间消耗大概是On-chip Memory的几倍到几十倍。
· Soc上GPU和CPU共享一个内存地址空间
3.On-Chip Buffer
在TB(D)R架构下会存储Tile的颜色、深度和模板缓冲读写修改都非常快。如果Load/Store指令中缓冲需要被Preserve将会被写入一份到System Memory中。
4.Stall
当一个GPU核心的两次计算结果之间有依赖关系而必须串行时等待的过程便是Stall。
5.FillRate(像素填充率)
像素填充率 ROP运行的时钟频率 x ROP的个数 x 每个时钟ROP可以处理的像素个数。 二、TB(D)R
1.什么是TB(D)R
TBRTile-Based (Deferred) Rendering是目前主流的移动GPU渲染架构对应一般PC上的GPU渲染架构则是IMRImmediate Mode Rendering 。
TB(D)R的简单意思屏幕被分成块16*16像素 / 32*32像素渲染。
2.TBR与TBDR
TBR顶点Shader → Defer → 光栅化 → 像素Shader
TBDR顶点Shader → Defer → 光栅化 → Defer → 像素Shader
Defer是什么字面是延迟的意思但从渲染数据的角度来看Defer就是“阻塞批处理”GPU的“一帧”的多个数据然后一起处理。 三、立即渲染架构(IMR) 出处A look at the PowerVR graphics architecture: Tile-based rendering - Imagination
可以看到整个立即渲染架构流水线是直接和系统内存进行交互。 四、TBDR的渲染流程
1.宏观上的2个阶段
第一阶段执行所有与几何相关的处理并生成Primitive List(图元列表)并确定每个tile上面有哪些primitive。分图元
第二阶段将逐块执行光栅化及后续处理并在完成后将Frame Buffer从Tile Buffer写回到System Memory中。TBDR第二阶段相比传统的立即渲染架构它并不是直接将结果写回到系统内存中而是写到片上内存中
2.简略示意图 可以看到再顶点着色器后有一个Tiler的过程这个Tiler个过程就是把所有图元分成不同块元的过程(确定每个块元包含哪些图元)。之后进行片元处理后先把处理后的块元先写入自己块元的内存上之后再写入系统内存。
3.详细示意图 出处A look at the powervr graphics architecture tile based rendering
可以看到上图中有两个虚线框其中上面的虚线框表示片上内存下面的虚线框表示系统内存。
可以看到有一个Tilling的过程它把我们经过顶点操作处理后的几何数据写到了系统内存上面那么之后经过光栅化和后续的处理操作仍然是先写入片上内存最后进入Frame Buffer。 4.比较 相比于IMR架构TB(D)R架构在几何处理和片段处理两步中增加了一个Frame data的区域同时在最终输出时先输出到片内存中而不是直接输出到Frame Buffer。 5.TBRTile-Based (Deferred) Rendering)示意图 6.GPU乱序执行IMR和TB(D)R 可以看到实际上GPU并不会严格的按照从左到右/从上到下竟然有序的执行。 五、小结
TBR的核心目的是降低带宽减少功耗但渲染帧率上并不比IMR快
1.优点
(1TBR给消除Overdraw提供了机会PowerVR用了HSR技术Mali用了Forward Pixel Killing技术目标一样就是要最大限度减少被遮挡pixel的texturing和shading。
(2TBR主要是 缓存友好, 在缓存里头的速度要比全局内存的速度快的多以及有可能降低帧率的代价降低带宽省电。
2.缺点
(1binning过程需要在vertex阶段之后将输出的几何数据写入到DDR然后才被fragment shader读取(几何数据过多的管线容易在此处有性能瓶颈)。这之间也就是tile写入DDR的开销和fragment shader渲染读取DDR开销的平衡。另外还有一些操作(比如tessellation)也不适用于TBR。
(2如果某些三角形叠加在数个图块Overdraw则需要绘制数次。这意味着总渲染时间将高于即时渲染模式。 六、两个重要的Defer/批处理 1.Binning过程(类似四叉树) Binning过程实际上就是决定每一个图元由哪些块元来渲染的一个过程如上图所示。 2.不同GPU的Eearly-DT
· Android平台 2Arm Mali Arm Mali发生在early depth/early Z之后是一个先进先出的队列。在上图左侧可以看到该队列中已经存在了4个Quad每个Quad可以理解为一个2x2像素的平面它们带有一个pos信息记录它们在屏幕上的位置其次还有Z也就是深度那么如图所示当新进来的Quad和队列中已有的Quad的pos相同的时候Z10的被Z0的替换掉。 · IOS平台
(1)HSR隐形面剔除 发出一条射线遇到的第一个不透明三角形的时候停止下来打断后面三角形的像素着色器的处理。 七、移动端Tile Based Render的优化 参考
3710-移动端GPU的TB(D)R架构_哔哩哔哩_bilibili
PPT3710-移动端GPU的TB(D)R架构(1) (qq.com)