jon*_*ham 8 c++ memory windows opengl visual-c++
如何在C++中获取OpenGL使用的总内存(以字节为单位)?
我正在构建一个OpenGL应用程序并且使用的总内存似乎正在上升,我可以获取有关我自己创建的变量和对象所使用的总内存的信息,但无法保证OpenGL为其变量和对象使用了多少内存&texture等.那么有可能获得OpenGL在C++中使用的总内存(以字节为单位)吗?
一般来说,你没有.OpenGL最终是一种硬件抽象.而OpenGL根本无法提供获取此类信息的方法.
有特定于供应商的扩展可以为您提供询问方式,但您获得的内容取决于架构.AMD硬件提供ATI_meminfo扩展.它将内存分解为对象类型:缓冲区对象,纹理和渲染缓冲区.
NVIDIA提供实验性扩展NVX_gpu_memory_info.注册表中没有关于如何使用它的信息,因此我无法将您链接到任何内容.
在任何情况下,了解GPU使用的最有效方法是自己跟踪它.始终使用大小的内部图像格式 ; 这意味着您可以计算出纹理占用多少内存的非常好的估计.缓冲对象等也是如此.
您将无法获得确切的数字,因为填充,对齐等可能会让您感到困惑.但是你会得到相当不错的东西.
| 归档时间: |
|
| 查看次数: |
2213 次 |
| 最近记录: |