代码之家  ›  专栏  ›  技术社区  ›  matt

GL在iPhone上渲染线程,值得吗?

  •  4
  • matt  · 技术社区  · 15 年前

    我刚接触过iPhone,还没有在上面做过任何线程处理。似乎对drawElements的调用占用了我很大的处理时间,因此我认为在允许代码继续通过调用之前,正在进行大量的呈现。

    有人知道OpenGL的并行性是如何工作的吗?或者它在iPhone上是如何工作的?与异步相比,同步完成了多少工作?是否值得创建一个将所有调用排队到GL的呈现线程?iPhone上的线程是否也很好?或者,即使理论上这是一个好主意,糟糕的线程意味着你不应该麻烦,这是如此可怕吗?(没有做出判断,如我所说,我根本没有在iPhone上尝试过线程)。

    以前有人试过这个吗?

    基本上,当GPU处理对drawElements/array的调用时,CPU是否只是坐在那里什么也不做?

    1 回复  |  直到 15 年前
        1
  •  2
  •   pestilence669    15 年前

    iPhone上的OpenGLES有点两者兼而有之:同步和异步(延迟渲染器)。每次调用都会消耗少量的CPU来移动内存并准备GPU,但您是对的。CPU有时只是坐在那里,但当它是,总线通常是饱和的。

    如果你有其他不太需要记忆的东西,那么你可能会得到一个 小的 通过在单独的线程中运行计算来提高效率。我不建议移动渲染代码,我真的会注意并发内存操作。iPhone上的RAM是渲染的一个大瓶颈。