【问题标题】:Making redundant OpenGL calls进行冗余的 OpenGL 调用
【发布时间】:2011-06-21 19:13:41
【问题描述】:

我想知道是否建议消除所有多余的 opengl 调用。

例如,我是否应该做类似(包装在函数中)的事情:

if(foobuffer != boundbuffer) {
  glBindBuffer(GL_BAR_BUFFER, foobuffer);
  boundbuffer = foobuffer;
}

或者是驱动程序自动做这些事情,这实际上是一个冗余的冗余检查?

【问题讨论】:

    标签: c++ opengl driver buffer call


    【解决方案1】:

    你应该避免它。 Here(特别是 22.040,您必须向下滚动页面,因为它没有锚点),注意到冗余调用通常是不好的做法,即使某些实现试图最小化影响。

    gDEBugger 之类的工具也可用于帮助追踪可能进行冗余调用的位置,如果您不确定自己的代码库中可能进行了多少调用。

    【讨论】:

      【解决方案2】:

      我刚刚从 Android 应用程序中消除了许多此类调用,因此我可以直接告诉您,它在那个平台上很重要(在那个特定的操作系统版本和硬件上)。它将帧速率提高了几 fps,我会说大约 5-10% 的利润。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多