Discussion: NVIDIA Display Driver (nvlddmkm.sys) DPC Latency

Status
Not open for further replies.
Anyone having issues that are not related to the NVIDIA driver version, already tried these...
We talked about it (link) a while ago:

HPET is generally a very misunderstood topic with a lot of snakeoil attached to it because the testing methodology is beyond awful everywhere on the internet, and in those sites it's clear that most people playing with the setting have done zero benchmarking on it, so it's mostly placebo effect. Notice how Xbitlabs doesn't post any screenshots for example. Also, if you follow all of Xbitlabs links on the topic you'll eventually reach a video from a popular YouTuber that is now unlisted because it had wrong information in it and people called them out.

The HPET situation also changes depending on which operating system the user is on because Windows uses different timers over time. I'm not saying HPET settings can't help, but Windows doesn't default to the HPET timer like everyone seems to believe, it's mostly used as a backup timer to fix clock drift and resynchronize things, and needed for benchmarking utilities to function. This is why many modern motherboards have hidden the setting in the BIOS because there should be no need to turn it off unless it's bugged. Also, having HPET enabled in the motherboard just means Windows can use HPET when it needs to, it doesn't force it to be active all the time.

Because HPET is not a solution for this thread's issue, and generally isn't a solution for DPC issues because it's not the primary timer, I don't want to discuss it any further in this thread since it for sure doesn't apply to the bug we're dealing with. Feel free to start an HPET thread though if you want to investigate it more because it is something that warrants its own discussion. I should clarify though, that some settings in bcdedit aren't related to HPET, so like dynamic tick is it's own thing and that could be useful, but I never saw any major changes from these settings in my machines. I want to revisit this in the future though because it's possible that the Nvidia bug interfered.
 
Last edited:
If possible try offline(disable Ethernet)
instead of online when playing just to ensure nothing coming across is internet related.

I never even thought about the Ethernet adapter. I did a quick check on the MSI website and guess what... MSI released new LAN drivers YESTERDAY! I've installed the new drivers and no more audio drop-outs in Red Dead Redemption 2 (see attachment). Thank you for pointing me in that direction.

I still have 500+ values that should be addressed , but at least these values are now in more reasonable range and don't cause pops and clicks anymore.

EDIT: I've misnamed the attachments. Should have been "LAN Driver" not Graphics driver
 

Attachments

  • after installing graphics drivers.png
    after installing graphics drivers.png
    36.5 KB
  • after installing graphics drivers2.png
    after installing graphics drivers2.png
    143.2 KB
Hey man, just wondering if you are familiar with the tweaks listed here: https://sites.google.com/view/melodystweaks/basictweaks?
I've personally tried the ones under Tell Nvidia GPU to stop tolerating high DPC/ISR latencies, but to no effect...
Yeah, some of the participants in this thread pulled a bunch of tweaks from that site and few other related ones and threw them all here as solutions, which I wasted a ton of time testing because they're placebo. I really dislike sites like these, because just like you said, "I tried the ones...but to no effect". This is why I'm a broken record and constantly saying that testing methodology on the internet sucks. Because the reality is, so many tweaks are bogus and aren't tested at all. I don't know where people even come up with some of these, they seem made up since they are completely undocumented, and when you change the values nothing happens.

With that being said, if you're desperate or just looking to squeeze every bit of performance possible from a machine, then yeah it can be worth the time to go through these sites and test 100 things in the hopes you can walk away with 1 or 2 usable tweaks. But that should be your expectation, not thinking you'll walk away with a totally awesome tweaked gaming machine. I added melody's page to my personal todo list at the start of 2022, but it's way down at the bottom because I already know most of it will be a waste of time.
 
I never even thought about the Ethernet adapter. I did a quick check on the MSI website and guess what... MSI released new LAN drivers YESTERDAY! I've installed the new drivers and no more audio drop-outs in Red Dead Redemption 2 (see attachment). Thank you for pointing me in that direction.
NIC's are real-time devices competing against your GPU for interrupts, unlike a relatively slow SATA or USB controller. Only a faster SSD drive would keep the SATA controller occupied at peak speed, otherwise the NIC is the biggest competitor for system attention.
 
...PS: Personally I don't notice any issues in game even with LatencyMon reporting such high spikes
Your numbers on the first screenshot look good, but everyone's screenshots should really be 5 minutes, and idling at the desktop after a reboot, not while doing anything else, such as browsing the web or playing a game. We need it that way because it's how we establish a baseline and consistancy, so that as we all do different testing and solutions we can know what is and isn't working, and to what degree.

I noticed that you are the first person to say you used my optimized image guide, so I'm curious how it looks when you do a 5 min idle screenshot then we can directly compare our machines.
 
Your numbers on the first screenshot look good, but everyone's screenshots should really be 5 minutes, and idling at the desktop after a reboot, not while doing anything else, such as browsing the web or playing a game. We need it that way because it's how we establish a baseline and consistancy, so that as we all do different testing and solutions we can know what is and isn't working, and to what degree.

I noticed that you are the first person to say you used my optimized image guide, so I'm curious how it looks when you do a 5 min idle screenshot then we can directly compare our machines.
Also faster computers don't notice as much as lower end ones like I have
 
Are you by chance running at a super high resolution like 4k or 8k, or maybe multiple monitors? What happens if you use the edit>export screenshot from LatencyMon?

Try to use PNG when possible, for computer screenshots it's generally the smallest file size and also clearest looking for text. If you still have either the regular Paint, or one of the snip/sketch tools installed either of those work good for this purpose. You can either press print screen on the keyboard and then paste into Paint and save as PNG, or just load up the snip/sketch tools and take a screenshot using that.
I have a 4k tv but no capture software. So I use my phone which takes way too big of pictures lol
 
Hellbovine
Here's my 5min idle LatencyMon stats (pic 2-4 are the reports)
The main thing I've changed from your image is probably just the power plan; I'm using a tweaked version of the high-performance plan that came with the laptop. (turbo.pow) It sets interrupt steering mode to processor 1, which I find to lower and stabilize my interrupt to process latencies, and it also disables a lot of the power saving stuff built into windows.
 

Attachments

  • LatencyMon_5min_idle.png
    LatencyMon_5min_idle.png
    32.3 KB
  • pic 2.txt
    14.5 KB
  • pic 3.png
    pic 3.png
    51.3 KB
  • pic 4.png
    pic 4.png
    40.4 KB
  • Turbo.zip
    2.8 KB
Here is my 5 min idle screenshot with driver version 512.95
With 516.94, the DPC time for nvlddmk.sys is almost double.
While using my audio app, i still get DPC times around 1000, but no audio issues.
Edit: i have to mention that i'm running my audio at 96 Khz with a buffer size of 512.
This is pretty demanding, but still causes no problems, because the DPC value is stable (screenshot 2)
Edit2: attached a screenshot from another run with same load (how different the results!)
 

Attachments

  • 512.95_idle5.jpg
    512.95_idle5.jpg
    182.9 KB
  • 512.95_load5.jpg
    512.95_load5.jpg
    209.4 KB
  • 512.95_load5_2.jpg
    512.95_load5_2.jpg
    190.2 KB
Last edited:
Here is my 5 min idle screenshot with driver version 512.95
With 516.94, the DPC time for nvlddmk.sys is almost double.
While using my audio app, i still get DPC times around 1000, but no audio issues.
Edit: i have to mention that i'm running my audio at 96 Khz with a buffer size of 512.
This is pretty demanding, but still causes no problems, because the DPC value is stable (screenshot 2)
Edit2: attached a screenshot from another run with same load (how different the results!)
To be fair, 512 is not even that demanding. At that buffer size I was having no audible/audio issues even with the lastest Nvidia drivers - however, currently I can do 64 samples without a hiccup (with Nvidia spiking around 600 and other unnamed stuff around 1000) on driver version 512.95 which I think is huge.
 
Interesting. Never try this before, but now i set my buffer size to 128 (which is the lowest value my interface offers), and again, still no issues.
The DPC value of nvlddmkm.sys keeps around the same as before, which is pretty cool!
 
Interesting. Never try this before, but now i set my buffer size to 128 (which is the lowest value my interface offers), and again, still no issues.
The DPC value of nvlddmkm.sys keeps around the same as before, which is pretty cool!
Perfect, now you have much better audio latency too :)
 
Happy New Year everyone, may 2023 be the year of world peace and low DPC spikes. :p

So I've been trying out different tweaks with the Microsoft Interrupt affinity policy configuration tool mentioned in this post by Savitarax, in order to spread the load of system interrupts evenly over different cores of my Ryzen 7 5800x processor.

The 5800x 8 core processor shows up as CPU 0 - 15 in Latencymon. If I am not mistaken each even number 0, 2, 4, 6, etc. is a physical core and each odd number are threads. So the devices should be assigned to physical cores for the best performance (I've heard this in a Youtube video, so I might as well completely be wrong about this).

I've assigned the devices as following:

Nvidia RTX 3060 TI (GPU) | CPU 2
Realtek PCIe GbE Family Controller (ethernet) | CPU 4
Razor DeathAdder V2 (mouse) | CPU 6
Focusrite Hardware Device Driver (audio interface) | CPU 10

Now for the results:

Latencymon results (Main Tab) | Interrupt tweaks disabled (left) vs Interrupt tweaks enabled (right)
Without interrupt tweaks enabled (idle)1.jpg vs With interrupt tweaks enabled (idle)1.jpg

Latencymon results (Drivers tab) | Interrupt tweaks disabled (left) vs Interrupt tweaks enabled (right)
Without interrupt tweaks enabled (idle)2.jpg vs With interrupt tweaks enabled (idle)2.jpg

Latencymon results (CPU tab) | Interrupt tweaks disabled (left) vs Interrupt tweaks enabled (right)
Without interrupt tweaks enabled (idle)3.jpg vs With interrupt tweaks enabled (idle)3.jpg


I don't know if this in an improvement or not. The tcpip.sys driver doesn't seem to like the tweaks. I might experiment some more with these settings.

However the highest execution time of the Nvidia Driver nvlddmkm.sys seems to be lowered a bit. (0,488 without interrupt tweaks and 0,3099 with the tweaks enabled).

EDIT: The highest execution time seems to be very different each run. So I can't draw a conclusion based on this.

I can't get near the values of Savitarax. Maybe this is because he has an Intel processor and things work different on an AMD system?

NOTE: If you want to mess around with the Microsoft Interrupt affinity Tool make sure to create a system restore point. I wasn't able to revert all the settings back to default without system instability.
 
Last edited:
NIC's are real-time devices competing against your GPU for interrupts, unlike a relatively slow SATA or USB controller. Only a faster SSD drive would keep the SATA controller occupied at peak speed, otherwise the NIC is the biggest competitor for system attention.
I think you’re onto something regarding the NIC’s.

On my end, other than the awful pops, crackles etc. I noticed that most games that would bring my PC to load would crash pretty quickly afterwards. I noticed this with Horizon Zero Dawn, and Batman Arkham Origins, both of which crash within 5-10 mins of play.

So after continual fiddling with the MSI and Interrupts, I decided to go into the BIOS and change a few more things.

Heeding garlin‘s remark about the NIC, I disabled onboard lan on my Aorus b550i AX Pro WiFi, as well as WOL, and set the PCIE to Gen 3.

Since doing this, audio has been fine, system feels a lot more robust, and both games mention work fine, tested a couple hours apiece with no crashes.

Thanks for the heads up, and hope this might help someone!

My system:

Aorus B550i AX Pro WiFi
Ryzen 7 5800X
32GB RAM
1TB Samsung 980 Pro M.2 NVMe
Nvidia 3060ti Founders Edition
 
Heeding garlin‘s remark about the NIC, I disabled onboard lan on my Aorus b550i AX Pro WiFi, as well as WOL, and set the PCIE to Gen 3.
Just out of curiosity: what chip / brand is your onboard NIC? And do you have any other PCIe devices attached besides your graphics card?
 
Here is my 5 min idle screenshot with driver version 512.95...
- What Windows and version?
- Is this a modified image, if so what kind of tweaks?
- Did you also do the interrupt affinity tweaks or any other changes that could contribute to the lower spiking on the new driver?

Can you fill out this template (link) please, we don't have any info on your machine.
 
Last edited:
Just out of curiosity: what chip / brand is your onboard NIC? And do you have any other PCIe devices attached besides your graphics card?
Hey there,

it’s a Realtek 2.5GbE LAN. I won’t use it since I’m connected up using WiFi 6. The only other PCIe devices would be the 1TB Samsung 980 Pro M.2 NVMe drive, and I have a smaller Kingston A2000 250GB drive on the rear M.2 slot. It’s a mini-ITX board so the I/O in general is limited.
 
Status
Not open for further replies.
Back
Top