Skip to content

Instantly share code, notes, and snippets.

@techpeace
Last active July 21, 2022 10:27
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save techpeace/c9f10d3a4c885c34a81dc2220e9b9555 to your computer and use it in GitHub Desktop.
Save techpeace/c9f10d3a4c885c34a81dc2220e9b9555 to your computer and use it in GitHub Desktop.
Big Sur GPU freeze issues

Big Sur GPU Bug

Howdy! You‘re here because, ever since you upgraded your 2018 MacBook Pro to Big Sur, you’ve been experiencing consistent beachballing and hard freezing issues. You probably figured this out after finding lots of messages like this in the Console during a lock-up:

AMDRadeonX5000GLDriver.bundle/Contents/MacOS/ATIRadeonX5000SCLib.dylib: #2: No such file or directory
May 25 19:54:19 ogma Adobe CEF Helper (GPU)[3327]: getattrlist failed for /System/Library/Frameworks/OpenGL.framework/Resources//GLRendererFloat.bundle/GLRendererFloat: #2: No such file or directory
May 25 19:54:19 ogma VTDecoderXPCService[3328]: getattrlist failed for /Library/GPUBundles/AMDRadeonVADriver2.bundle/Contents/MacOS/AMDRadeonVADriver2: #2: No such file or directory
May 25 19:54:19 ogma VTDecoderXPCService[3328]: getattrlist failed for /System/Library/Extensions/AMDRadeonVADriver2.bundle/Contents/MacOS/AMDRadeonVADriver2: #2: No such file or directory
May 25 19:54:19 ogma VTDecoderXPCService[3328]: getattrlist failed for /Library/GPUBundles/AppleIntelKBLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsVADriver: #2: No such file or directory
May 25 19:54:19 ogma VTDecoderXPCService[3328]: getattrlist failed for /Library/GPUBundles/AppleIntelCFLGraphicsVAME.bundle/Contents/MacOS/AppleIntelCFLGraphicsVAME: #2: No such file or directory
May 25 19:54:20 ogma VTEncoderXPCService[3330]: getattrlist failed for /Library/GPUBundles/AMDRadeonVADriver2.bundle/Contents/MacOS/AMDRadeonVADriver2: #2: No such file or directory
May 25 19:54:20 ogma VTEncoderXPCService[3330]: getattrlist failed for /System/Library/Extensions/AMDRadeonVADriver2.bundle/Contents/MacOS/AMDRadeonVADriver2: #2: No such file or directory

If you check out your System Information, I’d bet you have the following GPU installed in your machine:

Radeon Pro Vega 20:

  Chipset Model:	Radeon Pro Vega 20
  Type:	GPU
  Bus:	PCIe
  PCIe Lane Width:	x8
  VRAM (Total):	4 GB
  Vendor:	AMD (0x1002)
  Device ID:	0x69af
  Revision ID:	0x00c0
  ROM Revision:	113-D2060I-087
  VBIOS Version:	113-D20601MA0T-016
  Option ROM Version:	113-D20601MA0T-016
  EFI Driver Version:	01.01.087
  Automatic Graphics Switching:	Supported
  gMux Version:	5.0.0
  Metal Family:	Supported, Metal GPUFamily macOS 2
  Displays:
Color LCD:
  Display Type:	Built-In Retina LCD
  Resolution:	2880 x 1800 Retina
  Framebuffer Depth:	24-Bit Color (ARGB8888)
  Main Display:	Yes
  Mirror:	Off
  Online:	Yes
  Automatically Adjust Brightness:	Yes
  Connection Type:	Internal

The problem

So, I have some bad news... The drivers for your GPU suffer from a long-standing bug:

Nope, consistently crashes, mostly when Chrome (or any Chromium based application, Skype, Slack, Discord, VS Code, or any number of apps using Electron) tries to use hardware acceleration and calls OpenGL APIs, specifically the APIs that create 'fences', basically "wait for X" commands, that seem to hang (part of) the GPU as they timeout, which shouldn't crash anything yet (it should signal a GPU reset, which triggers a restart), but it seems that the process that is doing diagnostics during the reset/restart (DumpGPURestart) is spawning tailspin to gather info for debugging isn't allowed to do so as sandboxd denies it access to some files which crashes tailspin, which in turn crashes DumpGPURestart, which in turn will crash-loop until either you kill it or until it causes the watchdog/heartbeats from bridgeOS/T2 to stop which causes a Kernel Panic with "watchdog detected" and AMD arch.

Your options

Your options... aren’t great:

Option 1: Format your drive and re-install macOS

I ended up formatting my drive and re-installing Big Sur from scratch. This resolved the issue, for me, but obviously wasn't ideal.

Option 2: Take your machine in for repair

If you take the machine into the Apple Store, they’ll run a battery of hardware tests, which they will inform you have passed. There isn’t a problem with your hardware–this is a software issue. Sadly, due to Apple’s abysmal decision to make hardware explictly non-upgradable, you cannot even PAY to have the GPU upgraded. You can get a like-for-like logic board replacement, after which you'll end up with the same GPU.

Option 3: Downgrade to Catalina

This bug doesn’t seem to affect later releases of Catalina. You’ll need to make a manual backup of all of the files in your home directory. A Time Machine backup made in Big Sur is not compatible with Catalina, and will not work. Then you’ll have to erase your machine and install macOS Catalina. Now, manually move the files from your backup back into place. (And if you’re a developer, rebuild your dev environment from scratch. 🎉)

Option 4: Buy a new machine

Obviously, this isn’t an option for everyone, and feels a lot like rewarding the world’s largest company for 💩 behavior.

Option 5: 🤷

Good luck! Leave a comment below if you have any ideas, suggestions, or updates about this issue and I’ll do my best to keep the post up-to-date.

@pvjosue
Copy link

pvjosue commented Apr 10, 2022

I've been experiencing this for a while now, and laptop only working with an external screen attached.
It's good to know that this wont happen with Calatina, I'll give it a try.
Thanks for the extensive clarification.

@techpeace
Copy link
Author

Sure thing, @pvjosue! As an update, I ended up formatting my machine and re-installing Big Sur from scratch, which resolved the issue. Also not a great option, but it worked! 🤷

I'll update the gist.

@Kentzo
Copy link

Kentzo commented Apr 11, 2022

FWIW seeing the following:

VTDecoderXPCService[17343]: DEPRECATED USE in libdispatch client: Changing the target of a source after it has been activated; set a breakpoint on _dispatch_bug_deprecated to debug
VTDecoderXPCService[17343]: DEPRECATED USE in libdispatch client: Changing target queue hierarchy after xpc connection was activated; set a breakpoint on _dispatch_bug_deprecated to debug
VTDecoderXPCService[17343]: getattrlist failed for /Library/GPUBundles/AMDRadeonVADriver2.bundle/Contents/MacOS/AMDRadeonVADriver2: #2: No such file or directory
VTDecoderXPCService[17343]: getattrlist failed for /System/Library/Extensions/AMDRadeonVADriver2.bundle/Contents/MacOS/AMDRadeonVADriver2: #2: No such file or directory
VTDecoderXPCService[17343]: getattrlist failed for /Library/GPUBundles/AppleIntelSKLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelSKLGraphicsVADriver: #2: No such file or directory
VTDecoderXPCService[17343]: getattrlist failed for /Library/GPUBundles/AppleIntelSKLGraphicsVAME.bundle/Contents/MacOS/AppleIntelSKLGraphicsVAME: #2: No such file or directory
VTDecoderXPCService[17343]: DEPRECATED USE in libdispatch client: Changing the target of a source after it has been activated; set a breakpoint on _dispatch_bug_deprecated to debug
VTDecoderXPCService[17343]: DEPRECATED USE in libdispatch client: Changing target queue hierarchy after xpc connection was activated; set a breakpoint on _dispatch_bug_deprecated to debug

Although in my case I'm using MBP 2016 with AMD Radeon Pro 460. The machine is not freezing, instead these logs appear around the time my external LG UltraFine 5K decides not to turn on and I have to re-plug into a different thunderbolt port.

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