Test et débogage TDR pendant le développement des pilotes
Cet article décrit les stratégies de test et de débogage TDR (détection et récupération des délais d’attente) pour les développeurs de pilotes d’affichage graphique.
Tests TDR dans WHLK
Windows Hardware Lab Kit (WHLK) contient des tests spécifiques à TDR que les développeurs de pilotes peuvent utiliser à des fins de test et de débogage. Par exemple, les développeurs peuvent déclencher manuellement un TDR GPU à l’aide du TDR SimulatePreemption. Pour plus d’informations sur les différents tests liés à TDR, consultez Device.Graphics.
Clés de Registre TDR pour le test et le débogage
Les développeurs peuvent utiliser les clés de Registre liées à TDR suivantes à des fins de test ou de débogage uniquement pendant le processus de développement du pilote.
Important
Nous recommandons aux utilisateurs finaux de ne pas manipuler ces clés de Registre. Elles ne doivent pas non plus être manipulées par des applications en dehors des tests ou du débogage ciblés pendant le développement des pilotes.
TdrLevel
Spécifie le niveau initial de récupération.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrLevel
ValueType : REG_DWORD
ValueData : TdrLevelXxx (see the following table)
Où TdrLevelXxx peut prendre l’une des valeurs suivantes :
Valeur | Signification |
---|---|
TdrLevelOff (0) | Détection désactivée |
TdrLevelBugcheck (1) | Vérification de bogue en cas d'expiration du délai détectée ; par exemple, pas de récupération. |
TdrLevelRecoverVGA (2) | Récupération sur VGA (non implémenté). |
TdrLevelRecover (3) | Récupérer en cas de délai d’expiration (valeur par défaut). |
TdrDelay
Spécifie le nombre de secondes pendant lesquelles le GPU peut retarder la requête de préemption du planificateur GPU. TdrDelay est effectivement le seuil du délai d’expiration.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDelay
ValueType : REG_DWORD
ValueData : Number of seconds to delay. The default value is 2 seconds.
TdrDdiDelay
Spécifie le nombre de secondes pendant lesquelles le système d’exploitation permet aux threads de quitter le pilote. Après un certain temps, le système d’exploitation procède à une vérification d'erreur sur l’ordinateur avec le code VIDEO_TDR_FAILURE (0x116).
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDdiDelay
ValueType : REG_DWORD
ValueData : Number of seconds to leave the driver. The default value is 5 seconds.
TdrDebugMode
Spécifie le comportement lié au débogage du processus TDR. La valeur par défaut est TDR_DEBUG_MODE_RECOVER_NO_PROMPT, ce qui indique de ne pas s’arrêter dans le débogueur.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
Valeur | Signification |
---|---|
TDR_DEBUG_MODE_OFF (0) | Passer au débogueur du noyau avant la récupération pour permettre l’examen du délai d’expiration. |
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) | Ignorer tout délai d’attente. |
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) | Récupérer sans s’arrêter dans le débogueur (valeur par défaut). |
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) | Récupérer même si certaines conditions de récupération ne sont pas remplies (par exemple, récupérer après des délais d’expiration consécutifs). |
TdrLimitTime
Spécifie le délai par défaut pendant lequel un nombre spécifique de TDR (spécifié par la clé TdrLimitCount) est autorisé sans provoquer un plantage de l’ordinateur.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrLimitTime
ValueType : REG_DWORD
ValueData : Number of seconds before crashing. The default value is 60 seconds.
TdrLimitCount
Spécifie le nombre par défaut de TDR (0x117) autorisés pendant le délai spécifié par la clé TdrLimitTime sans provoquer un plantage de l’ordinateur.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrLimitCount
ValueType : REG_DWORD
ValueData : Number of TDRs before crashing. The default value is 5.
TdrTestMode
Réservé. Ne pas utiliser.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrTestMode
ValueType : REG_DWORD
ValueData : Do not use.
TdrDodPresentDelay
Spécifie le nombre de secondes autorisées pour que la fonction DxgkDdiPresentDisplayOnly du pilote d'affichage seul en mode noyau (KMDOD) termine une opération asynchrone en signalant la progression à pfnPresentDisplayOnlyProgress (qui est transmis dans la structure DXGKARG_PRESENT_DISPLAYONLY).
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDodPresentDelay
ValueType : REG_DWORD
ValueData : Number of seconds allowed for **DxgkDdiPresentDisplayOnly** to complete an asynchronous present. The default value is 2 seconds. (Min: 1, Max: 15 * 60 = 15 minutes). This value is for debugging purposes only.
TdrDodVSyncDelay
Spécifie le nombre de secondes pendant lesquelles le pilote de surveillance de la synchronisation V attend qu’un signal de synchronisation V soit signalé avant de déclencher un TDR dans un KMDOD.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDodVSyncDelay
ValueType : REG_DWORD
ValueData : Number of seconds that the V-sync watchdog waits for a V-sync to be reported before a TDR occurs with Kernel Mode Display-Only Drivers. Drivers are expected to report V-sync interrupts at the cadence of the display mode refresh rate. The default value is 2 seconds. (Min: 1s, Max: 15 * 60 = 15 minutes). This value is for debugging purposes only.