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

Status
Not open for further replies.
Yep yep, sure was, formatted every SSD and did a pure clean install of windows 11.
Only the HDD was left as-is because it's used as general storage (pictures, videos, music, etc).
The SSD's are used for OS, programs, and games.
Try disabling your network device and if a laptop try disabling ACPI control method or whatever it's called under battery. Make sure you restart after disabling and try again
 
I resolved ACPI.sys by disallowing HDD's from powering down in the Windows Power Options.
Are you on a laptop by chance? Usually when ACPI.sys is *that* bad, it's due to the throttling drivers and other bios settings that usually cannot be changed in laptops.
 
Are you on a laptop by chance? Usually when ACPI.sys is *that* bad, it's due to the throttling drivers and other bios settings that usually cannot be changed in laptops.
Negative, Desktop PC.
Definitely has something to do with the powering down / spinning up my one HDD, since making it stay powered on all the time stopped ACPI.sys causing any issues.

Try disabling your network device and if a laptop try disabling ACPI control method or whatever it's called under battery. Make sure you restart after disabling and try again
To remedy ACPI.sys or nvlddmkm.sys?
It's no real effort to disable my network device (on-board LAN) and see if it helps remedy either issue.

Re: HPET Topic

I'm fascinated with how popular HPET is on the internet, and I still want to learn more and test it further. I researched and tested this quite a bit in the past, so I'd like to share what I've come up with so far on the topic for anyone interested. Ultimately though, I think Clanger summarized it pretty damn good in their last post.

TLDR: as a guy that did QC for many years in games, and worked on finding and fixing thousands of bugs, I think bugs are really just the underlying problem here (bugs are rampant everywhere), and many times what works for one person doesn't always work for the next, because that other person doesn't have that bug, due to different apps/drivers/hardware/bios/OS configurations. This is evident in Necrosaro's driver fix working for one person and not another. I think the same is true of HPET. This stuff just happens a lot with computers unfortunately. It doesn't mean you shouldn't try things out for yourself, but often times there isn't such a thing as a blanket fix. If you want to test HPET for yourself I added a bat file in the "HPET TESTING" spoiler below.

MY HPET OPINION
I'm on the fence about all the HPET stuff, my conclusion at this point in time is that it's snake oil, unless you happen to have a bios and/or CPU bug. I am at least confident in saying it is not a flat improvement across the board on all machines to just enable or disable it, as it is so commonly touted in other tweaking websites, YouTube videos, etcetera. I've tried it on 3 very different machines and OS (XP/7/10) and I am still unsure about it. If it was a golden fix then it would be by far the #1 tweak to implement, but it's such a mixed bag in reality.

HPET RESEARCH
Apart from the one confirmed circumstance where Skylake and HPET were interacting funny (https://www.overclockers.at/articles/the-hpet-bug-what-it-is-and-what-it-isnt), I have yet to see any benchmarking or screenshots proving it is straight up beneficial, no matter what combination of settings is used. That link has a ton of comments and participants, with no real conclusion. I've read countless forums and articles on the topic and there really isn't an agreed upon consensus.

I've tested my hardware with HPET extensively and saw no difference in any combination. Sure it changes the reported mhz on the timer tool, but I haven't seen it translate into anything beneficial other than people saying "it feels different" which is almost always placebo effect. And now with malware/virus mitigations it seems like Microsoft has also changed the default timer values after I think W10 1809? It's now 10mhz by default.

Like Clanger mentioned, newer motherboards actually cannot disable HPET in the bios. This is because manufacturers have determined it's not needed, and so it's been hidden in a lot of modern bios and is always enabled nowadays.

HPET TESTING
For anyone that wants to test it themselves, here's a simple bat file I put together to toggle the 4 HPET and timer related settings on/off in Windows. I've tried them in all sorts of different combinations and then ran timer resolution benchmarks, framerate benchmarks, and LatencyMon benchmarks, and saw no notable changes other than the QPC value changing from 10 mhz. At this point in time I leave HPET enabled in the bios, and all other settings default in W10. I do still want to revisit all of this in the future to make sure I didn't make any mistakes though. Supposedly these 4 settings below are the "best":

@ECHO OFF
ECHO DISABLING HPET
ECHO (bcdedit /set useplatformclock no)
bcdedit /set useplatformclock no
TIMEOUT 2 > nul
ECHO.
ECHO.
ECHO DISABLING SYNTHETIC TIMERS
ECHO (bcdedit /set useplatformtick yes)
bcdedit /set useplatformtick yes
TIMEOUT 2 > nul
ECHO.
ECHO.
ECHO ENABLING ENHANCED SYNCHRONIZATION
ECHO (bcdedit /set tscsyncpolicy enhanced)
bcdedit /set tscsyncpolicy enhanced
TIMEOUT 2 > nul
ECHO.
ECHO.
ECHO DISABLING TIMER POWER SAVINGS
ECHO (bcdedit /set disabledynamictick yes)
bcdedit /set disabledynamictick yes
TIMEOUT 2 > nul
ECHO.
ECHO.
ECHO OPTIMIZATION FINISHED
ECHO Be sure to enable HPET in the motherboard BIOS settings!
ECHO You must restart your computer for changes to take effect.
PAUSE

One major problem with benchmarking though, is there's countless things that interfere. And the reason I personally tabled HPET stuff after my initial testing is because I want to finish my other W10 tweaking to further tame the OS so that I have a better, and tighter baseline to benchmark on, with less interferences. Then maybe I might be able to see differences easier with regards to HPET stuff.

MISINFORMATION AND BUGS
Even the so called pros really don't understand HPET or how to toggle it. A certain famous YouTuber tweaker for example was telling people that you had to very specifically type "true/false" instead of "yes/no" or had to use "delete" value, etcetera, for it to "work properly". This is all nonsense because you can simply verify what is happening with HPET stuff by using reg compare--it's just simple registry keys that change, and it operates the same whether you use true/false or yes/no, delete, etcetera, and so it just helps to confirm to me that nobody really knows what they are talking about with regards to HPET because they aren't trying to see how it works under the hood.

On this note, I've seen a lot of reputable places tell people to change the wrong values in power plan registry keys too, they are altering the "min/max" values, which is totally and utterly wrong. These kinds of red flags make it hard for me to trust anything else those people are peddling. This is the same reason I've never bothered with stuff like NVCleanstall or DDU over the years, because they don't provide proof that it's beneficial. If anyone has any resources showing benchmark comparisons, I'd love to see them, because I haven't come across any.

Tools like these usually "work" for people, because they had a problem they didn't realize, such as a corrupted driver install, or they had followed a guide and changed a bunch of settings that made things worse and by uninstalling and installing again it just resolved those issues. This happens a lot, and often times people forget they even messed with settings too, or they blindly install some script that changes a bunch of stuff they aren't aware of (and improperly).

From what I read about HPET, applications decide what type of timer to use, it's coded into games and benchmarking tools and that's why some benchmark tools will fail to load unless HPET is enabled in the bios (which is likely a contributing factor to why manufacturers are hiding the setting in modern boards now. So I think this is why you don't really see any change most times by messing with these settings. I'm not a developer though, so I can only take these people's word on that.

If anyone else plays around with HPET, please let us know if you do end up seeing a positive difference (with screenshot proof), or if I'm wrong about anything. I am open to learn from my mistakes, because at the end of the day all I care about is performance and if you can show me how to improve things more, please let me know!
I did a fair bit of tinkering with the OS timers and HPET myself, actually.
Allowing my PC to use HPET absolutely cripples performance; the OS was horridly slow to even boot and simple tasks like opening the start menu or file explorer took 5+ seconds to perform, when they'd usually be near instantaneous.
1665163825948.png
I currently use most of those edits already, aside from tscsyncpolicy
My BIOS has no HPET setting, it's always enabled I assume.
Disabling or allowing it in the device manager makes no difference to anything, as far as I can tell.
 
Negative, Desktop PC.
Definitely has something to do with the powering down / spinning up my one HDD, since making it stay powered on all the time stopped ACPI.sys causing any issues.


To remedy ACPI.sys or nvlddmkm.sys?
It's no real effort to disable my network device (on-board LAN) and see if it helps remedy either issue.


I did a fair bit of tinkering with the OS timers and HPET myself, actually.
Allowing my PC to use HPET absolutely cripples performance; the OS was horridly slow to even boot and simple tasks like opening the start menu or file explorer took 5+ seconds to perform, when they'd usually be near instantaneous.
View attachment 8294
I currently use most of those edits already, aside from tscsyncpolicy
My BIOS has no HPET setting, it's always enabled I assume.
Disabling or allowing it in the device manager makes no difference to anything, as far as I can tell.
It's weird but sometimes the device you least expect to be causing the issue is the one that is causing it that is why I asked if you could disable your ethernet driver,restart and try again just to see. If not no hair of our backs but if it is then we can work forward in fixing it.
 
Allowing my PC to use HPET absolutely cripples performance...
Nodnod. And for others like myself, it changes nothing, and then some people say it improves things. Which is why I think really it's just bugs at play. I mean it *has* to be a bug, because Windows is designed around having HPET enabled, and has been for a long time, and so the real problem is just figuring out *what* is responsible for the bug. That's the super hard part. Could be motherboard bios, could be some Windows settings, could be a driver...

Here's what I find interesting, and what everyone here should be posting screenshots of, because it will help figure out why HPET is or isn't helping. By default, my machine on a clean install of W10 21H2 already uses Invariant TSC 10mhz which is one of the approaches that people recommend. Check out this article (link1) for an example.

The tool everyone needs is the TimerBench from here (link2) since it shows what your QPC value is at, which is what HPET is changing.

I suspect that in situations like yours, for some reason Windows is defaulting to a different timer. Can you check your clean install of Windows and see what TimerBench shows as the QPC value before you manually change HPET stuff?

My theory is that during Windows Setup it's detecting your hardware configurations and changing the default QPC. You can see this same thing happening in the power plans for example, Windows changes a lot of settings based on your hardware, and so one person's power saver/balanced/high performance plan isn't going to be the same as another persons. This theory would at least explain why changing HPET works for some people and not others.
 
Last edited:
Here's what my QPC looks like on W10 21H2 with my hardware (Invariant TSC 10.00 MHz). I did not change any HPET settings, they are default with HPET enabled in bios:
 

Attachments

  • QPC.png
    QPC.png
    34.4 KB
Well, I tried disabling my network device and allowing my HDD to spin down again.
Immediate issues with nvlddmkm.sys DPC in the thousands, so no change there.
Once the HDD had spun down and I went to use it, so it had to spin up again, well...
failed experiment.jpg

So unfortunately, no change to either.
Back to keeping my HDD always powered up and working to resolve nvlddmkm.sys XD

Nodnod. And for others like myself, it changes nothing, and then some people say it improves things. Which is why I think really it's just bugs at play. I mean it *has* to be a bug, because Windows is designed around having HPET enabled, and has been for a long time, and so the real problem is just figuring out *what* is responsible for the bug. That's the super hard part. Could be motherboard bios, could be some Windows settings, could be a driver...

Here's what I find interesting, and what everyone here should be posting screenshots of, because it will help figure out why HPET is or isn't helping. By default, my machine on a clean install of W10 21H2 already uses Invariant TSC 10mhz which is one of the approaches that people recommend. Check out this article for example:
https://www.xbitlabs.com/how-to-get-better-latency-in-windows

The tool everyone needs is the TimerBench from here, it shows what your QPC value is at, which is what HPET is changing:
https://www.overclockers.at/articles/the-hpet-bug-what-it-is-and-what-it-isnt

I suspect that in situations like yours, for some reason Windows is defaulting to a different timer. Can you check your clean install of Windows and see what TimerBench shows as the QPC value before you manually change HPET stuff?

My theory is that during Windows Setup it's detecting your hardware configurations and changing the default QPC. You can see this same thing happening in the power plans for example, Windows changes a lot of settings based on your hardware, and so one person's power saver/balanced/high performance plan isn't going to be the same as another persons. This theory would at least explain why changing HPET works for some people and not others.
As far as I recall, TimerBench showed Invariant TSC from the get-go after the fresh install.
It only changes if I force HPET.
It still currently shows Invariant TSC:
1665165210182.png

TimerBench is one of a collection of tinkering programs I have on any Windows install right away:
1665165551067.png
 
Well, I tried disabling my network device and allowing my HDD to spin down again.
Immediate issues with nvlddmkm.sys DPC in the thousands, so no change there.
Once the HDD had spun down and I went to use it, so it had to spin up again, well...

So unfortunately, no change to either.
Back to keeping my HDD always powered up and working to resolve nvlddmkm.sys XD


As far as I recall, TimerBench showed Invariant TSC from the get-go after the fresh install.
It only changes if I force HPET.
It still currently shows Invariant TSC:

TimerBench is one of a collection of tinkering programs I have on any Windows install right away:
Thanks for trying. I wonder "on mine" I turned off the p2 power savings setting in Nvidia inspector(app that goes deep dive into Nvidia) to let my Nvidia card to run full even if doing nothing. It stays at full clock speed.

Not sure if anyone has done that here on and if it helped.

The reason I do this is because when watching 4k movies my card turns down but doesn't with gaming. It also turned down with YouTube videos or Netflix stuff like that
 
Chunky1311, regarding ACPI DPC, over in my "Optimized Image" guide you may want to try and download the tweaks folder, and take a look at the Power Plan registry file I created. It was designed to address this exact problem.

Windows is very power-saving for whatever reason nowadays, which is fine for laptops, but not so much on gaming desktops. You can run the reg file from your desktop and it'll install all the keys. Backup stuff first, or try it on a test computer just to be safe, but I've tested these extensively on both an older desktop and a new laptop, and it worked great on both. It's all documented, and you can do some Googling to look into them as well to verify.
 
Last edited:
... I turned off the p2 power savings setting in Nvidia inspector(app that goes deep dive into Nvidia) to let my Nvidia card to run full even if doing nothing. It stays at full clock speed...
Are you able to try turning it off and on again and capture it with a reg compare? It would be easiest and best for us to try it out using just the reg key, which I'm sure is probably what it's changing. I'd definetly try. I know for sure W10 will still try to downclock your CPU even during intense gaming or benchmarks to 50% even if all core parking is disabled, whenever it senses milliseconds/microseconds of "downtime". There are settings to change that, but you have to be super careful because you can brick your machine messing with them. Just straight up disabling Idle states for example causes huge problems.
 
Are you able to try turning it off and on again and capture it with a reg compare? It would be easiest and best for us to try it out using just the reg key, which I'm sure is probably what it's changing. I'd definetly try. I know for sure W10 will still try to downclock your CPU even during intense gaming or benchmarks to 50% even if all core parking is disabled, whenever it senses milliseconds/microseconds of "downtime". There are settings to change that, but you have to be super careful because you can brick your machine messing with them. Just straight up disabling Idle states for example causes huge problems.
With the toddler patoots right now and dislike having her around my computer. She tends to do things with the computer that don't approve off haha.

However she likes watching me test my overclocks before haha my little girl for sure lol.

Uploaded a picture what I was saying however from another site.

Just make sure you hit apply after and if it errors at start of program don't worry about it.

As an update add on, you can see if it is working with Msi afterburner
 

Attachments

  • cuda_force_p2_state_nv_prof_insp_v2.png
    cuda_force_p2_state_nv_prof_insp_v2.png
    26.2 KB
Last edited:
Chunky1311, regarding ACPI DPC, over in my "Optimized Image" guide you may want to try and download the tweaks folder, and take a look at the Power Plan registry file I created. It was designed to address this exact problem.

Windows is very power-saving for whatever reason nowadays, which is fine for laptops, but not so much on gaming desktops. You can run the reg file from your desktop and it'll install all the keys. Backup stuff first, or try it on a test computer just to be safe, but I've tested these extensively on both an older desktop and a new laptop, and it worked great on both. It's all documented, and you can do some Googling to look into them as well to verify.
Thanks for trying. I wonder "on mine" I turned off the p2 power savings setting in Nvidia inspector(app that goes deep dive into Nvidia) to let my Nvidia card to run full even if doing nothing. It stays at full clock speed.

Not sure if anyone has done that here on and if it helped.

The reason I do this is because when watching 4k movies my card turns down but doesn't with gaming. It also turned down with YouTube videos or Netflix stuff like that
I'll try both these tomorrow and report back, I've got to head to bed for now.

Are you able to try turning it off and on again and capture it with a reg compare? It would be easiest and best for us to try it out using just the reg key, which I'm sure is probably what it's changing. I'd definetly try. I know for sure W10 will still try to downclock your CPU even during intense gaming or benchmarks to 50% even if all core parking is disabled, whenever it senses milliseconds/microseconds of "downtime". There are settings to change that, but you have to be super careful because you can brick your machine messing with them. Just straight up disabling Idle states for example causes huge problems.
I agree, Windows is overly aggressive with it's power saving and illusive with any options to disable power saving features.
I have a desktop PC and solar power, I don't need any power saving XD
I worry more about the longevity of parts, particularly keeping my HDD spinning constantly.
I use Process Lasso for it's "Induce Performance Mode" that you can set per-program.
It forces max clock speeds and forbids core parking when engaged.
It also has some other nice features, like per-program CPU affinity or priority, the option to constantly reapply settings in case Windows tries to do anything fucky, and the option to change power plans based on PC usage (idle=power saving until you use your PC and it'll change back to balanced or whatever you choose).
It's a rather useful program imo.

And finally, "toddler patoots" got a chuckle out of me XD
 
I'll try both these tomorrow and report back, I've got to head to bed for now.


I agree, Windows is overly aggressive with it's power saving and illusive with any options to disable power saving features.
I have a desktop PC and solar power, I don't need any power saving XD
I worry more about the longevity of parts, particularly keeping my HDD spinning constantly.
I use Process Lasso for it's "Induce Performance Mode" that you can set per-program.
It forces max clock speeds and forbids core parking when engaged.
It also has some other nice features, like per-program CPU affinity or priority, the option to constantly reapply settings in case Windows tries to do anything fucky, and the option to change power plans based on PC usage (idle=power saving until you use your PC and it'll change back to balanced or whatever you choose).
It's a rather useful program imo.

And finally, "toddler patoots" got a chuckle out of me XD
I have a AMD 8350 cpu with a AM3 motherboard for a very long time. "Consistency in power as well as clean power is the most important for parts for longevity. Same goes for anything in your home or most things that are electronic. I have had them both overclocked for past 10 years with no issue. Just cleaning, reapplying paste typical stuff.
 
у меня проблема со стабильной мышью, когда мой графический процессор nvidia включен, но у меня хорошая задержка dpc (немного больше, чем у Intel)

Moderator edit
- google translation to english.
i have problem with stable mouse when my nvidia gpu is enabled but i have good dpc latency (slightly more than intel)

maybe it is amd + nvidia capability
 

Attachments

  • Untitled.png
    Untitled.png
    148.5 KB
Last edited by a moderator:
i have problem with stable mouse when my nvidia gpu is enabled but i have good dpc latency (slightly more than intel)
To be honest I never actually got around to bothering with mouse testing, because I never had a reason to (never felt like there were problems), so I don't have any expertise on that benchmarking subject, except that maybe the reason I never had issues was because of some other things I've done over the years. Here's my typical mouse-optimization routine, maybe one of these will at least help you a bit, until this driver issue gets fixed:

[1] I always use the high performance power plan, which will absolutely affect things like DPC and mice. And I also tweak the USB power plan settings so that they are not trying to disable my USB slots all the time to save power. I'm pretty sure this is where a lot of mice issues come from, because instead of the mouse being at full power all the time it is constantly powering down and powering up, which introduces jitter and other problems. Look at my Optimized Image guide and inside the download folder it has my power plan settings.

[2] I never use a wireless mouse (uneccesary input lag) and never a mouse that requires drivers (the number of poorly written drivers out there is overwhelming). Instead, I use mice like the Razer Abyssus which are either preset to a certain mhz/dpi, or have physical buttons on the bottom of the mouse that can toggle between a few different mhz/dpi combinations, and no drivers to install.

[3] Use a decent mouse pad, and preferably one that is all black, no colors or pictures, and cloth is probably the best. I do like the feel of the super thin and hard mouse pads like the Sphex, but they eat up the feet on your mouse like crazy and I've had to reorder new feet every few months.

[4] I would never use a regular 125mhz mouse, in my prime gaming I could literally feel that input lag, I would quickly move my mouse across the screen and left-click to shoot off a sniper round, and I would feel the delay. A 1000mhz/1800dpi mouse made that issue go away, and was my favorite combination. I think dpi and mhz that are too high are probably another part of the problem too, I'd wager there would be less issues if people would stop using marketing hyped massive mhz/dpi combos.

[5] In the Windows mouse settings, turn off enhance pointer precision, and leave the mouse speed at the default Windows setting. Never mess with that slider. Instead, change the mouse speed in your game settings of each individual game to avoid problems with acceleration and such.

[6] It's possible that the Nvidia driver/dpc issues are affecting your mouse too, because this is a pretty bad bug and I think it's multipronged so it is likely affecting quite a few things negatively.
 
...If the system goes to sleep and i wake it up i have to unplug/plug in the interface...
I have one of the officially licensed wired-only controllers for my Nintendo Switch, and this happens every single time I turn the Switch on. It drives me bat sh*t crazy to have to unplug and plug in the controller again every time! :p
 
I remember old discussions/threads about disabling usb on xp, uses about 20% system resources.
 
Status
Not open for further replies.
Back
Top