NVidia driver 'Threaded Optimization'

You can enable a feature called ‘Threaded Optimization’ in the NVidia Control Panel on windows (its under 3D settings -> Manage 3D settings).

I have noticed that setting this to ‘Auto’ or ‘On’ significantly increases the stuttering in my OpenGL-based application.

  1. I have searched around about information on this feature but I could not find anything besides what seems like guesswork. Is there an official guide/statement somewhere about this feature. For example what kind of OpenGL usage should be avoided?

  2. My first thought was to disable this from my application. Is there a way to programmatically disable this feature from my application. I have read about the “__GL_THREADED_OPTIMIZATIONS” environment variable on Linux. Does this also work on Windows?

  3. If the above is not possible, maybe I could detect the feature is enabled and give my users a warning about this. Is there a way to programmatically detect if the ‘Threaded Optimization’ feature is enabled?

  4. How does the ‘Auto’ mode decide to enable/disable? Is there a way that I could trigger a disable decision from my application?

You can create custom “Application Profile” for your game using NVAPI and disable “Threaded Optimization” setting in it.

See my answer to the similar question and corresponding C++ code example:

http://stackoverflow.com/a/37632948/4830242