首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定windows上的VRAM大小

确定windows上的VRAM大小
EN

Stack Overflow用户
提问于 2009-11-14 01:27:10
回答 1查看 1.2K关注 0票数 0

我需要大致确定一个系统的显卡有多少VRAM。我知道我不该做的所有理由,但我做了。它不需要是完美的(有些卡片会说谎等等)但我需要一个大概的数字。在mac上,通过核心显卡和IOKit很容易礼貌地询问显示器上连接了多少VRAM,但我对windows一无所知。我怀疑DirectX可以告诉我,因为DxDiag有一个合理的猜测...

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

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2009-11-14 01:49:02

简而言之:没有可靠的方法来获取这些信息。

长长的答案:

有许多不推荐使用的方法来获取此信息。比如打开一个旧的DirectDraw接口并查询可用的视频内存。然而,该数字可以包括AGP存储器、统一存储器,也可以不包括它。或者你甚至可以得到一个硬编码到驱动程序中的虚拟值。

我知道你已经知道查询这个数字不是一个好主意,但让我再为其他读者总结一下:

首先,你想用这个数字做什么?作为一名应用程序程序员,您对如何使用显存的控制非常有限。您不需要以任何方式分配或管理内存。驱动程序会为您执行此操作。让您的代码意识到“伪造”的可用内存将导致严重的问题。

您可能认为可以使用可用内存来确定视频内存中可以容纳多少纹理,但这是一个错误的假设。有些卡对内存的使用有非常奇怪的要求。据我所知,有一张卡的最小尺寸为4kb的mipmap。

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

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

这就是为什么这些信息不再向应用程序公开的原因。它在过去造成了许多问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1730738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档