【发布时间】:2016-10-04 02:12:24
【问题描述】:
我正在开发一种产品,该产品使用 DirectX 来渲染一些更密集的图像。到目前为止,我知道有些计算机有多个 GPU,所以我通过以下方法找到具有最大 AdapterRam 的 GPU 来选择要渲染的 GPU:
using ( ManagementObjectSearcher searcher = new ManagementObjectSearcher( "select * from Win32_VideoController" ) ) {
foreach ( ManagementObject mo in searcher.Get() ) {
var adapterRam = mo.Properties[ "AdapterRAM" ].Value;
//Use this one if it is the largest
}
}
我有一些用户遇到了一个问题,他们有一个集成的 Intel 视频卡,谎称它有多少 AdapterRAM,所以它被选中了。我认为它报告了一些已分配的系统 RAM。绘图操作对这张卡来说太密集了,并且导致视频驱动程序崩溃。这台电脑确实有一张功能完美的 Nvidia 卡,应该是被选中的那张。
我认为解决此问题的一个好方法是永远不要选择集成卡而不是已安装的卡,但我还没有找到一种方法来以编程方式确定卡是否集成。
有什么方法可以检测卡是集成还是安装?
有没有更好的方法来选择哪个 GPU 更优?
【问题讨论】: