在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