我想在Windows命令提示符下编写一个命令来复制以下内容:
- 右键单击可执行文件
- 选择"使用图形处理器运行">
- 选择"高性能英伟达处理器">
有没有办法这样做?
根据 NVIDIA 的技术说明,在 Optimus 系统上启用高性能图形渲染,您可以通过导出名为NvOptimusEnablement
的全局变量(其值设置为1
来确保您的应用程序使用高性能图形模式。
从 302 版驱动程序开始,应用程序开发人员可以在运行时指示 Optimus 驱动程序使用高性能图形来渲染任何应用程序,甚至是那些没有现有应用程序配置文件的应用程序。他们可以通过导出名为
NvOptimusEnablement
的全局变量来执行此操作。擎天柱驱动程序查找导出的存在和价值。目前只有DWORD的LSB很重要。值0x00000001
表示应使用高性能图形执行渲染。值为0x00000000
表示应忽略此方法示例用法:
extern "C" { _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; }
(此示例代码使用__declspec(export)
指示编译器自动将符号导出为数据,这假定Microsoft的编译器,尽管 GCC 现在支持将其作为 MSVC 兼容性的扩展。
或者,同一文档说您可以静态链接到其中一个 NVIDIA 驱动程序 DLL 以达到相同的效果:
对于没有现有应用程序配置文件的任何应用程序,有一组库,当静态链接到给定的应用程序可执行文件时,将指示 Optimus 驱动程序使用高性能图形呈现应用程序。从版本 302 开始,当前的库列表是
vcamp110.dll
、vcamp110d.dll
、nvapi.dll
、nvapi64.dll
、opencl.dll
、nvcuda.dll
和cudart*.*
。
请注意,此解决方案将强制依赖NVIDIA 驱动程序,而导出变量则不会。