Skip to content

Instantly share code, notes, and snippets.

@statico
Last active Jun 17, 2022
Embed
What would you like to do?
Trick to tell AMD and Nvidia drivers to use the most powerful GPU instead of a lower-performance (such as integrated) GPU
#ifdef _WIN32
// Use discrete GPU by default.
extern "C" {
// http://developer.download.nvidia.com/devzone/devcenter/gamegraphics/files/OptimusRenderingPolicies.pdf
__declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
// http://developer.amd.com/community/blog/2015/10/02/amd-enduro-system-for-developers/
__declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1;
}
#endif
@parkercoates
Copy link

parkercoates commented Mar 22, 2018

Sadly, that AMD link has expired and I haven't found a better reference anywhere, other than this forum post: https://community.amd.com/thread/169965

@Moguri
Copy link

Moguri commented Jul 1, 2019

@sci4me
Copy link

sci4me commented Jun 1, 2020

Dumb question: Are these relevant in Linux (or OSX for that matter)?

@peterix
Copy link

peterix commented Mar 25, 2021

No, this is not relevant for anything other than Windows.

@IGR2014
Copy link

IGR2014 commented Mar 29, 2022

More dumb question: There's nothing similar for Intel (integrated HD Graphics), right?

@tinuroth
Copy link

tinuroth commented Jun 17, 2022

More dumb question: can I do this somehow from a managed C# application? It does Pinvoke for the purpose of calling native algos, but how would I extern "C" { __declspec(dllexport) ... } such properties to be picked up by the drivers? Can any of my native DLLs export this and it will be picked up?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment