次の方法で共有


ドライバー開発中の TDR テストとデバッグ

この記事では、グラフィックス ディスプレイ ドライバー開発者向けの TDR (タイムアウト検出と回復) のテストとデバッグ戦略について説明します。

WHLK の TDR テスト

Windows ハードウェア ラボ キット (WHLK) には、ドライバー開発者がテストとデバッグの目的で使用できる TDR 固有のテストが含まれています。 たとえば、開発者は SimulatePreemption TDR を使用して GPU TDR を手動でトリガーできます。 さまざまな TDR 関連のテストの詳細については、Device.Graphics を参照してください。

テストとデバッグのための TDR レジストリ キー

開発者は、ドライバー開発プロセス中にのみ、テストまたはデバッグの目的で次の TDR 関連のレジストリ キーを使用できます。

重要

エンド ユーザーがこれらのレジストリ キーを操作しないことをお勧めします。 これらは、ドライバーの開発中に対象となるテストやデバッグ以外のアプリケーションで操作しないでください。

TdrLevel

回復の初期レベルを指定します。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrLevel
ValueType : REG_DWORD
ValueData : TdrLevelXxx (see the following table)

ここで、TdrLevelXxx には次のいずれかの値を指定できます。

Value 意味
TdrLevelOff (0) 検出が無効
TdrLevelBugcheck (1) 検出されたタイムアウト時のバグ チェック。たとえば、回復なし。
TdrLevelRecoverVGA (2) VGA に回復します (実装なし)。
TdrLevelRecover (3) タイムアウト時に回復します (既定値)。

TdrDelay

GPU スケジューラからのプリエンプト要求を GPU が遅延できる秒数を指定します。 TdrDelay は実質的にタイムアウトしきい値です。

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

OS でスレッドがドライバーから離れることを許可する秒数を指定します。 指定した時間が経過すると、OS はコード 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

TDR プロセスのデバッグ関連の動作を指定します。 既定値は TDR_DEBUG_MODE_RECOVER_NO_PROMPT であり、デバッガーに中断しないことを示します。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
Value 意味
TDR_DEBUG_MODE_OFF (0) タイムアウトの調査を可能にするために、回復の前にカーネル デバッガーに中断します。
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) タイムアウトを無視します。
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) デバッガーにブレークせずに回復します (既定値)。
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) 一部の復旧条件が満たされていない場合でも復旧します (たとえば、連続したタイムアウト時の回復)。

TdrLimitTime

コンピューターをクラッシュさせることなく、特定の数の TDR (TdrLimitCount キーで指定) を許可する既定の時刻を指定します。

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

コンピューターをクラッシュさせることなく TdrLimitTime キーで指定された時間内に許可される TDR (0x117) の既定の数を指定します。

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

予約済み。 使用しないでください。

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrTestMode
ValueType : REG_DWORD
ValueData : Do not use.

TdrDodPresentDelay

カーネル モード表示専用ドライバー (KMDOD) の DxgkDdiPresentDisplayOnly 関数が、進行状況を pfnPresentDisplayOnlyProgress (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

V 同期ウォッチドッグが V 同期信号が報告されるまで待機してから KMDOD で TDR をトリガーする秒数を指定します。

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.