zoukankan      html  css  js  c++  java
  • 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需要另想解决方案

     ============

    上文中的refs没标

    mark一篇还没看的 mali

    https://community.arm.com/developer/tools-software/graphics/b/blog/posts/the-mali-gpu-an-abstract-machine-part-1---frame-pipelining

    openglinsight 

    realtime rendering 4

    和siggraph 的advances in realtime rendering  啥时候看啊。。啊啊。

     https://developer.qualcomm.com/qfile/28557/80-nu141-1_b_adreno_opengl_es_developer_guide.pdf 
    mali adreno...
    --------------------------------------------
    tbdr 上解绑一张mrt会导致一次system 到local的 flush增加带宽
    解决方案
    用frame buffer fetch 这个扩展在es3.0之后是在tile上做的 可以省掉这次带宽
    就是frame buffer fetch depth stencil这个扩展 只在arm上目前没看到别的平台 这样别的平台的depth还要用mrt往外写一次 真麻烦
  • 相关阅读:
    【产品】Pony三问
    【数据平台】阿里dataphin
    【数据中台】阿里数据中台架构
    关于 Qt 5,你所需要了解的基础知识
    Skynet 游戏服务器开发实战
    关于自然语言处理,有一本通关手册待接收
    ROS 机器人操作系统进阶实战
    面试官不讲武德,问我如何实现分布式缓存?
    高 star 开源项目来实验楼啦,深度学习强推教材
    Spring Boot 2.4.0 全新发布,还不快来实战
  • 原文地址:https://www.cnblogs.com/minggoddess/p/10896502.html
Copyright © 2011-2022 走看看