我是桌面GL開發人員,我開始探索移動世界。共享內存體系結構中的OpenGL(ES 2.0)VBO性能
爲了避免誤解或者歡迎而瑣碎的回覆,我可以虛心地說,我非常瞭解GL和GL | ES機器。
簡而言之,如果我們在共享內存架構中使用GL | ES 2.0,使用VBOs對客戶端陣列使用背後的意義何在?
更詳細地說:
- 是記憶原始塊,司機無法以任何方式,因爲訪問模式取決於優化任何
頂點緩衝器:1)如何在應用配置頂點數據佈局,2)頂點着色器如何消耗緩衝區內容,以及3)我們可以有許多以不同方式操作的頂點着色器,並且使用相同的緩衝區。
對齊方式:單個VBO存儲可以在對底層GL系統最優的地址開始;如果我只是強迫(例如,尊重對齊最佳實踐)客戶端數組分配到這些邊界?
基於瓦片的渲染與即時模式架構不應該發揮作用:據我的理解,這與我的問題(即內存訪問)無關。
據我所知,使用維也納組織可以有你的代碼運行更好/更快未來平臺/硬件,而無需修改它,但這不是這個問題的重點。除此之外,我還認識到,在共享內存架構中使用VBO會使內存使用量翻倍(如果由於某種原因,您必須保持頂點數據的可用性),並且這會花費您一筆數據。
與交錯頂點陣列一樣,VBO的使用在開發者論壇/博客/官方技術文檔中有一個很大的「炒作」,沒有任何數據支持這些語句(即基準)。
- VBO在共享內存架構上的使用是否值得?
- 客戶端陣列工作正常嗎?
- 您對此有何評論?
非常感謝您分享這些成果。最後,這對於性能的觀點來說很重要。無論如何,我無法解釋自己如何在一個共享的內存GPU中提倡VBO的使用,我想這僅僅是爲了市場營銷,或者是爲了讓那些對GL良好實踐相對陌生的人「準備好」目前來說,最好不要使用它們,因爲如果你仍然需要CPU側的存儲器,並且由於不可避免的複製操作,潛在的存儲器翻倍)。 – spattija