GL上的GL渲染线程,值得吗?

我是
iphone的新手,根本没有做过任何线程.似乎对drawElements的调用占用了我处理时间的很大一部分,所以它让我觉得在允许代码继续通过调用之前正在进行大量的渲染.

有谁知道openGL的并行性如何工作?或者它如何在iPhone上运行?与异步相比,同步完成了多少?是否值得制作一个渲染线程,将所有调用排队到GL?在iPhone上甚至是那么好的线程?或者它是如此可怕,即使理论上这是一个好主意,可怕的线程意味着你不应该打扰? (没有做出判断,就像我说的那样,我没有在iphone上试过线程).

以前有人试过吗?

基本上,当GPU完成对DrawElements / Arrays的调用时,cpu只是坐在那里什么都不做?

最佳答案 iPhone上的OpenGL ES有点兼顾:同步和放大异步(延迟渲染器).每个调用消耗少量的CPU来移动内存并准备GPU,但你是对的. CPU有时会坐在那里,但是当它出现时,总线通常会饱和.

如果你有其他不太耗费内存的东西,那么你可以通过在一个单独的线程中运行你的计算来获得一点点提升.我不建议移动你的渲染代码,我真的要注意并发内存操作. iPhone上的RAM是渲染的一大瓶颈.

点赞