美文网首页
Mali GPU:Abstract Machine, Part

Mali GPU:Abstract Machine, Part

作者: 小老鼠oo | 来源:发表于2019-11-24 21:37 被阅读0次

    Traditional Approach

    传统桌面GPU架构,通常叫做immediate mode architecture。
    依次地,在每个draw call,每个primitive都执行fragment shaders。
    每个primitive都完全render完后再做下一个,algorithm近似于:

    foreach(primitive)
        foreach(fragment)
            render fragment
    

    由于stream中的任何一个triangle可以覆盖屏幕的任何地方,所以renderer维护的data可能很大。通常至少也是有全屏大小的color buffer, depth buffer, 也许还有stencil buffer.
    现在设备典型值是32 bits-per-pixel(bpp)color, 和32bpp packed depth/stencil。所以,1080p display的工作集就是16MB,4K2K TV就是64MB。这个大小决定他们必须存在DRAM以外。

    IMR dataFlow

    每个blending,depth testing,和stencil testing操作都需要当前framgent的pixel coordinate与working set fetch。所有的fragments shaded通常会touch this working set,所以memory的bandwidth load 会很高,如果有multiple read-modify-write operations per fragment,仅能适当缓解。

    Mali Approach

    Mali GPU使用的方法叫做tile-based rendering,目的是,render期间最小化内存存取量。
    前面说过Mali有两个rendering algorithm for each render target,
    在geometry stage,Mali gpu将屏幕分为16x16 pixel tiles,然后为每个tile中present的rendering primitives都建立一个list。当进行GPU fragment shading step时,每个shader一次处理一个16x16 pixel tile,彻底render完再开始下一个,tile-based architectures the algorithm :

    foreach(tile)
        foreach(primitive in tile)
            foreach(fragment in primitive in tile)
                redner fragment
    

    16x16 tile 知识整个屏幕的小部分small fraction,所以可以把整个tiel的working set(color, depth, stencil)保存在fast RAM中,这个RAM与GPU shader core 是tightly coupled的

    tile-based renderer data flow

    未完

    相关文章

      网友评论

          本文标题:Mali GPU:Abstract Machine, Part

          本文链接:https://www.haomeiwen.com/subject/hkrrwctx.html