Matrice de diagnostic : Erreurs D3D Device Lost sous Unreal Engine et solutions
Sur les jeux récents développés avec l'Unreal Engine 4 ou 5, les utilisateurs rencontrent souvent des retours brutaux sur le bureau : LowLevelFatalError ... Unreal Engine is exiting due to D3D device being lost. (Error: 0x887A0006 - 'HUNG'). Ce dysfonctionnement survient lorsque Windows réinitialise le pilote graphique après avoir constaté qu'un calcul de shader dépassait le délai d'attente autorisé.
| Code d'erreur | Cause principale | Sous-système concerné | Efficacité de TdrDelay | Action corrective recommandée |
|---|---|---|---|---|
DXGI_ERROR_DEVICE_HUNG (0x887A0006) | Calcul de shader lourd dépassant le délai de garde Windows de 2 secondes | File de commandes GPU / TDR | Extrêmement efficace | Porter TdrDelay à 8 ou 10 secondes dans le Registre |
DXGI_ERROR_DEVICE_REMOVED (0x887A0005) | Overclocking d'usine instable ou micro-coupure de tension PCIe | Alimentation matérielle | Partielle | Réduire la fréquence GPU de 50 MHz ; limite de puissance à 95% |
DXGI_ERROR_OUT_OF_MEMORY (0x887A000E) | VRAM physique saturée avec Lumen ou Ray Tracing | Gestionnaire mémoire DX12 | Inopérant | Baisser la résolution des textures ; activer DLSS/FSR Qualité |
| Crash lors de la compilation des shaders | Dégradation Vmin Shift sur CPU Intel 13e/14e génération | Microcode CPU / BIOS | Inopérant | Mettre à jour le BIOS vers le dernier microcode (0x129+) |
Le mécanisme TDR (Timeout Detection and Recovery) de Windows
Windows intègre un module de surveillance du processeur graphique :
- Lorsqu'un jeu exécute des calculs de géométrie Nanite ou d'éclairage Lumen, le GPU tourne à 100% de sa charge.
- Si le processeur graphique ne répond pas dans les 2 secondes, Windows considère que le matériel est figé.
- Le système d'exploitation force la réinitialisation du pilote d'affichage.
- Le contexte DirectX 12 étant détruit pendant ce processus, le moteur Unreal Engine constate la perte du périphérique et quitte immédiatement.
Protocole de résolution pas à pas
Étape 1 : Augmenter le délai TDR dans le Registre Windows
- Appuyez sur
Win + R, tapezregeditet validez. - Accédez à l'arborescence suivante :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers - Dans la zone droite, clic droit -> Nouveau -> Valeur DWORD (32 bits).
- Nommez-la :
TdrDelay. - Double-cliquez, cochez Décimale et inscrivez la valeur 8 (fait passer le délai de 2 à 8 secondes).
- Créez une seconde valeur DWORD nommée
TdrDdiDelayet réglez-la sur 8 en décimal. - Redémarrez votre PC.
Étape 2 : Forcer DirectX 11 via les options de lancement
- Dans Steam, clic droit sur le jeu -> Propriétés -> Général -> Options de lancement.
- Saisissez :
-dx11ou-d3d11.