DICE和AMD許諾本月底會發布 Mantle 版《戰地風雲4》以及新的催化劑補丁(到現在都沒信,不會又跳票吧),關鍵點就是在支持的 Mantle API 可以大幅提升遊戲性能。對於AMD的 Mantle 優化,與其說是GPU優化,還不如說是CPU優化,因為相比 D3D API,Mantle 可以大幅降低CPU間接成本,Draw Call 繪製命令可達 D3D 的10倍。對於這個問題,NVIDIA表示 OpenGL API 中早已有類似的功能,同樣可以提高Draw Call命令數量,降低CPU的間接成本。
在本月的一次會議上,NVIDIA公司技術人員 Cass Everitt 及 John McDonald 做了“ 如何用現代 OpenGL 減少 GPU 驅動層瓶頸、提升Draw Call數量 ”的演講,詳細闡述了 OpenGL 的 API 作用,從 Draw Call 為什麼會受到限制、如何突破限制、效果如何以及有什麼樣的副作用皆有涉及。
從他們的講解來看,GPU是一個複雜的結構,圖形渲染有非常多的步驟,限制 Draw Call 命令數量的最大因素是“驗證”過程,而驗證目前來說還是非常困難的,這就導致了 Draw Call 命令花費的時間比較多,成為瓶頸之一,而微軟的 D3D API 還不夠快,原生的OpenGL 比 D3D 要好,不過還不夠好。
通過 GL_ARB_buffer_storage 的API,Bindless /稀疏紋理,共享UBOs(統一緩衝對象)以及GL_ARB_multi_draw_indirect API,OpenGL也能大幅减少CPU間接成本,重要物體的數量有5-30x的提升,與驅動層的交互時間降低了75%。當然,OpenGL也有一點副作用,GPU性能會因此受到影響,雖然並不明顯。
在NVIDIA之前,原ID大神約翰·卡馬克也做過類似表態,他表示不會為AMD的Mnatle API寫代碼,除了事務繁忙之外,更主要的是他認為OpenGL中已經有類似的功能了。眾所周知,他本人也是OpenGL控。
來源:http://www.expreview.com/31156.html
在本月的一次會議上,NVIDIA公司技術人員 Cass Everitt 及 John McDonald 做了“ 如何用現代 OpenGL 減少 GPU 驅動層瓶頸、提升Draw Call數量 ”的演講,詳細闡述了 OpenGL 的 API 作用,從 Draw Call 為什麼會受到限制、如何突破限制、效果如何以及有什麼樣的副作用皆有涉及。
從他們的講解來看,GPU是一個複雜的結構,圖形渲染有非常多的步驟,限制 Draw Call 命令數量的最大因素是“驗證”過程,而驗證目前來說還是非常困難的,這就導致了 Draw Call 命令花費的時間比較多,成為瓶頸之一,而微軟的 D3D API 還不夠快,原生的OpenGL 比 D3D 要好,不過還不夠好。
通過 GL_ARB_buffer_storage 的API,Bindless /稀疏紋理,共享UBOs(統一緩衝對象)以及GL_ARB_multi_draw_indirect API,OpenGL也能大幅减少CPU間接成本,重要物體的數量有5-30x的提升,與驅動層的交互時間降低了75%。當然,OpenGL也有一點副作用,GPU性能會因此受到影響,雖然並不明顯。
在NVIDIA之前,原ID大神約翰·卡馬克也做過類似表態,他表示不會為AMD的Mnatle API寫代碼,除了事務繁忙之外,更主要的是他認為OpenGL中已經有類似的功能了。眾所周知,他本人也是OpenGL控。
來源:http://www.expreview.com/31156.html