在OpenGL wiki on Performance,它说:OpenGL:哪些OpenGL实现不流水?
“OpenGL实现几乎都是流水线 - 也就是说, 的事情,当你告诉OpenGL吸引他们并不一定按 - 和一个OpenGL调用返回的事实并不意味着它完成了 渲染。“
既然它说“差不多”,那就意味着有些实现不是流水线的。
在这里,我找到一个: OpenGL Pixel Buffer Object (PBO)
“常规glReadPixels()会阻塞管道,并等待,直到所有 像素数据传输然后,返回控制到 应用相反,glReadPixels。 ()与PBO可以安排 异步DMA传输,并立即返回而不会失速 因此,应用程序(CPU)可以立即执行其他进程, ,同时通过OpenGL(GPU)与DMA传输数据。
所以这意味着传统的glReadPixels()(不与PBO)阻塞管道。 但实际上在glReadPixels的OpenGL引用中,我不能说出这个事实。我想知道: 哪些OpenGL实现不流水线?
glDrawArrays怎么样?
不是100%确定,但我认为所有不返回任何内容的操作都是流水线操作。例如glDrawArrays是流水线,而glGenBuffers不是。 – dari 2014-12-02 22:28:59