Skip to content

The GPU crash that wasn't ours

Topicscrash, diagnosis, hardware, correction

Spent the morning on a DX12 device-removed crash, the kind where the game loses its connection to the graphics card, that had nothing to do with the mod. Writing it down because the diagnosis is reusable, and the instinct it corrects is a bad one.

Two pieces of evidence cleared the code. The first was timing. Redscript finished compiling at 12:37:14 and the crash landed at 12:37:31, seventeen seconds later, at the main menu, with no save loaded. Not one of our systems had run yet. The second was reach. Redscript runs in a scripting virtual machine that sits well above the graphics layer. A script can crash the game by feeding the engine something invalid, but it cannot hand the graphics driver the kind of fault that produces a device-removed. The failure was below anything we can touch.

Then I went a step past the evidence and named a culprit. The machine is a hybrid setup, integrated AMD graphics alongside a dedicated NVIDIA card, and the two drivers had drifted three years apart. The game must be starting on the wrong graphics adapter, I decided, and the mismatch did the rest. The fix was a per-application GPU preference pinning the game to the dedicated card. No code changed. No crash since.

Correction, 31 August. Every sentence in that last paragraph is wrong except the one about no code changing. All thirty-eight crash reports name the dedicated NVIDIA card as the render device, including five from before the diagnosis was written, so the game had never once run on the integrated adapter. The registry key pinned it to the card it was already using: a no-op, a change that changed nothing. And there had been crashes since. Plenty of them, on the days nobody was looking.

The habit worth keeping is checking whether the mod was even loaded when things broke. One timestamp in a log answered a question that would otherwise have eaten a day of bisecting, switching scripts off half at a time to corner the guilty one, when none of them were even running. The habit worth losing is the one in the paragraph before the correction: reaching for a cause because it's the only unusual thing in sight, then reading a quiet week as proof.