因此,我一直在閱讀很多關於openGL和gpus以及圖形的知識,而三重緩衝技術經常被人們稱爲免費性能提升。我知道爲什麼它有幫助;實際上,您可以進行v-sync,而不受60或30或20或15等幀速率的限制,因此您可以實際達到55fps。但是這實際上是否有成本?直觀地說,我希望三重緩衝可以將輸出延遲一幀,從而給所有內容增加一個非常小的延遲。三重緩衝真的是一個免費的性能提升?
8
A
回答
6
在55 FPS時,一幀有點低於20ms。所以它不是免費的,但幾乎總是值得的。
雖然在15 FPS,它可以是非常明顯的。 (順便說一下,這是一款POS筆記本電腦,大多數3D遊戲對我而言運行速度都很快,有些甚至更慢)。
有些人會注意到滯後現象,尤其是在較低的幀速率下,有時三倍緩衝不起作用預期。 (特別是在OpenGL中,硬件不能很好地支持的東西可能會回退到(可能非常慢)的軟件仿真。現在應該不是什麼問題,但是呃。)所以大多數使用三重緩衝的程序也是包括一個選項來禁用它。你可能想考慮做同樣的事情。
5
來自Akenine-Möller等人的優秀「實時渲染」(http://www.realtimerendering.com/)的引用,第835頁,這幾乎總結了你在自己的問題的答案中已經建議的內容,考慮了延遲:
「三重緩衝擁有雙緩衝一個重要優勢。使用 它,系統可以在等待垂直 回掃訪問等待緩衝器。雙緩衝,交換才能使那些圖形管線。[... ]三重緩衝的缺點是延遲增加到一個完整的幀,這種增加延遲了對用戶輸入的反應,例如鍵擊 和鼠標或操縱桿移動。「
相關問題
- 1. 免費 - SP16緩衝
- 2. SDL三重緩衝
- 3. 免費()一個由系統消耗的緩衝()
- 4. 三重緩衝重閃爍
- 5. 等待免費環形緩衝區
- 6. 通過DNS緩存提升性能?
- 7. 緩存$(this)會有性能提升嗎?
- 8. 是否可以提升Asio SSL免費的OpenSSL分配?
- 9. 重寫查詢以避免不進入並提升性能
- 10. 是否有可能malloc()分配一個緩衝區重疊使用mmap()分配的另一個緩衝區?
- 11. 一個真實幀緩衝區中的多個邏輯緩衝區
- 12. log4j GC免費性能
- 13. 你能推薦一個免費的雲託管提供商嗎?
- 14. 使用免費功能提升單元測試框架燈具
- 15. 從rgb8_view_t獲取緩衝區提升gil
- 16. 是否有免費提示?
- 17. 升壓原子:無等待環形緩衝區大量我想用<code>boost::atomic</code>一個免費的等待環緩衝器的數據
- 18. 性能提升C++
- 19. 免費(指針)方法的性能?
- 20. 如何確定一個理性是平方免費的?
- 21. 找到一個免費的TCP端口和升壓ASIO
- 22. 什麼是免費功能?
- 23. 的memcpy從一個char *緩衝區一個wchar_t的*緩衝區
- 24. java雙緩衝性能
- 25. AudioQueueReset是否有免費的音頻緩衝區,或者直接返回它們?
- 26. 緩存是否總能提高性能?
- 27. 三維「免費」照相機
- 28. 免費提供的真實公開數據
- 29. 緩衝區大小的重要性
- 30. 如何提高環緩衝區代碼的性能?