GPU驱动程序与长崩溃(TDR崩溃)
在Windows上,如果Substance 3D Painter检测到当前TDR值低于特定限制(10秒),则将显示此窗口。
为什么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秒)。
如何编辑TDR值
请按照以下步骤更改TDR值。
请注意,必须创建/编辑两个不同的密钥。
1 — 打开“运行”窗口
单击开始,然后单击运行(或按 Windows 和 R 键)。 它将打开 运行 窗口。
2 — 启动注册表编辑器
在文本字段中键入regedit,然后按确定。
在Windows运行对话框中
3 — 导航到GraphicsDrivers注册表项
将会打开注册表窗口。
在左侧窗格中,转至以下位置,在树状结构中导航到 GraphicsDrivers 项:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
在执行后续步骤之前,请确保 保持 的“GraphicsDrivers”状态,并 不要单击 注册表项下方的项。
4 — 添加或编辑TdrDelay值
在 右侧窗格 中,双击值TdrDelay。 将 基数 设置更改为小数 。 将该值设置为除默认 2 以外的其他值(我们建议60)。
此值以秒为单位表示在考虑GPU在计算期间无响应之前,操作系统将等待的时间。
Windows注册表编辑器中的
5 — 添加或编辑TdrDdiDelay值
在 右侧窗格 中,双击值TdrDdiDelay 。 将 基数 设置更改为小数 。 将该值设置为除默认 5 以外的其他值(我们建议60 )。
此值以秒为单位表示操作系统在考虑软件离开GPU驱动程序花费太多时间之前将等待的时间。
十六进制是默认值,只需切换到 十进制 即可显示正确的值。 请注意,3C(十六进制)等于60(十进制)。
6 — 完成并重新启动
右侧窗格现在应该如下所示:
关闭注册表编辑器。 使用启动,然后 重新启动 来 重新启动 计算机。
仅在计算机启动时查看TdrValue,因此需要强制刷新并重新引导。
如果应用程序在执行长时间计算时仍然崩溃,请尝试将延迟(以秒为单位)从60增加到120(例如)。
将TDR值恢复为默认值
有两种方法可将TDR恢复为默认值:
- 按照上述步骤,将 TdrDelay 设置为2s,将 TdrDdiDelay 设置为5s。
- 或者,从注册表项中删除 TdrDelay和 TdrDdiDelay 项。