获取图形内存量

Get amount of graphics memory

本文关键字:内存 图形 获取      更新时间:2023-10-16

我知道DXGI_ADAPTER_DESC,但在 32 位版本中,Direct3D 的SIZE_T类型长度为 4 个字节,所以我得到的是 3GB 而不是 11 个。

有没有办法即使在 32 位构建中也能获得正确的值?

附言我需要该值来计算大型 2D 纹理数组的上限大小。虽然用户不太可能拥有具有11GB VRAM GPU的32位Windows,但很有可能拥有具有32位操作系统的4GB VRAM,例如作为升级的结果。在这种情况下,我不想将我的数组限制为 0。

根据我的研究,没有简单的方法可以实现这一目标。

相反,有多种(Microsoft式)完全不同的方法可以实现这一点,每种方法都比另一种更复杂。

DX9 中曾经有方便的pd3dDevice->GetAvailableTextureMem(),但在 DX11 中已经消失了。

在此 MSDN 代码示例中,您可以找到多种方法来查询可用的视频 RAM(使用源)。我希望其中一个适合你。