Quatre pannes GameLoop différentes s'appellent toutes « une erreur DirectX »
Failed to initialize DirectX, DXGI_ERROR_DEVICE_HUNG et DXGI_ERROR_DEVICE_REMOVED décrivent trois échecs sans rapport. Lire le message décide du correctif ; deviner coûte une soirée.
DirectX est la couche par laquelle GameLoop dessine : presque tout ce qui tourne mal entre l'émulateur et le GPU ressort donc avec DirectX dans le message. Cela ne rend pas ces pannes apparentées pour autant. Quatre défauts distincts partagent l'étiquette, et le texte du message est la seule chose qui les sépare.
| Message | Ce que cela signifie vraiment |
|---|---|
| Failed to initialize DirectX 11/12 | Le périphérique de rendu n'a jamais été créé — pilote, ou GPU incapable de ce qu'on lui demande |
GetDeviceRemovedReason failed, DXGI_ERROR_DEVICE_HUNG | Le GPU a cessé de répondre en pleine image et Windows a réinitialisé le pilote |
| Your PC does not support DirectX 11 | Un rapport de capacité, vrai ou faux, émis par le pilote |
DXGI_ERROR_DEVICE_REMOVED | Le GPU a totalement disparu — plantage de pilote, fréquences instables ou alimentation |
Les échecs d'initialisation
Celui-ci apparaît avant le jeu, et le pilote graphique en est la réponse habituelle. Prenez le pilote sur le site du fabricant du GPU plutôt que par Windows Update, installez, redémarrez.
Si cela ne change rien, faites redescendre le mode de rendu de GameLoop de DirectX 12 à DirectX 11 dans ses paramètres de moteur. La prise en charge de DX12 sur du matériel antérieur à 2018 est souvent présente sur le papier et instable en pratique, et les circuits graphiques intégrés en sont les victimes les plus fréquentes. OpenGL est le repli suivant, un cran en dessous.
Lancez dxdiag avant de conclure à une panne matérielle. L'onglet Système indique la version de DirectX utilisée. S'il annonce 12 alors que GameLoop soutient que votre PC ne sait pas faire du 11, le matériel va bien et c'est le pilote qui n'expose pas correctement le niveau de fonctionnalité — supprimez-le dans le Gestionnaire de périphériques et installez proprement le build actuel du fabricant.
Device hung et device removed
Ces deux-là méritent d'être séparés de l'initialisation, parce qu'ils surviennent pendant le jeu, et qu'aucun n'est vraiment un bug de GameLoop.
DEVICE_HUNG, c'est le Timeout Detection and Recovery de Windows qui fait son travail : le GPU n'a pas rendu une image à temps, donc le pilote a été réinitialisé sous l'application. La surchauffe, un overclocking instable et une mise à jour de pilote à moitié appliquée sont les trois causes fiables. Remettez tous les décalages de fréquence GPU et mémoire à leurs valeurs d'origine, surveillez les températures en charge, et si le pilote a été installé par-dessus un ancien, retirez-le proprement avec Display Driver Uninstaller — récupéré sur le site de son propre développeur — en mode sans échec avant de réinstaller.
DEVICE_REMOVED est le cousin plus grave : le GPU est devenu totalement indisponible. Mêmes deux premières vérifications, plus l'alimentation. L'Observateur d'événements de Windows, sous Journaux Windows puis Système, consigne le détail au niveau pilote sous les sources nommées nvlddmkm chez NVIDIA et amdkmdap chez AMD. Filtrer là-dessus autour de l'heure du plantage en dit plus que n'importe quelle liste de correctifs génériques.
Quand il n'y a aucun message
GameLoop qui se ferme sans un mot après l'écran de chargement, c'est souvent le même échec DirectX avec la boîte de dialogue supprimée. Le journal Application de l'Observateur d'événements, lu à l'horodatage du plantage, contient généralement le vrai code d'erreur. Avant cela, deux vérifications peu coûteuses : désactivez les optimisations plein écran dans l'onglet Compatibilité du raccourci, et réparez les Visual C++ Redistributables depuis Paramètres Windows, Applications, Applications installées — la compilation des shaders est l'une des premières choses à lâcher quand une bibliothèque d'exécution est endommagée.
Ce qui ne corrige rien
Réinstaller DirectX 12. Il n'y a rien à réinstaller. C'est un composant de Windows, pas un paquet redistribuable.
La modification de registre TdrDelay. Allonger le délai d'expiration du GPU empêche Windows de signaler le blocage. Le GPU s'est quand même bloqué. Cela masque un problème thermique ou de pilote au lieu de le résoudre, et sur une carte réellement instable, cela transforme une réinitialisation récupérable en bureau figé.
Réinstaller GameLoop pour une erreur device removed. L'émulateur est le processus qui se trouvait tourner quand le GPU a quitté le bus. Le réinstaller ne traite rien.
Désinstaller une mise à jour Windows par réflexe. C'est une démarche légitime quand l'erreur a commencé dans les un ou deux jours suivant un KB précis et que le pilote est déjà à jour. Comme première réponse à n'importe quel message DirectX, c'est une action lourde, perturbante, et au taux de réussite faible.