2010-02-18 92 views
2

我很好奇,喜歡昂貴的功能如何:OpenGL操作有多昂貴?

glViewPort 
glLoadIdentity 
glOrtho 

在雙方的CPU上所做的工作,並在GPU上所做的工作條件。

這是在哪裏記錄的?

回答

2

這種事情可能很依賴於你的平臺。如果您擔心,最好的辦法可能是自己使用一個分析器。

+0

分析器測量CPU時間。 OpenGL調用影響GPU硬件,事實上,您只能測量CPU的實現,而不能測量GPU的後果。 – Luca 2010-02-19 06:37:30

+1

也有用於GPU的分析器。 – Mongoose 2010-02-19 23:03:37

0

正如Alex O'Konski所言,這是高度依賴於平臺的。也就是說,如果你對PC最近的圖形卡感興趣,你應該知道它們中的大多數不會在GPU上「工作」。他們爲未來的平局建立了狀態。

這很重要,因爲它們的成本與GPU在流過芯片的各種繪製調用之間傳輸流水線的能力有關,而不是將多少時間用於將寄存器從一個值更改爲下一個值。

大多數平臺供應商根本不記錄各種狀態變化的成本。他們沒有記錄OpenGL狀態如何映射到他們的硬件狀態。

最後,像矩陣狀態(glLoadIdentity和glOrtho)的狀態變化是過去的一種殘餘。在現代顯卡中,它們只是輔助(CPU)功能來設置制服(這就是爲什麼它們在覈心GL 3.1中被棄用的原因)。而且他們需要的所有數學(通常不多)都是在驅動器內部的CPU上完成的。