長い計算でのGPUドライバーのクラッシュ(TDRクラッシュ)

Substance 3D PainterのTDR警告 {modal="regular"}

Windowsでは、現在のTDR値が一定の制限(10秒)を下回っていることがSubstance 3D Painterによって検出された場合に、このウィンドウが表示されます。

GPUドライバーがクラッシュする理由

TDR値の編集方法

TDR値をデフォルトに戻す

GPUドライバーがクラッシュする理由

レンダリングやGPU 計算によって​ システムがロック ​されるのを防ぐために、Windowsオペレーティングシステム​ は、レンダリングに数秒かかるたびにGPUドライバーを終了 ​します。 ドライバが終了すると、ドライバを使用しているアプリケーションが自動的にクラッシュします。 レンダリング作業や計算の所要時間は把握できないため(GPU、ドライバー、OS、メッシュサイズ、テクスチャサイズなどに依存します)、コンピューターの処理能力を制限して、アプリケーションレベルからのクラッシュを回避することはできません。

Windowsには、レジストリ キー​があり、OSがGPUドライバーを強制終了するまでの待機時間を指定します。 アプリケーションはこの設定を直接変更する権限がありません。この手順は手動で実行する必要があります(下記参照)。

詳細については、公式ドキュメントを参照してください: https://docs.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys。

変更が必要なキーのリスト

TDRを調整するには、TDR遅延を増やします。TdrDelay​と​ TdrDdiDelay ​の両方をより高い値(60秒など)に変更します。

WindowsレジストリエディターのTDRキー {modal="regular"}

NOTE
これらのキーは、Windowsの更新プログラムまたはGPUドライバーの更新プログラムによってデフォルト値にリセットできます。

TDR値の編集方法

TDR値を変更するには、次の手順に従います。

2つの異なるキーを作成または編集する必要があることに注意してください。

WARNING
レジストリを編集すると、予期しない重大な問題が発生する可能性があり、システムが起動しなくなる可能性があります。また、修正方法がわからない場合は、オペレーティングシステム全体を再インストールする必要が生じる可能性があります。 ただし、このページで説明されているレジストリキーによってこのような問題が発生することはありません。
Adobeは、システムレジストリを修正することによってシステムに損害が生じた場合でも、一切責任を負いません。

1 - [ファイル名を指定して実行]ウィンドウを開く

[開始]、[実行]​の順にクリックします(または​ Windows ​と​ R ​キーを押します)。 ファイル名を指定して実行​ウィンドウが開きます。

Windows実行ダイアログ {modal="regular"}

2 – レジストリエディターを起動する

テキストフィールドに「regedit」と入力し、「OK」を押します。

'regedit' in Windows Run dialog {modal="regular"}

3 - GraphicsDriversレジストリキーに移動します

レジストリウィンドウが開きます。
左側のウィンドウで、次の項目に移動して、ツリー内の​ GraphicsDrivers ​キーに移動します。

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers

次の手順に進む前に、GraphicsDriversを​に引き続き使用し、レジストリ​以下のキー​ で ​をクリックしないように設定してください。

Windowsレジストリツリーの「GraphicsDrivers」
'GraphicsDrivers' in Windowsレジストリツリー {modal="regular"}

4 - TdrDelay値を追加または編集する

NOTE
TdrDelayの値 がまだ存在しない 場合は、右側のウィンドウで右クリックして、新規/ DWORD (32ビット)値を選択します。 「TdrDelay」という名前を付けます。 大文字と小文字の使い分けは重要ですが、必ず後に付けてください(また、末尾にスペースなどの文字がないことを確認してください)。

右側のウィンドウ​で、値​ TdrDelay ​をダブルクリックします。 基準​の設定を​ 小数 ​に変更します。 値を既定の​ 2 ​以外に設定してください(60​をお勧めします)。

この値は、計算中にGPUが応答していないと判断されるまでのオペレーティングシステムの待ち時間を秒単位で示します。

'TdrDelay' DWORD値(Windowsレジストリエディター内) {modal="regular"}

5 - TdrDdiDelay値を追加または編集する

NOTE
TdrDdiDelayの値 が存在しない 場合、右側のウィンドウで右クリックし、新規/DWORD (32ビット)値を選択します。 「TdrDdiDelay」という名前を付けます。 ケースが重要な場合は、必ずそれに従ってください(そして、スペースなどの他の文字がないことを確認してください)。

右側のウィンドウ​で、値​ TdrDdiDelay ​をダブルクリックします。 基準​の設定を​ 小数 ​に変更します。 値を既定の​ 5 ​以外に設定してください(60​をお勧めします)。

この値は、ソフトウェアがGPUドライバーを離れるのに時間がかかりすぎたと判断するまでに、オペレーティングシステムが待機する時間を秒単位で示します。

16進数​がデフォルト値です。10進数​に切り替えるだけで正しい値が表示されます。 3C (16進数)は​60 (10進数)に等しいことに注意してください。

6 – 完了して再起動

右側のペインは次のようになります。

WindowsレジストリエディターのTDRキー – Final {modal="regular"}

レジストリエディターを​閉じる。 開始、次に​ 再起動 ​を使用して、コンピューターを​ 再起動 ​します。

TdrValueはコンピューターの起動時にのみ表示されるので、強制的に更新するには再起動が必要です。

長時間計算を行ってもアプリケーションのクラッシュが解決しない場合は、遅延時間を60から120に(秒単位で)増やしてみてください。

TDR値をデフォルトに戻す

TDRをデフォルト値に戻すには、次の2つの方法があります。

  • 上記の手順に従って、TdrDelay​を​ 2s ​に、TdrDdiDelay​を​ 5s ​に設定します。
  • または、TdrDelay​および​ TdrDdiDelay ​キーをレジストリエントリから​ 削除 ​します。
recommendation-more-help
substance-3d-painter-help-guide