我希望我在正确的论坛上发帖!
最近,我开始在 VC++ 2010 上使用 Directx 11 June (2010) SDK 进行编程,在戴尔笔记本电脑上使用 NVidia GeForce GT 630M GPU 和英特尔 HD 4000 芯片。
您要做的一件事是尝试枚举可用的适配器和输出,等等。这是一个例子:
IDXGIFactory1 *factory;
CreateDXGIFactory1(__uuidof(IDXGIFactory1), (LPVOID *)&factory);
IDXGIAdapter *adapter;
factory->EnumAdapters(0, &adapter);
DXGI_ADAPTER_DESC desc;
adapter->GetDesc(&desc);
当我运行它时, desc 结构包含我的 Intel HD 芯片的信息,而不是我的 GPU 的信息!
现在,当我打开我的 NVidia 控制面板并选择 GPU 作为首选处理器并重新运行示例时,我会在 desc 中获得我的 GPU 的信息 - 这是正确的!而且,当我尝试枚举此适配器的输出时,我发现至少有一个。
我的问题是:有没有办法以编程方式完成此操作,例如在 DirectX 11 SDK 中,这样我就不必在我的 NVidia 控制面板中设置设置?
我浏览了 SDK 代码(针对 EmptyProject11),不知何故他们“抓住”了 GPU 而不是英特尔芯片。我把WinMain函数里的代码都注释掉了,把上面的代码插入进去,还是抢GPU!它与项目设置、环境变量、命令行参数或......有关吗?我的意思是他们是怎么做到的!?!?!?
我将不胜感激对此事的任何见解。
谢谢