将渲染设备从 Sandy Bridge GPU 更改为主 GPU

Change render device from Sandy Bridge GPU to main GPU

本文关键字:GPU Bridge Sandy      更新时间:2023-10-16

我试图强制我的应用程序使用主 gpu。现在它会自动占用 CPU 上的那个。我已经在DirectX9和OpenGL上尝试过。

当我调用 GetAdapterCount() 函数时,DirectX 只返回 1 个适配器。OpenGL 在调用 glGetString( GL_RENDERER 时也只返回 1 个适配器。

有没有办法确保它使用正确的 GPU?

我在Nvidia Optimus + SandyBridge CPU笔记本电脑上遇到了这个问题。EVerybody(DX,GL)只返回了一个适配器,它给了我英特尔GPU。

我通过更新 Nvidia 驱动程序来解决此问题。安装最新版本后,DirectX 正确报告了两个适配器,并根据供应商 ID(英特尔与英伟达),我可以选择要在我的应用程序中使用哪个 GPU。

或者,您可以转到Nvidia控制面板,并为您的可执行文件创建配置文件 - 并设置为始终使用Nvidia GPU。当然,如果您将可执行文件交给其他人在具有错误驱动程序的系统上运行,这不会解决同样的问题。

另一种选择是将可执行文件重命名为流行的游戏可执行文件名称。比如愤怒.exe或bf3.exe。这是有效的,因为 Nvidia 控制面板有很多预定义的配置文件,其中包含流行的游戏 exe 名称,并且它们都设置为使用 Nvidia GPU 而不是英特尔 GPU。

这很复杂,并且取决于硬件。 您是否使用的是具有混合图形的笔记本电脑? 如果是这样,通常驱动程序设置为为您提供OpenGL上下文的"主"GPU(回退到桌面渲染的集成图形)。 如果是台式机,通常两个 GPU 驱动物理上不同的显示器输出。 您是否将显示器插入独立显卡。