zoukankan      html  css  js  c++  java
  • 性能一 Exploring Mobile vs. Desktop OpenGL Performance

     

    opengl insight

    Exploring Mobile vs. Desktop
    OpenGL Performance

    Jon McCaffrey

    前面那些内容以前看过 应该写在谋篇帖子里了

     Fullscreen effect


    pp优化的核心在于 减pass 因为这全是system mem sync read modify write...

    1.全屏特效 如果不需要 neighboring pixelx 用frame buffer ftech 和base做到一起 带宽可以做到最低

    2.particle的bloom去掉 用mask 区分共用一次bloom mask用mrt出

    3.ubershader把pp互相挪到一起 参见2014gdc unreal

    Offscreen Effect

    1.用downsample+bilinear做blur for bloom and environment reflection

    2.这种方式每个像素只画一次 就是deferred lighting的优点 利用这一点 减小overdraw

    Fragment

    优化核心 用profiler测 bound

    1.float

    2.如果顶点少 考虑逐顶点计算
    3.lightmap

    4.lookup texture (bandwidth memory 换alu)例如beckmon参数 一维 cache命中率高 

    5.texture fetch 这里bound ------如果varyings太多 register压力导致不能有更多fragment同时处理 以便把 tsp 或者usse 的开销 通过调度掩盖掉

    Vertexshading

    2.varyings 数量限制住 太多不但增加memory开销导致并行fragment数量受限

    3.顶点带宽 每个tile都会拉一遍 除非已经在cache(下一块tile数据已经在cache)里 vertex用低精度数据 OES vertex half float

    4.交错interleaved vertex attribute 这样cache命中高 pos normal uv pos normal uv

    5 频繁改变的vertex attribute和static的buffer 分开放 比如每次更新的可能只是pos而 normal uv不变 把这两组数据分开(看起来animation才会有这个问题 scene全部数据都是static

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

    https://cdn2.unrealengine.com/Resources/files/GDC2014_Next_Generation_Mobile_Rendering-2033767592.pdf

    pp

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

    cover latency

    https://developer.qualcomm.com/qfile/28557/80-nu141-1_b_adreno_opengl_es_developer_guide.pdf

    https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf

  • 相关阅读:
    OpenCV-Python 模板匹配 | 三十一
    OpenCV-Python 傅里叶变换 | 三十
    OpenCV-Python 直方图-3:二维直方图 | 二十八
    OpenCV-Python 直方图-4:直方图反投影 | 二十九
    角谷猜想
    C# Notepad++ 环境配置
    C++ Notepad++ 环境配置
    字符串内无重复字符的最长子串长度
    计算给定字符串的无重复字符的最长子串长度
    黑色星期五
  • 原文地址:https://www.cnblogs.com/minggoddess/p/10600672.html
Copyright © 2011-2022 走看看