我正在编写一个DirectX游戏,当我在Optimus笔记本电脑上运行它时会使用英特尔GPU,导致可怕的性能.如果我使用上下文菜单强制NVIDIA GPU或将我的可执行文件重命名为bf3.exe或其他一些着名的游戏可执行文件名称,性能就像预期的那样.
显然,当我必须重新分配我的游戏时,这两种方法都不是可接受的解决方案,那么有没有办法以编程方式强制笔记本电脑使用NVIDIA GPU?
我已经尝试使用DirectX来枚举适配器(IDirect3D9 :: GetAdapterCount,IDirect3D9 :: GetAdapterIdentifier)并且它不起作用:仅报告1个GPU(正在使用的GPU).
对于Intel + NVIDIA双GPU"Optimus"设置,应用程序可以NvOptimusEnablement按照OptimusRenderingPolicies.pdf中的说明导出.此选项允许应用程序确保使用高速离散GPU而无需更新配置文件或用户交互,这通常是某些类别的应用程序所需要的.
对于使用AMD GPU的系统是否有相同的技巧(仅限Windows),如果是这样,它是什么?我无法通过谷歌搜索找到任何具体信息; 只有很多人在各种论坛上都没有回答相同的问题,或者有关NVIDIA技巧的文章中有"可能AMD有类似的东西,我不知道"的评论.
我有一个用C++编写的OpenGL库,它是使用C++/CLI适配器从C#应用程序中使用的.我的问题是如果应用程序用于具有Nvidia Optimus技术的笔记本电脑上,应用程序将不会使用硬件加速并失败.
我试图使用Nvidias文档中的信息http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf 关于将libs链接到我的C++ - dll并从我的OpenGL库中导出NvOptimusEnablement但那失败了.我想我必须对.exe做一些事情而不是与.exe链接的.dll
对我们来说,使用配置文件不是一个好选择,因为我们需要确保使用nvidia硬件.
C#应用程序是否有某种方式可以强制Optimus使用Nvidia芯片组而不是集成的Intel芯片组?
我创建了一个安装程序,其中包含一个可执行文件(“.exe”文件),我想使用 NVIDIA 图形处理器(这不是默认选项)运行它。在我的笔记本电脑上,我可以通过右键单击可执行文件并选择“使用图形处理器运行”然后选择“高性能 NVIDIA 处理器”来实现它。我正在使用“高级安装程序”创建此安装程序,并且可执行文件是从“Qt Creator”C++ 应用程序获得的。目标是创建一个安装程序,默认情况下,该安装程序将始终使用“高性能 NVIDIA 处理器”运行可执行文件。
运行 flutter Windows 应用程序时,它默认为 GPU-0。
就我而言,GPU-0 是默认主板 Intel UHD Graphics 630 处理器。我还有一个 NVIDIA Quadro T1000 作为 GPU-1。
如何指示 Flutter 在 GPU-1 上运行?