Nvidia 擎天柱 NvOptimusEnablement

Posted

技术标签:

【中文标题】Nvidia 擎天柱 NvOptimusEnablement【英文标题】:Nvidia optimus NvOptimusEnablement 【发布时间】:2018-10-08 10:44:19 【问题描述】:

我有双 GPU,Intel HD 和 Nvidia GPU。我想强制我的应用程序使用 Nvidia GPU。 所以我创建了头文件

extern "C"

  __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;

然后将其包含在我正在使用 Nvidia 适配器创建设备的 cpp 文件中

D3D10CreateDeviceAndSwapChain(dxgiAdapter, D3D10_DRIVER_TYPE_HARDWARE,
        0, 0, D3D10_SDK_VERSION, &swapChainDesc,
           &pSwapChain, &pDevice);

dxgiAdapterdxgiFactory -> EnumAdapters(1, &dxgiAdapter_);

1

是 Nvidia GPU 索引,0 - intel HD GPU 索引。

但我的程序仍在使用英特尔的 GPU。 有什么问题?

【问题讨论】:

【参考方案1】:

尝试传递nullptr 而不是dxgiAdapterNvOptimusEnablement 应该自己处理。例如,在我的机器上,nvidia GPU 排在第一位,然后是 Intel HD Graphics,所以您可能最终选择了 Intel。并确保在 nvidia 控制面板的某处您已将首选图形处理器设置为自动选择。

【讨论】:

我通过了 nullptr 但同样没有结果。 nullptr 也导致 nvwgf2um.dll 异常。 你为什么还要使用 D3D10?为什么不是 11? 与 D3D11 和 D3D12 的结果相同。无论如何,我有这个 nvwgf2um.dll 异常。 1. KERNELBASE.dll(RaiseException) 2. nvwgf2um.dll 3. KERNEL32.DLL(BaseThreadInitThunk) 4. ntdll.dll(RtlValidSecurityDescriptor) @Alatriste 也许发布整个源代码,也许是不同的东西导致了这个问题 @Alatriste 虽然这不是一个完整的代码,但没关系,没关系。以防万一,您的驱动程序是否正常工作?也许更新它们或重新安装?一些快速的谷歌搜索告诉我它可能是驱动程序。代码对我来说看起来不错

以上是关于Nvidia 擎天柱 NvOptimusEnablement的主要内容,如果未能解决你的问题,请参考以下文章

一周AI新鲜事“擎天柱”霸气登场/全球创新指数中国排名11位/摩尔定律死了,又活了?...

一周AI新鲜事“擎天柱”霸气登场/全球创新指数中国排名11位/摩尔定律死了,又活了?...

黑苹果亲自“评测”,威将MPM04擎天柱变形亮点颇多!

某厂要出50cm放大版黑苹果擎天柱?

什么情况?KO版黑苹果MPM擎天柱要来了?

等得望眼欲穿!黑苹果MPM-04擎天柱终于有消息了!