笔记
IMR过程
直接和系统内存进行交互
TBDR过程
宏观上两个阶段
第一阶段:分图元
● 执行所有与几何相关的处理,并生成Primitive List(图元列表)
● 并且确定每个Tile(块)上有哪些Primitve(图元)
第二阶段:
● 执行光栅化、HSR及后续处理
● 并在完成后,将FrameBuffe从Tile Buffe写会到System Memory中
On-Chip Buffers : 片上内存
System Memort :系统内存
Tiling过程:将顶点处理形成的各种几何数据刷到系统内存上
经过光栅化、像素shader和ROP,最终把结果刷到片上内存,最终片上内存再刷到系统内存
两个Defer
第一个Defer
Binning
确定哪些块元渲染哪些图元
■ 第二幅图里的红色三角形,只用一个块元就能渲染,所以它只会被分配到一个块元中
■ 第四幅图里的棕色三角形,需要多个块元才能渲染,所以它需要分配到9个块元中一起渲染
第二个Defer
- Qualcomm Adreno
○ 采用外置模块LRZ。
○ 在正常渲染管线之前,先多执行一次vs生成低精度depth texture,来提前剔除不可见的三角形(实现细节未公开)
○ 说人话,就是用硬件实现occlusion culling(遮挡剔除),功能类似软光栅中的遮挡剔除
理解:将一种粗劣的early-z方法,提前到顶点阶段 - Mail的FPK
○采用Forward Pixel Kill技术
○ 位于管线的位置:发生在Early-z之后
○ 数据模型:先进先出的队列
○ 简单概括一下:
■ 队列中有4个Quad(可以理解为2×2像素的平面)