Skip to content

GPU TDR in Windows 11: TdrLevel, timeouts and retry limit

On this page

Timeout Detection and Recovery (TDR) detects GPU hangs. If the GPU does not respond within the allotted time, Windows attempts to recover the graphics subsystem. Increasing the timeout or disabling recovery changes the reaction to a hang, but does not make the GPU faster.

We checked whether the graphics subsystem reads the listed TDR parameters, how their values are normalized, and what increasing the timeout or disabling recovery changes.

Windows 11 25H2 build 26200.9168, graphics subsystem dxgkrnl.exe with the WDDM driver model. Physical GPUs and specific drivers were not included in the sample.

Static mapping of the parameters to the dxgkrnl.exe code, verification of normalization ranges, and cross-checking against public Microsoft documentation.

Registry path Value Type Default Role
HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers TdrLevel REG_DWORD 3 TDR recovery level
same path TdrDelay REG_DWORD 2 seconds main GPU timeout
same path TdrDdiDelay REG_DWORD 5 seconds DDI recovery delay
same path TdrDodPresentDelay REG_DWORD 2 seconds delay for display-only present
same path TdrDodVSyncDelay REG_DWORD 2 seconds delay for display-only VSync
same path TdrLimitCount REG_DWORD 5 number of allowed retries
same path TdrLimitTime REG_DWORD 60 seconds TDR counting window

The allowed values are 0..3: 0 disables hang detection, 1 causes a bug check of Windows when the timeout is exceeded, 2 denotes recovery not implemented in VGA, 3 enables standard recovery. A value outside the range is normalized to 3. The parameter is read by dxgkrnl.exe during graphics subsystem initialization.

Leave the default value: disabling recovery increases the risk of a desktop hang, after which the system will have to be restarted. A temporary change is justified only when diagnosing a specific case where the driver exceeds the timeout.

TdrDelay is the main GPU timeout parameter: the number of seconds for which the GPU may postpone a preemption request from the GPU scheduler; according to Microsoft documentation, this is the actual timeout threshold. The documented default value is 2 seconds. TdrDebugMode sets the TDR debug behavior: by default, recovery is used without stopping in the debugger; other modes mean stopping in the kernel debugger before recovery, ignoring timeouts, or unconditional recovery. Microsoft documents both keys for driver testing and debugging and explicitly states that end users should not change them.

TdrDdiDelay sets the delay for the DDI. All three DDI/DOD delay parameters are measured in seconds and have an effective range of 1..900: 0 becomes 1, and a value above 900 is clamped to 900.

TdrDodPresentDelay and TdrDodVSyncDelay relate to the kernel-mode display-only driver (KMDOD) and are documented by Microsoft for debugging only. On a regular WDDM driver of a discrete GPU, they are not a universal timeout setting.

TdrLimitCount has an effective range of 1..32 and a default value of 5. It works together with TdrLimitTime, which by default is 60 seconds. Windows counts recoveries over this period; once the limit is exhausted, the reaction to subsequent hangs becomes stricter.

When the timeout is increased, the GPU has more time before recovery, and the application stays unresponsive longer. When it is decreased, the problem is detected faster, but recovery may trigger more often during a long normal operation.

  • The paths, types and default values of the parameters in the build studied.
  • The parameters are read during graphics subsystem initialization.
  • Values outside the allowed range are normalized.
  • The documented purpose of the KMDOD parameters is debugging only.
  • In the boot trace of the same build, the graphics subsystem read the entire TDR block at once during initialization — TdrLevel, TdrDelay, TdrDdiDelay, TdrDodPresentDelay, TdrDodVSyncDelay, TdrLimitCount, TdrLimitTime and TdrDebugMode; all entries were absent, meaning the default values apply (BoosterX Research observation, the reading of TdrDelay and TdrDebugMode in this trace is recorded, their value normalization was not separately verified).
  • The effect of the change on specific GPUs, drivers and games.
  • The benefit of increasing the timeout or disabling recovery outside of diagnostics.
  • Behavior on other Windows builds.

Leave the default values. A temporary change to the timeout or retry limit is justified only when diagnosing a specific driver hang and with a ready way to restore the configuration.

Return the default values or delete the optional entries. The change takes effect on the next graphics subsystem initialization.

The reading of the parameters is confirmed on Windows 11 25H2 build 26200.9168. Their effect depends on the WDDM driver, the GPU model, the display-only mode and the cause of the hang.

To return to the default configuration, delete these optional values. When the entries are absent, the graphics subsystem uses the default values. On the build studied, writing them explicitly gives the same result. Deleting them allows future Windows versions to choose their own values if those change.

The research and the tools used belong to the BoosterX developer, so the developer has a direct interest in the results. The methodology and the scope of applicability are described above, and the conclusions can be verified against open data and the listed public sources.

Public sources checked: 2026-09-19.

  • 2026-09-20: added a conflict-of-interest disclaimer.
  • 2026-09-19: added TdrDelay and TdrDebugMode with default values, the observation of reading the full TDR block in the boot trace; the source of the TDR keys was rechecked.
  • 2026-09-02: first publication; the reading and normalization of the parameters were confirmed, and the boundaries of the effect on GPU recovery were added.