mali tbr Forward Pixel Kill

https://community.arm.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-20-66/siggraph2015_2D00_mmg_2D00_andy_2D00_slides.pdf

Forward Pixel Kill

写完没存。。。还要再写一遍。。。

https://community.arm.com/developer/tools-software/graphics/b/blog/posts/killing-pixels---a-new-optimization-for-shading-on-arm-mali-gpus

依赖于earlyz

在一个时间窗口里用earlyz做剔除 on fly

从Mali-T62X and T678 开始有这个功能

fpk和earlyz是两个独立的单元

这部分有三种剔除方式

earlyz

fpk

latez

earlyz 失效有以下几种原因

discard in ps

alpha to coverage

write fragment depth in fragment shader(在ps里改这个值gl_FragDepth)

这部分像素 走latez 这部分也不会走fpk的 因为对于earlyz失效的 对fpk也是失效的 fpk本质上是个有窗口的earlyz

只有earlyz 通过的才走fpk 也就是说这部分像素 没有严格按照从前向后的渲染次序 虽然对于他们earlyz 是生效的 但是还是通过了 ps被画出来了

 

所以这部分 ps load的开销肯定是有的 但是on fly上会被踢掉 所以ps计算的开销去掉了

窗口呈现的这部分 放在FIFO的buffer里

 

原文地址:https://www.cnblogs.com/minggoddess/p/11282025.html