是否可以將顯示列表數據存儲在視頻卡存儲器上? 我想只使用像視頻緩衝區對象(VBO)的視頻內存來存儲DisplayList。 但是當我嘗試它時,它總是使用主存儲器而不是顯存。我在nVidia GeForce 8600GTS和GTX260上測試過。使用視頻存儲器的OpenGL DisplayList
1
A
回答
2
顯示列表是一個非常古老的功能,可以追溯到OpenGL-1.0。他們很久以前就被壓垮了。無論如何,你仍然可以將它們用於兼容性原因。
OpenGL的工作方式可以防止顯示列表僅被保存在GPU內存中。圖形服務器(就像OpenGL所說的那樣)是一個純粹抽象的東西,規範保證你放在顯示列表中的東西總是可用的。然而,在現代GPU中,只有有限的內存量,因此有效載荷數據可根據需要換入和換出。
有效的GPU內存是高速緩存用於系統RAM中的數據(與系統RAM應作爲高速緩存進行存儲一樣)。
此外,現代GPU可能會崩潰,驅動程序將執行完全重置,給用戶一切正常的印象。但重置後,GPU內存上的所有數據都必須重新初始化。
因此,OpenGL有必要將每個有效載荷數據的副本保存在內存中以支持平滑操作。
因此,您的數據顯示爲消耗系統RAM也是非常正常的。儘管很有可能,顯示列表也是GPU內存中的緩存。
1
不贊成使用顯示列表。您可以使用具有頂點索引的VBO來使用圖形內存,並使用glDrawElements
進行繪製。
+0
感謝您的回覆。我想使用DisplayList來顯示視頻卡驅動程序的兼容性問題,並且還使用VBO來加快渲染速度。 –
相關問題
- 1. OpenGL視頻內存使用
- 2. OpenGl DisplayList比較慢
- 3. 使用視頻卡存儲器(RAM)存儲對象
- 4. 視頻存儲
- 5. 使用OpenGL ES着色器將視頻覆蓋在視頻上
- 6. OpenGL的限制displayList的大小
- 7. Firebase:視頻存儲
- 8. 展開displaylist
- 9. 無法在內部存儲器中存儲視頻文件Android
- 10. iOS 360視頻使用OpenGL ES 2.0
- 11. 使用QTKit和OpenGL修改視頻幀
- 12. iOS:使用OpenGL繪製視頻
- 13. 視頻播放器可以播放存儲在內部存儲器上的視頻嗎?
- 14. 將OpenGL渲染保存爲視頻
- 15. OpenGL:紋理大小和視頻內存
- 16. 存儲視頻信息
- 17. ios快速存儲視頻
- 18. android ACTION_VIDEO_CAPTURE不存儲視頻
- 19. 在MySQL中存儲視頻
- 20. 分享/存儲視頻
- 21. opengl視頻凍結
- 22. Opengl視頻紋理
- 23. openGL視頻顯示
- 24. 如何使用視頻內存作爲標準內存存儲?
- 25. 在PouchDB中存儲視頻/音頻
- 26. 如何在視頻Web應用程序中存儲視頻
- 27. Android視頻播放器使用NDK,OpenGL ES和FFmpeg
- 28. 如何使用openGL創建視頻播放器
- 29. 保存Firebase存儲視頻並使用AVPlayerViewController播放
- 30. 將視頻保存到內部存儲
「但是當我嘗試它時,它總是使用主存」你怎麼知道的?無法檢測到驅動程序在OpenGL中放置顯示列表的東西的位置。 –