Skip to content

Instantly share code, notes, and snippets.

@xperia64
Created April 22, 2023 20:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xperia64/d4c804d82a256278098fbf04f33cbf72 to your computer and use it in GitHub Desktop.
Save xperia64/d4c804d82a256278098fbf04f33cbf72 to your computer and use it in GitHub Desktop.
AMD GPU Windows driver errata

AMD's GPU drivers on Windows have some bad behavior when the card is not active or the primary display on boot. Specifically:

  1. Certain EXE names are hooked in the kernel driver, and they won't even begin running for 10-15+ seconds after you open them
  2. 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, or uPlay.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), while UbisoftConnect.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 it Steam.exe, and its launch will be delayed too
  • The fix: locate your AMD driver's registry folder (the one with a bunch of KMD_ and PP_ keys among others, should be a folder named 0000 or similarly numbered); Add a DWORD named KMD_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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment