gpt4 book ai didi

c++ - 如何在 C++ 中获取 OpenGL 使用的总内存(以字节为单位)?

转载 作者:IT王子 更新时间:2023-10-28 23:35:56 25 4
gpt4 key购买 nike

如何在 C++ 中获取 OpenGL 使用的总内存(以字节为单位)?

我正在构建一个 OpenGL 应用程序,使用的总内存似乎在增加,我可以获得有关我自己创建的变量和对象使用的总内存的信息,但不能保证 OpenGL 使用了多少内存变量、对象和纹理等。那么是否有可能获得 OpenGL 在 C++ 中使用的总内存(以字节为单位)?

最佳答案

一般来说,你不会。 OpenGL 最终是一种硬件抽象。而 OpenGL 根本不提供获取此类信息的方法。

有一些特定于供应商的扩展可以让您提出问题,但您得到的结果取决于架构。 AMD 硬件提供 ATI_meminfo extension .它将内存分解为对象类型:缓冲区对象、纹理和渲染缓冲区。

NVIDIA 提供了实验性扩展 NVX_gpu_memory_info。注册表中没有关于如何使用它的信息,所以我无法将您链接到任何内容。

无论如何,了解 GPU 正在使用什么的最有效方法就是自己跟踪它。始终使用 internal image formats with sizes ;这意味着您可以很好地估计纹理占用的内存量。缓冲区对象等也是如此。

您不会得到确切的数字,因为填充、对齐等可能会让您感到困惑。但你会得到相当不错的东西。

关于c++ - 如何在 C++ 中获取 OpenGL 使用的总内存(以字节为单位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com