gpt4 book ai didi

c - 确定 Windows 上的 VRAM 大小

转载 作者:行者123 更新时间:2023-11-30 16:05:13 30 4
gpt4 key购买 nike

我需要大致确定系统显卡有多少 VRAM。我知道我不应该这么做的所有原因,但我还是这么做了。它不需要是完美的(有些牌是谎言等),但我需要一个大概。在 Mac 上,通过核心显卡和 IOKit 可以很容易地礼貌地询问显示器连接了多少 VRAM,但在 Windows 上我没有任何线索。我怀疑 DirectX 可以以某种方式告诉我,因为 DxDiag 有一个合理的猜测......

再说一次,我知道我不需要知道,但我确实知道。

任何帮助将不胜感激。

最佳答案

简短回答:没有可靠的方法来获取此信息。

长答案:

有许多已弃用的方法可以获取此信息。就像打开旧的 DirectDraw 界面并查询可用的视频内存一样。然而,该数字可能包括 AGP 内存、统一内存,也可能不包括。或者您甚至可能会在驱动程序中硬编码一个虚拟值。

我知道您已经知道查询这个号码是一个坏主意,但让我为其他读者再次总结一下:

您首先想对这个数字做什么?作为应用程序程序员,您对视频内存的使用方式的控制非常有限。您不以任何方式分配或管理内存。司机正在为您做这件事。让您的代码意识到“伪造的”可用内存将导致严重的问题。

您可能认为可以使用可用内存来决定有多少纹理适合视频内存,但这是一个错误的假设。有些卡对内存的使用方式有非常奇怪的要求。我知道一些细节的一张特定卡的任何 mipmap 的最小尺寸为 4kb。

因此,如果您将 8x8 8 位纹理加载到内存中,您可能会期望它占用 85 个字节 (8*8+4+4+2+2+1)。驱动程序完成上传工作后,大小将为 12kb (4 * 4kb)。您的估计会相差一百倍以上。

这同样适用于顶点和索引缓冲区、渲染目标、着色器等。

这就是为什么此信息不再暴露给应用程序的原因。这在过去造成了很多问题。

关于c - 确定 Windows 上的 VRAM 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1730738/

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