I am trying to use the NvOptimusEnablement exported global variable in my application but I have noticed a problem: Unlike the NVIDIA documentation says, even if the variable have the value 0x00000000, the Optimus driver uses the High Performance Graphics GPU. The only way to retrieve the default behaviour is to remove the exported variable from my app.
Is there a way to fix it? Thanks by advance for your help.
PS: problem noticed on Forceware 332.35.
Did that work the way you describe before?
The docs at http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf say:
A value of 0x00000001 indicates that rendering should be performed using High Performance Graphics.
A value of 0x00000000 indicates that this method should be ignored.
Means NvOptimusEnablement itself is ignored and your app could have been assigned to the discrete GPU based on some other mechanism listed in that document.
Does that mean you’re not able to assign the app to the integrated graphics via app profiles or the right-click context menu when NvOptimusEnablement exports zero?
Exactly. If my app exports NvOptimusEnablement = 0x00000000, I still have the High Performance Graphics GPU assigned, even if I force the use of the Intel chipset on the NVIDIA control panel.
I got the feeling that the driver just looks at the existence of the variable to force the use of the NVIDIA GPU, no matter the value of the variable…
Thanks, that’s what I was trying to isolate with the questions.
Would you be able to test if that works differently with a newer driver?
To be able to reproduce this, could you please list your system details:
OS version, OS bitness, installed GPU(s), tested display driver versions (332.35, …), laptop model.
Thanks for your help,
OS is Windows 8.1 Pro 64 bits
GPU is Quadro K1100
The laptop is a Dell Precision M3800
I try with the latest driver available and keep you posted.
With 347.52 drivers and NvOptimusEnablement = 0x00000000, automatic selection still uses the NVIDIA GPU but now, when I force the use of the Intel chipset on the NVIDIA control panel, it uses it.
So one part of the issue is solved but I still have the problem of the driver considering the variable existence but not its value…