GPU驱动程序与长崩溃(TDR崩溃)

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

在Windows上,如果Substance 3D Painter检测到当前TDR值低于特定限制(10秒),则将显示此窗口。

为什么GPU驱动程序崩溃?

如何编辑TDR值

将TDR值恢复为默认值

为什么GPU驱动程序崩溃?

为防止任何渲染或GPU计算​锁定系统,只要渲染时间超过几秒钟,Windows操作系统​就会终止GPU驱动程序。 当驱动程序被终止时,使用该驱动程序的应用程序将自动崩溃。 无法知道渲染任务或计算可能花费多长时间(具体取决于GPU、驱动程序、操作系统、网格大小、纹理大小等),因此不可能限制计算机应处理多少并从应用程序级别避免崩溃。

在Windows上,有一个​注册表 项​指定操作系统在终止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值。

请注意,必须创建/编辑两个不同的密钥。

WARNING
请注意,编辑注册表可能会产生严重的意外后果,阻止系统启动;如果不确定如何修改操作系统,则可能需要重新安装整个操作系统。 但是,本页提到的注册表项不应产生此类问题。
Adobe不对修改系统注册表对您的系统造成的任何损坏负责。

1 — 打开“运行”窗口

单击​开始,然后单击​运行(或按​ Windows ​和​ R ​键)。 它将打开​ 运行 ​窗口。

Windows运行对话框 {modal="regular"}

2 — 启动注册表编辑器

在文本字段中键入​regedit,然后按​确定。

在Windows运行对话框中 'regedit' {modal="regular"}

3 — 导航到GraphicsDrivers注册表项

将会打开注册表窗口。
在左侧窗格中,转至以下位置,在树状结构中导航到​ GraphicsDrivers ​项:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers

在执行后续步骤之前,请确保​ 保持 ​的“GraphicsDrivers”状态,并​ 不要单击 ​注册表项​下方的项。

Windows注册表树中的“GraphicsDriver”
Windows注册表树中的 “GraphicsDrivers” {modal="regular"}

4 — 添加或编辑TdrDelay值

NOTE
如果 TdrDelay 值尚不存在,请右键单击右侧窗格,然后选择新建> DWORD (32位)值 。 将其命名为“TdrDelay”。 大小写很重要,请确保紧跟在后面(并检查是否没有其他字符,如尾随空格)。

在​ 右侧窗格 ​中,双击值​TdrDelay。 将​ 基数 ​设置更改为​小数 。 将该值设置为除默认​ 2 ​以外的其他值(我们建议​60)。

此值以秒为单位表示在考虑GPU在计算期间无响应之前,操作系统将等待的时间。

Windows注册表编辑器中的 “TdrDelay”DWORD值 {modal="regular"}

5 — 添加或编辑TdrDdiDelay值

NOTE
如果 TdrDdiDelay 值不存在 ,请右键单击右侧窗格,然后选择新建> DWORD (32位)值 。 将其命名为“ TdrDdiDelay”。 如果大小写重要,请确保按照大小写输入(并检查没有其他字符,如空格)。

在​ 右侧窗格 ​中,双击值​TdrDdiDelay 。 将​ 基数 ​设置更改为​小数 。 将该值设置为除默认​ 5 ​以外的其他值(我们建议​60 )。

此值以秒为单位表示操作系统在考虑软件离开GPU驱动程序花费太多时间之前将等待的时间。

十六进制​是默认值,只需切换到​ 十进制 ​即可显示正确的值。 请注意,3C(十六进制)等于​60(十进制)。

6 — 完成并重新启动

右侧窗格现在应该如下所示:

Windows注册表编辑器中的TDR项 — 最终 {modal="regular"}

关闭​注册表编辑器。 使用​启动,然后​ 重新启动 ​来​ 重新启动 ​计算机。

仅在计算机启动时查看TdrValue,因此需要强制刷新并重新引导。

如果应用程序在执行长时间计算时仍然崩溃,请尝试将延迟(以秒为单位)从60增加到120(例如)。

将TDR值恢复为默认值

有两种方法可将TDR恢复为默认值:

  • 按照上述步骤,将​ TdrDelay ​设置为​2s,将​ TdrDdiDelay ​设置为​5s。
  • 或者,从注册表项中​删除 TdrDelay​和​ TdrDdiDelay ​项。
recommendation-more-help
substance-3d-painter-help-guide