How to get WDDM TDR delay programmatically?

Is it possible to get WDDM TDR delay programmatically? Also, is WDDM TDR delay specific to windows? Is there anything like this for Linux that raises an error when the kernel runs for a longer time?

The WDDM TDR delay is contained in the windows registry. Therefore I am sure there is a programmatic way to access it, and in fact various NVIDIA tools do access it programmatically. I can’t spell out a specific recipe for you, but conceptually it should not be different than reading any other data item out of the windows registry.

Yes, there is a comparable system on linux. You can query whether it is in effect using the deviceQuery sample code, and this doc spells out some additional info.

2 Likes

Thank you @Robert_Crovella , I checked my system and i don’t see TDR delay registry as mentioned in the link you provided. As you can see below, i can only see TdrDebugMode. I can’t find TdrDdiDelay. Does this mean that WDDM TDR is disabled for me?

EDIT: I have GTX1660TI in my system.

Using the windows registry editor to inspect the registry is fine if you know everything there is to know about the syntax of the relevant keys.

I don’t happen to have all that knowledge, so I prefer to use tools.

1 Like

My understanding of how the Windows registry works is that the absence of a specific key in the registry means the system default for the feature controlled by that key applies (which is 5 seconds in this case, I believe). In order to modify a key-controlled feature, it is not uncommon for users to have to explicitly add keys to the registry first before modifying their values to control that feature. I assume this approach is taken to hide information that Microsoft does not necessarily want to expose to regular users.

1 Like

I think the default is 2 seconds.I can see it is 2 seconds in the Nsight monitor. Its mentioned in this link as well. Also, Thanks for your reply. Really appreciate it!

But, One doubt i had is… how does Nsight monitor get this information? Probably it also checks for the registry key and if its absent, it assumes the default value and shows it? But, we can also update the value in Nsight monitor. I Updated the value but, still couldn’t find the registry key. is it possible to update registry value during runtime without making it permanent?

I stand corrected. Now that I think about it, 2 seconds seems like what I have observed before. I don’t know how Nsight updates this value. Maybe there is a method that does not go through the registry? I am afraid I don’t know the answer: The last time I familiarized myself with the details of low-level Windows programming the latest Windows version was Windows 95!

1 Like

Thank you so much for your reply. I used Windows 95 a lot. But, I was so young and focused only on Dangerous Dave :D.

If I remember correctly, I was working on the AMD K6 processor at the time :-)

1 Like