3

In my past experience I had only one laptop running on Windows 7. It had quite old switchable mechanism which applies system wide: when laptop is on battery it switches to thr integral Intel GPU and makes all applications run on it. When the power cable is plugged, it switches to the Radeon GPU and again all applications run on it (so it doesn't have a possibility to switch GPU on per-application basis). Recently I got another laptop with GeForce discrete GPU (RTX 2000 series), running on Windows 10, 21H1 and feel really confused. It also has integrated Intel GPU and I thought it would be consistent to keep similar logic, allowing laptop to switch between GPUs when on battery or plugged. However there is no such option in Windows power plan (it has setting to make Intel GPU run with low power consumption, but doesn't provide me with an option to switch graphics card).

In GeForce Control Panel it says that now it's Windows OS who decides which GPU an application should run on, so I suppose it just overrides GeForce Control Panel settings. When testing different combination of these settings with an application (in my case Witcher 3 game) automatically it always chose discrete GPU, no matter if laptop is on battery or not. So my understanding is that auto-select settings never opts for integrated GPU if an application is considered resource-demanding. In both Windows Settings and GeForce Control Panel I can "hardcode" some particular GPU for an application but i can't see how I can enforce it to switch between GPUs for an application based on laptop power source (plugged vs battery).

P.S. I know that GeForce Experience app has the Battery Boost feature, but that is not quite what I'm looking for, as the GPU an app is running on is still the same, but I need it to switch dynamically

The Dreams Wind
  • 183
  • 1
  • 17
  • Yes you can, take a look into the power settings. – paladin Jun 07 '21 at 13:51
  • AFAIK, it depends on the BIOS/UEFI firmware and how the OEM has implemented the feature. An unlocked BIOS often has the option under the CPU settings, however there must be an unlocked BIOS image someone has cracked. UEFI firmware is impossible to flash once cracked _(it'll fail step 1 of the firmware update process - checking the digital signature - and won't flash)_, so this option will likely never exist in the UEFI firmware settings since it requires also enabling access to CPU options that can fry the motherboard and/or CPU if improperly changed. – JW0914 Jun 07 '21 at 13:55
  • Some possible directions: (1) Binding specific programs to a specific GPU, (2) In NVIDIA Control Panel > Manage 3D settings, set "Power management mode" to Adaptive, (3) Use [TrayPwrD3](https://github.com/jobeid/TrayPwrD3) to keep the discrete GPU on but idle until needed. – harrymc Jun 07 '21 at 17:39
  • @harrymc so you guys are telling me that what I considered a basic feature just doesn't exist OOTB nowadays? – The Dreams Wind Jun 08 '21 at 09:04
  • I have outlined some possible directions. If one is interesting for you, I can put up answer with details. – harrymc Jun 08 '21 at 09:11
  • @harrymc 1 and 2 look like approaches I have already tried. 3, as far as I understand, is a third-party solution. I was looking for something built-in, either Windows or Nvidia solution but if that don't exist at this level, the correct answer is probably, "What you want to achieve is not possible with native Windows/Nvidia facilities" – The Dreams Wind Jun 09 '21 at 10:09

2 Answers2

1

The solution is to unlock the advanced power settings via the registry. Once you do that, in the GeForce control panel it will no longer say the Windows OS decides which GPU an application should run.

Don't forget to set GeForce GPU to max performance.

The short backstory is: Windows ships with a setting which laptops can use called 'modern standby' or 'connected standby'. Essentially this allows the OS to automatically handle the advanced power management according to the manufacturers specification. So for instance, it will manage background activity while the laptop is 'off', among other things.

One thing to be aware of is that the system may still show the integrated card as the one in use however, if you check resource manager, you should see that the GeForce GPU is handling the bulk work.

Do the following then restart your computer and check the GeForce control panel again:

In 'regedit' go to - "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power“

Double click on “CsEnabled”

Change Value data from “1″ to “0″

Exit and restart.

Source: done this myself on a Surface Book 4

NetServOps
  • 911
  • 4
  • 9
1

Unfortunately, the requested configuration is unsupported.

The only company that allows such setup options would be AMD's Enduro implementation which allows GPU selection based on power supply.

Dennis Mungai
  • 3,074
  • 1
  • 22
  • 33