有关mrt的在tbdr的架构下的内存排布
system memory肯定是dither 我对这里把握比较大
rt0 rgba8 rt1 r8
这样像素排列是rgba8r8rgba8r8rgba8r8.......
在tile上我倾向也是这么排的
所以如果rt多了 也会像msaa一样 增加tile数量
但是这个事情有个上限 比如powervr sgx5 是256bits(大概) 多了它就会system local来回倒腾了
然后如果解绑rt1
tile上的mem需要变成rgba8rgba8....所以。。会触发一次system到local mem的copy
so 这里有带宽
去掉的方法是用programmable blending
这个扩展 ogl 和metal都有相应功能
可以拿到前一次drawcall的像素 其实是tile mem上的像素内容
这样 对于一类问题
一个rt即使srv又是rtv这类问题很有帮助
这样就不需要解绑或者copy了
但是 这个扩展只能处理当前pixel的历史像素内容
拿不到隔壁像素 所以那些uv有offset的都略尴尬
所以这个方案只能解决depth作为srv的事情 reflection和distorsion需要另想解决方案
原文:https://www.cnblogs.com/minggoddess/p/10896502.html