AMD's GPU drivers on Windows have some bad behavior when the card is not active or the primary display on boot. Specifically:
- Certain EXE names are hooked in the kernel driver, and they won't even begin running for 10-15+ seconds after you open them
- ULPS (Ultra Low Power State) is buggy when Windows is running with the driver loaded, but no displays are enabled on the GPU
Regarding 1:
- Applications named
Steam.exe
,Origin.exe
, oruPlay.exe
among others get hooked by the kernel driver, presumably for some sort of game integration that I don't quite understand - I get the feeling this is potentially very outdated cruft, given that
uPlay.exe
is hooked (which no longer exists), whileUbisoftConnect.exe
is not - When your AMD card doesn't own the Windows primary display, this hooking delays launch of EXEs with these names for whatever reason
- I have not found a complete list of these EXEs in the kernel driver binary; I'm thinking they may be hashed? There's another list in the binary in plaintext, but that doesn't correspond to this behavior
- The name of the EXE is what matters here; I can copy
notepad++.exe
and name itSteam.exe
, and its launch will be delayed too - The fix: locate your AMD driver's registry folder (the one with a bunch of
KMD_
andPP_
keys among others, should be a folder named0000
or similarly numbered); Add a DWORD namedKMD_GameManagerSupport
, and set it to 0; then reboot
Regarding 2:
- On my Vega 56 at least, ULPS bugs out at least when Windows is running and the card has no active displays
- It will remain on for ~20 seconds, then enter BACO for ~3 seconds, and return to and active state
- While BACO technically pretty much turns off everything, this includes the fans; This causes the card to heat up hotter than if ULPS/BACO were disabled, as the fans don't have time to spin up and adequately cool the card
- I've seen ~60-70C in this BACO-toggling state, compared to 42C normally
- The fix: locate the
EnableUlps
DWORD your AMD driver's registry folder, and change it to 0; I don't know if it's necessary, but I also change the EnableUlps_NA string key to "0" as well; then reboot