- Home /
Error: d3d12: Profiler is enabled, but stable power state is not. GPU timing errors are expected. On 2020.3.14f1 caused occasional crashes and on 2020.3.15f1 crashed on startup
"d3d12: Profiler is enabled, but stable power state is not. GPU timing errors are expected." in console in unity 2020.3.14f1. It would keep crashing so i tried upgrading to 2020.3.15f1 but now it straight up crashes on startup. This is only on DX12 projects. Tried updating drivers and I have DX12. What is the problem?
Answer by JeffreyStrate · Nov 24, 2021 at 07:18 PM
GPU drivers crash with long computations (TDR crash)
1 - Open the Run window Click on Start then Run (or press the Windows and R key). It will open the Run window.
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 the GraphicsDrivers key 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". The case is important, be sure to follow it (and check that there are no other characters such as a trailing space).
In the right pane, double click on the value TdrDelay. Change the Base setting to Decimal . Set the value to something else than the default 2 (we recommend 60).
This value indicates 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 does not exist , right-click in the right pane and choose New > DWORD (32bit) Value . name it " TdrDdiDelay ". The case if important, be sure to follow it (and check that there are no other characters such as spaces).
In the right pane , double click on the value TdrDdiDelay . Change the Base setting to Decimal . Set the value to something else than the default 5 (we recommend 60 ).
This value indicates in seconds how long the operating system will wait before considering that a software took too much time to leave the GPU drivers.
Hexadecimal is the default value, simply switch to decimal to display the right value. Note that 3C (Hexadecimal) equals to 60 (Decimal).
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 the application still crashes when doing a long computation, try increasing the delay (in seconds) from 60 to 120 for example.
How to revert the TDR to its default values ? There are two ways to revert the TDR to its default values :
Set the TdrDelay to 2s and the TdrDdiDelay to 5s, by following the steps described above.