簡體   English   中英

如何在C ++中獲取OpenGL使用的總內存(以字節為單位)?

[英]How to get total memory in bytes used by OpenGL in C++?

如何在C ++中獲取OpenGL使用的總內存(以字節為單位)?

我正在構建一個OpenGL應用程序並且使用的總內存似乎正在上升,我可以獲得有關我自己創建的變量和對象所使用的總內存的信息,但無法保證OpenGL對其變量和對象使用了多少內存&texture等。那么有可能獲得OpenGL在C ++中使用的總內存(以字節為單位)嗎?

一般來說,你沒有。 OpenGL最終是一種硬件抽象。 而OpenGL根本無法提供獲取此類信息的方法。

有特定於供應商的擴展可以為您提供詢問方式,但您獲得的內容取決於架構。 AMD硬件提供ATI_meminfo擴展 它將內存分解為對象類型:緩沖區對象,紋理和渲染緩沖區。

NVIDIA提供實驗性擴展NVX_gpu_memory_info。 注冊表中沒有關於如何使用它的信息,因此我無法將您鏈接到任何內容。

在任何情況下,了解GPU使用的最有效方法是自己跟蹤它。 始終使用大小的內部圖像格式 ; 這意味着您可以計算出紋理占用多少內存的非常好的估計。 緩沖對象等也是如此。

您將無法獲得確切的數字,因為填充,對齊等可能會讓您感到困惑。 但是你會得到相當不錯的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM