DumpGPURestart error when game freezes/has gfx issues

iMac Pro (2017)
3.2 GHz 8-Core Intel Xeon W
32 GB 2666 MHz DDR4
Radeon Pro Vega 64 16 GB

For a number of years (since Big Sur) I have had instances where the game would freeze, and freeze the computer. I would get cycling between the display, a bright red screen (contained within the WoW display) and heavily artifacted in-game renderings. This usually happens in areas like Ardenweald and Revendreth (where there is fog overlay) especially where there are hidden zone changes. It also happens in The Maw

I notice that in times between the game (and computer) freezes and unfreezes it is possible to switch to windowed mode (if you spam Option-M), and from there you can, if lucky enough hit force quit to quit out of WoW. Once WoW quits, the OS remains stable.

When this happens, I notice that my GPU load average is maxed out (iStats Menu FTW), but I could never find anything in the logs that corresponded to when the behavior happened. Until today.

Today I found a string of errors happening in rapid succession around the time the behavior started. The error is DumpGPURestart Sample output below:

10:11:54.530137-0400 DumpGPURestart com.apple.message.domain: com.apple.crashreporter.writereport.gpuRestart
com.apple.message.signature: Kernel
com.apple.message.signature2: UNBUNDLED ||| kernel ((null))
com.apple.message.signature3: UNKNOWN
com.apple.message.result: noop
com.apple.message.summarize: YES
SenderMachUUID: FEEFA26B-4E47-3611-96E3-EF17FD288723

10:24:56.445676-0400 DumpGPURestart com.apple.message.domain: com.apple.crashreporter.writereport.gpuRestart
com.apple.message.signature: Kernel
com.apple.message.signature2: UNBUNDLED ||| kernel ((null))
com.apple.message.signature3: UNKNOWN
com.apple.message.result: noop
com.apple.message.summarize: YES
SenderMachUUID: FEEFA26B-4E47-3611-96E3-EF17FD288723

10:25:28.032216-0400 DumpGPURestart com.apple.message.domain: com.apple.crashreporter.writereport.gpuRestart
com.apple.message.signature: Kernel
com.apple.message.signature2: UNBUNDLED ||| kernel ((null))
com.apple.message.signature3: UNKNOWN
com.apple.message.result: noop
com.apple.message.summarize: YES
SenderMachUUID: FEEFA26B-4E47-3611-96E3-EF17FD288723

My search-fu failed me on what this means. I did see other people reporting this particular error in relation to WoW freezing, but mostly this seems to be a rare issue with no real, solid, solution.

I reached out to my friend at Apple QA and asked if this were hardware or software, and their response was “logically, software.”

So I wanted to bring it up here in case there is some code in WoW that is triggering whatever is going on programmatically within an Intel Mac that causes this behavior.

It’s definitely software but it can be anything between the driver, and the kernel. I know i’ve been told many times that intel and AMD metal drivers are both pretty buggy since apple has little reason to care about either for a while now. they’ve known they were transitioning away from both a lot longer than devs did and now we know why they’d kinda ignore bug reports regarding either. I’m inclined to believe the drivers are definitely buggy and neglected.

That said, wow is probably also in part to blame somewhere. From my understanding apple does very little function validation in their drivers. This means if you tell driver to do something erratic, it actually does something erratic. They leave function validation up to app developers and if we’re being honest I doubt blizzard does very much of it on mac side, and windows has more function validation than mac side so erratic code could run there without triggering an issue.

I was thinking of opening a similar ticket on the Apple forums, and this is good to know. While I understand Apple is full-thrusters on the “M” chips, Metal is their enticement for game development, and if Metal is not doing this, it needs to.

Metal encourages doing validation through xcode. It has a validation feature but it is a cpu hog and as such is only on when actually doing debug/function validation checking. apple counts on developers to do this.

Thing is developers like blizzard can’t be bothered to do this as much as apple wants…Apple kind of has this mentality that triple A studios should be approaching macOS with a macOS first mentality and that’s complete opposite of reality. The level of validation that needs doing doesn’t often get done.

In fact during Legion alpha when metal was first added, I make a fake project and then attached it to wow beta so I could run metal function validation on alpha while I played, and reported every validation error I found to blizzard for fixing. Over a dozen reports (and all fixed too).

I’ve not had time to do that with later alphas unfortunately, but it is something users CAN do, in fact you can do it and maybe see why your gpu is restarting too. I’m not on mac that has that setup so I can’t post instructions off hand but hopefully that information is available online. you do not need wows source code to run validation on it though. Any old xcode project will do, you just “run” under project menu with it attached to WoW application file then read the output in xcode console. wow performance will be REALLY bad when validation layer is running on it though.

I will look into this. Thank you so much for the suggestion. It will take a while, I am not a developer, but I seem to be pretty good at finding edge case bugs…

@Omegal Any chance you could give a little bit more information about how to do this? I’ve attempted to run Xcode and attach the debugger to the WoW process or launch the Wow retail executable, but I haven’t been able to get it to attach. Is that what you meant?

Xcode…Debug…Attach to Process / or “Debug Executable…”

Maybe it’s only possible on alpha/beta builds?

I haven’t turned the mac on that has that setup in months. I use the macbook pro full time now and can’t really pull that info up. I know it doesn’t require any special betas or alphas… It basically just rerquired a dummy xcocde project that doesn’t actually have anything in it. just enough to use “run” option in build menu, with the run script being setup to launch/hook the wow application. which causes metal validation to be activated for it so you can see debug output on xcode console (and wow will run like a slide show more or less due to high cpu usage of validation)

I had this exact issue on iMac Pro and then experienced it again on my M1 Studio. The common thread (after banging my head against troubleshooting) was a WoW install / WTF folder that I had moved over from the old Mac. I fixed the issue by completely scrubbing the install, including all add-ons and WTF / cache folders and the Battle.net launcher and then re-installing from scratch. The issue hasn’t re-occurred in months since I did the fresh install.

I’m still salty that Blizzard’s boiler plate “Delete your settings and WTF folder” actually helped here. :slight_smile:

just an FYI an addon wouldn’t be able to trigger a gpu hang, it’s more likely a reset of graphics setting did it (probably turned vsync back on, number one cause of this issue)

VSYNC was enabled all the way through testing. Not sure if something else caused it but totally possible.