tbdr+mrt

有关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需要另想解决方案

猜你喜欢

转载自www.cnblogs.com/minggoddess/p/10896502.html