Testes e depuração de TDR durante o desenvolvimento de driver
Este artigo descreve estratégias de teste e depuração de TDR (detecção e recuperação de tempo limite) para desenvolvedores de driver de exibição gráfica.
Testes de TDR no WHLK
O Windows Hardware Lab Kit (WHLK) contém testes específicos de TDR que os desenvolvedores de driver podem usar para fins de teste e depuração. Por exemplo, os desenvolvedores podem disparar manualmente um TDR de GPU usando o TDR SimulatePreemption. Consulte Device.Graphics para obter mais informações sobre os vários testes relacionados ao TDR.
Chaves do Registro TDR para teste e depuração
Os desenvolvedores podem usar as seguintes chaves do Registro relacionadas ao TDR para fins de teste ou depuração somente durante o processo de desenvolvimento do driver.
Importante
Recomendamos que os usuários finais não manipulem essas chaves do Registro. Elas também não devem ser manipuladas por aplicativos fora do teste ou depuração direcionados durante o desenvolvimento do driver.
TdrLevel
Especifica o nível inicial de recuperação.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrLevel
ValueType : REG_DWORD
ValueData : TdrLevelXxx (see the following table)
Onde TdrLevelXxx pode ser um dos seguintes valores:
Valor | Significado |
---|---|
TdrLevelOff (0) | Detecção desabilitada |
TdrLevelBugcheck (1) | Verificação de bugs no tempo limite detectado; por exemplo, sem recuperação. |
TdrLevelRecoverVGA (2) | Recuperar para VGA (não implementado). |
TdrLevelRecover (3) | Recuperar no tempo limite (valor padrão). |
TdrDelay
Especifica o número de segundos que a GPU pode atrasar a solicitação de preempção do agendador de GPU. TdrDelay é efetivamente o limite de tempo limite.
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
Especifica o número de segundos que o sistema operacional permite que os threads saiam do driver. Após um tempo especificado, o sistema operacional faz verificações de bugs no computador com o código 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
Especifica o comportamento relacionado à depuração do processo TDR. O valor padrão é TDR_DEBUG_MODE_RECOVER_NO_PROMPT, o que indica que não deve ser interrompido no depurador.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
Valor | Significado |
---|---|
TDR_DEBUG_MODE_OFF (0) | Interrompa o depurador de kernel antes da recuperação para permitir a investigação do tempo limite. |
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) | Ignore qualquer tempo limite. |
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) | Recupere sem interromper o depurador (valor padrão). |
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) | Recupere mesmo que algumas condições de recuperação não sejam atendidas (por exemplo, recupere em tempos limite consecutivos). |
TdrLimitTime
Especifica o tempo padrão dentro do qual um número específico de TDRs (especificado pela chave TdrLimitCount ) é permitido sem travar o computador.
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
Especifica o número padrão de TDRs (0x117) permitidos durante o tempo especificado pela chave TdrLimitTime sem travar o computador.
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
Reservado. Não usar.
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrTestMode
ValueType : REG_DWORD
ValueData : Do not use.
TdrDodPresentDelay
Especifica o número de segundos permitidos para a função DxgkDdiPresentDisplayOnly do driver somente exibição do modo kernel (KMDOD) para concluir um presente assíncrono relatando o progresso para pfnPresentDisplayOnlyProgress (que é passado na estrutura 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
Especifica o número de segundos que o watchdog V-sync aguarda que um sinal V-sync seja relatado antes de disparar um TDR em um 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.