Your project is compiling shaders, or you just hit Play In Editor, and Unreal dies with a dialog reading “Unreal Engine is exiting due to D3D device being lost”, usually with a hex code like DXGI_ERROR_DEVICE_HUNG or DXGI_ERROR_DEVICE_REMOVED attached.
Frustrating, but rarely fatal. Here is what it actually means and how to fix it, ordered from most to least likely.

What Does “D3D Device Being Lost” Actually Mean?
Windows has a watchdog called TDR — Timeout Detection and Recovery. If the GPU stops responding to the operating system for longer than about two seconds, Windows assumes it has hung, forcibly resets the driver, and every application holding a Direct3D device loses it. Unreal cannot recover from that, so it exits.
The key insight: this is almost never an Unreal bug. Unreal is the messenger. Something made your GPU stop responding, and the usual suspects are an unstable overclock, a driver problem, insufficient VRAM, heat, or genuinely heavy work that exceeded the timeout.
Fix 1: Update or Clean-Install Your GPU Driver
Start here, because it resolves this more often than anything else. Not just “check for updates” — do a clean install so old shader caches and settings are removed.
Download the current driver from NVIDIA or AMD directly, and choose the clean install option during setup. If the problem started right after a driver update, the reverse also applies: roll back to the previous version. New drivers occasionally ship regressions that break specific engine versions.
Fix 2: Turn Off Any Overclock
This is the second most common cause, and the most commonly denied. A memory or core overclock that is perfectly stable in games can fall over under Unreal’s shader compilation, which hammers the GPU differently.
Set MSI Afterburner or your vendor tool back to stock, including factory overclocks on the card itself. Test again. If the crash disappears, your overclock was never as stable as your benchmarks suggested.
Fix 3: Increase the TDR Delay
If your GPU genuinely needs longer than two seconds for heavy work — common on older cards during shader compilation or Lumen builds — you can raise the watchdog timeout.
This requires editing the Windows registry, so back it up first. In HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlGraphicsDrivers, create a DWORD (32-bit) named TdrDelay and set its decimal value to 60. Restart.
Understand the trade-off: you are not fixing the hang, you are giving the GPU more time before Windows intervenes. If the GPU truly locks up, your machine will now appear frozen for a minute instead of recovering quickly.
Fix 4: Disable Hardware-Accelerated GPU Scheduling
In Windows, go to Settings, System, Display, Graphics, then Change default graphics settings, and turn off Hardware-accelerated GPU scheduling. Reboot.
This feature has a long history of interacting badly with Unreal, and disabling it costs you very little in practice.
Fix 5: Check Temperatures and Power
Run HWMonitor or GPU-Z while you work. If the GPU is hitting the high 80s Celsius or above, thermal instability is a plausible cause — clean the dust, improve airflow, and consider repasting an older card.
Power matters too, and is often missed. An ageing or underspecified PSU can fail under the transient spikes modern GPUs produce, particularly on 30- and 40-series cards. If the crash correlates with heavy load rather than a specific asset, suspect power.
Fix 6: Reduce Shader Compilation Load
If crashes happen specifically while compiling shaders, cap the number of worker threads. In BaseEngine.ini or your project’s DefaultEngine.ini, under [DevOptions.Shaders], set NumUnusedShaderCompilingThreads higher to leave more headroom.
Slower compiles, but a finished compile beats a crashed one.
Fix 7: Force DirectX 11
Launch the editor with the -dx11 argument. If the crash stops, you have narrowed it to a DirectX 12 or driver-specific problem rather than a hardware fault.
This is a diagnostic more than a solution — DX12 is where Lumen and Nanite perform best — but knowing which API breaks tells you where to look.
Fix 8: Lower the Texture Streaming Pool
If you are out of VRAM, the device can be lost. Add to DefaultEngine.ini under [/Script/Engine.RendererSettings]:
r.Streaming.PoolSize=2000
Adjust to suit your card. Watch VRAM usage in Task Manager while working — if you are pinned at 100%, this is your problem.
Still Crashing? Read the Log
Open YourProject/Saved/Logs/ and read the most recent log from the bottom up. The lines immediately before the crash usually name the asset, shader or system involved. A crash that always occurs on the same asset is a content problem, not a hardware one.
Frequently Asked Questions
Is my GPU dying?
Usually not. Driver issues and overclocks account for the overwhelming majority. Genuine hardware failure typically shows up elsewhere too — artifacts in games, crashes in other applications, or failures during a memory test such as OCCT.
Why does it only happen in Unreal?
Because Unreal stresses the GPU in ways games do not, particularly during shader compilation and lighting builds. It is often the first application to expose marginal stability.
Does more RAM help?
System RAM, rarely. VRAM, yes — running out of video memory can trigger device loss, which is why the streaming pool fix works for some people.
Will reinstalling Unreal fix it?
Almost never, and it costs you an hour. Clearing the DerivedDataCache folder in your project is a faster thing to try if you suspect corruption.
The Short Version
Clean-install your GPU driver, remove every overclock, and disable hardware-accelerated GPU scheduling. That sequence resolves most cases. If it persists, raise TdrDelay, then investigate heat, power and VRAM in that order.
More Unreal resources in our Unreal Engine collection and the 3D resources directory.

