去年我写过两篇博文《在程序中掌控NVIDIA Optimus》和《在程序中掌控NVIDIA Optimus后续》,讲解了如何利用NV提供的导出NvOptimusEnablement的方法,在程序里切换到独立显卡。然后,当我升级到Win 8.1后,发现Optimus有了一些变化。
右键菜单中没有了选择用哪个显卡启动的选项。
不管NvOptimusEnablement设置成什么值,只要导出了NvOptimusEnablement,D3D程序都会用独立显卡来执行。
程序中获取显卡名字的话,能正确地返回NV独立显卡的名字,而不是一味返回Intel集成显卡的名字。
原先我以为是显卡驱动没装好,装了最新的Intel驱动和NV驱动之后,情况照旧。会不会是Win8.1的新功能?查了WDDM 1.3的新特性后,发现还确实是这样的 ...
昨晚在升级了Intel和NV的显卡驱动之后,突然发现原先在程序中启用Optimus的NvOptimusEnablement失效了。及时回滚到老的驱动,仍无法解决问题。试了多种方法之后,最终发现在NV Control Panel的Manage 3D Settings里面点一下Restore,即便在UI上看不出什么,但NvOptimusEnablement恢复了作用!之前尝试失败的朋友不妨也用这个方法试试看。
NVIDIA的Optimus技术可以在笔记本上兼顾耗电量和性能,并能做到自动无缝切换。但问题就在于,不想让它自动的时候,该怎么办?在ThinkPad T420s上,NV的独立显卡是NVS 4200M,feature level支持到D3D 11.0;Intel的集成显卡是HD 3000,feature level支持到D3D 10.1。(对feature level还不熟悉的朋友可以看这篇)
在BIOS中控制
支持Optimus的平台上,在BIOS中可以找到选项,可以选择使用NV、Intel或者自动切换。但这个是静态的,每次切换都得重启,肯定不是我们想要的。
在右键菜单中控制
在exe文件的图标上按右键,菜单里有一个“用图形处理器运行”的项,里面可以选择NV卡或者Intel卡。有趣的是,如果你在程序中枚举adapter,总会返回两块 ...