GPU drivers crash with long computations - Substance Painter - Allegorithmic Documentation
Under Microsoft Windows, this window will appear if Substance Painter detects that the current TDR value is below a specific limit (10 seconds).
Why does the GPU driver crash ?
In order to prevent any rendering or GPU computation from locking the system, the Windows Operating System kills the GPU driver whenever a rendering takes more than a few second. When the driver is killed, the application using it crash automatically. Since we can't possibly know how long a rendering or computation will take (it depends on the GPU, the drivers, the OS, the mesh size, the texture size, etc.), we can't put a limit on how much the computer can process and avoid the crash.
On Windows there is a key in the registry specifying how long the OS should wait before killing the driver call. Application are not authorized to modify this setting directly, this procedure has to be done manually (see below).
You can find more details about it here : https://docs.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys
What Keys need to be changed ?
You can change the TDR values in two ways :
Increasing the TDR Delay (this is the safest manipulation) -> Change "TdrDelay" and "TdrDdiDelay" to a high value (like 60 seconds).
Disabling the TDR completely -> Set "TdrLevel" to 0.
How to edit the TDR values of the Registry ?
Follow this procedure to change the TDR value.
Please note that editing the registry can have serious, unexpected consequences that can prevent the system from starting and may require to reinstall the whole operating system if you are unsure of how to modify it.
Allegorithmic takes no responsibility for any damage caused to your system by modifying the system registry.
1 - Open the Run window
Click onStart then Runor press the Windows key and R.
It will open theRunwindow.
2 - Launch the registry editor
Type "regedit" in the text field and press "OK".
3 - Navigate to the GraphicsDrivers registry key
The registry window will open.
In the left pane, navigate in the tree to theGraphicsDriverskey by going into :Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ GraphicsDrivers
Be sure to stay on "GraphicsDrivers" and to not click on the Registry keys below before going through the next steps.
4 - Add or Edit the TdrDelay value
If the TdrDelay value doesn't exist yet, right-click in the right pane and choose New > DWORD (32bit) Value. Name it "TdrDelay".
In theright pane, double click on the valueTdrDelay. Change theBasesetting toDecimal. Set the value to something else than the default2(we recommend60).
This value indicate in seconds how long the operating system will wait before considering that the GPU is unresponsive during a computation.
5 - Add or Edit the TdrDdiDelay value
If the TdrDdiDelay value doesn't exist, right-click in the right pane and choose New > DWORD (32bit) Value. name it "TdrDdiDelay".
In theright pane, double click on the valueTdrDdiDelay. Change theBasesetting toDecimal. Set the value to something else than the default5(we recommend60).
This value indicate in seconds how long the operating system will wait before considering that a software took too much time to leave the GPU drivers.
6 - Finish and Restart
The right pane should now looks like this :
Close the Registry editor. Restart the computer by using Start then Restart.
The TdrValue is only looked at when the computer start, so to force a refresh a reboot is necessary.
If Substance Painter still crash when doing a long computation, try increase the delay (in seconds) from 60 to 120 for example.