将渲染设备从 Sandy Bridge GPU 更改为主 GPU
Posted
技术标签:
【中文标题】将渲染设备从 Sandy Bridge GPU 更改为主 GPU【英文标题】:Change render device from Sandy Bridge GPU to main GPU 【发布时间】:2012-05-02 23:45:41 【问题描述】:我正试图强制我的应用程序使用主 GPU。现在它会自动占用 CPU 上的那个。我用 DirectX9 和 OpenGL 都试过了。
当我调用 GetAdapterCount() 函数时,DirectX 只返回 1 个适配器。 当我调用 glGetString( GL_RENDERER ) 时,OpenGL 也只返回 1 个适配器。
有没有办法确保它使用正确的 GPU?
【问题讨论】:
哪个是“正确的”GPU?最简单的方法是配置您的操作系统以使用您想要的视频卡适配器。如果板载视频适配器不断切换回 CMOS,您也可以禁用它。 这不仅适用于我正在开发它的电脑。我想确保它在程序将运行的每台 PC 上的两个 GPU 中运行得更快。 “更快”?通过什么指标? 【参考方案1】:我在 Nvidia Optimus + SandyBridge CPU 笔记本电脑上遇到了这个问题。每个人(DX、GL)都只返回了一个适配器,它给了我英特尔 GPU。
我通过更新 Nvidia 驱动程序解决了这个问题。安装最新版本的 DirectX 后,正确报告了两个适配器,并且基于 vendord id(Intel vs Nvidia),我可以选择在我的应用程序中使用哪个 GPU。
或者,您可以转到 Nvidia 控制面板,为您的可执行文件创建配置文件 - 并将其设置为始终使用 Nvidia GPU。当然,如果您将您的可执行文件提供给其他人以在他们的系统上运行带有错误驱动程序的系统,这当然不会解决同样的问题。
另一种选择是将您的可执行文件重命名为流行的游戏可执行文件名称。像 rage.exe 或 bf3.exe。这是因为 Nvidia 控制面板有很多预定义的配置文件,其中包含流行的游戏 exe 名称,并且它们都设置为使用 Nvidia GPU 而不是 Intel GPU。
【讨论】:
我已安装最新版本的 Nvidia 驱动程序。但仍然没有运气。现在我正在尝试更新英特尔® 核芯显卡驱动程序。希望这能解决问题。【参考方案2】:这很复杂并且依赖于硬件。您在使用混合显卡的笔记本电脑吗?如果是这样,通常会设置驱动程序为您提供 OpenGL 上下文的“主”GPU(回退到用于桌面渲染的集成显卡)。如果是台式机,通常两个 GPU 驱动物理上不同的显示器输出。你有没有插入独立显卡的显示器。
【讨论】:
我也是这么想的,但我所做的只是给了我集成的 gpu。以上是关于将渲染设备从 Sandy Bridge GPU 更改为主 GPU的主要内容,如果未能解决你的问题,请参考以下文章
程序(提供的来源)在 Ivy Bridge Xeon 上运行的时间是旧款移动 Sandy Bridge 的两倍
为啥 TZCNT 适用于我的 Sandy Bridge 处理器?
基于 Sandy Bridge 的 Pentium 的正确架构特定选项 (-m) 是啥?