如何获取GPU信息?

4

我有一个任务,需要使用C++在Windows系统中收集关于GPU的信息,但是我不知道从何开始!你有任何想法吗?

更新:我需要名称、VRAM、DAC、制造商、版本、时钟等信息。

更新2:如果我使用win32_videocontroller类,我只能获得当前正在使用的显卡属性,但如果有多个显卡,我需要所有显卡的属性。


你需要什么样的信息?GetDeviceCaps是一种获取一些基本信息(例如当前垂直/水平分辨率)的非常简单的方法,但很难猜测这是否是你想要的信息。 - Jerry Coffin
还有,我如何确定GPU中有多少显示设备? - user3540983
你能给一个DirectX Caps文档链接或相关信息吗? :) - user3540983
1
有些你想要的东西并不存在,至少不是普遍存在的。一些GPU具有多个不同的时钟。其他GPU没有固定大小的VRAM。如果显示器接受数字数据,则笔记本电脑配置可能根本没有DAC。 - Ben Voigt
1
您可以考虑使用OpenCL(它可能也适用于Windows之外的系统,例如Linux)。 - Basile Starynkevitch
显示剩余5条评论
2个回答

4

你是否以管理员权限运行应用程序?这可能是必需的。 - szulak
上面的链接实际上是指 Win32_VideoController 类,而不是过时的 Win32_DisplayControllerConfiguration 类。 - Eryk Sun
如果您正在使用VS的调试版本,则必须以管理员权限重新启动VS。 - szulak
在调用Get()之后,GetLastError()返回什么? - szulak
顺便问一下,我怎么获取其他显卡的数据呢?我的意思是它只返回当前使用的显卡属性。 - user3540983
显示剩余4条评论

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接