Solving Audio Dropouts / DPC Latency Issues With NVIDIA Drivers On Windows

I have been struggling lately with constant audio dropouts on our main Windows PC (a monster machine running Windows 11 with a 12th gen Intel core i9 CPU and an NVIDIA GeForce RTX video card – also used for video editing).

A true nightmare making any real time audio performance impossible on this machine for weeks!

It took some time to figure it out, but here is a trick that may help you solve such audio dropouts, even when DPC latency issues with faulty drivers cannot be solved!

To learn more about DPC latency, you may want to read our Windows PC Optimization article.

By the way DPC stands for Deferred Procedure Calls (Wikipedia definition).

NVIDIA Driver DPC Latency Problem

After applying the same optimization tricks as for all our audio laptops (yes it works for desktop PCs too, even though it is usually not necessary), audio performance was still very poor, even with rather large buffer settings.

CPU usage was not the problem though, as the CPU meter in our standalone applications was really quiet:

So of course, the first thing that comes to mind in this case is DPC latency issues… An the culprit indeed seems to be the NVIDIA video driver, as shown by the Latency Mon report below:

Almost 4ms of DPC latency is huge, and it means dropping audio buffers every time this delay happens! If interrupts from other drivers take too much time to execute, they may indeed prevent the audio driver from doing its work in time, as explained with more details in our Windows PC Optimization article.

After further investigation on the Internet, this issue has been happening to many people lately, and it may have been caused by the combination of recent Windows updates and issues with NVIDIA drivers, which of course you cannot disable!

Anyway, after trying every possible tweak described in this forum thread, one trick finally solved the problem, and I guess it may be applicable to other cases when DPC latency keeps being an issue  for audio dropouts, and the faulty driver cannot be disabled.

The Trick

The idea is to force the audio driver and the driver causing DPC latency issues to work on different CPU cores, so that the audio driver is not blocked by the faulty driver that takes time to execute.

To do that, you can edit the interrupt affinity setting for the drivers. You can either go thru the Windows registry manually (good luck!) or use the Microsoft Interrupt-Affinity tool:

In this particular case, the GeForce driver’s affinity has been set to Core #4, while the audio driver has been set to core #16.

Warning: the NVIDIA driver seems to reset this affinity property when rebooting, so you might have to do this again from time to time. The Interrupt Affinity tool also seems to throw odd errors from time to time while editing the registry for this particular driver, but it does not seem to affect the result.

The Result

It works! No more dropouts, even at extremely low latencies and high CPU usage!

The DPC latency issue with the NVIDIA driver remains, BUT it is now not a problem anymore for the audio driver that can do its work (on CPU #16) while the other CPU core (#4) is busy working for the graphics card (nvlddmkm.sys driver), as you an see on the Latency Mon utility screenshot below:

I guess this is applicable to any other driver that may cause such DPC latency issues and that cannot be disabled (it has to respect the core affinity settings though – some drivers may override the behavior and not take the affinity into account). So if you have a laptop that has never been capable of real time audio due to DPC latency issues, you may to to try this out!

Back to music now…  Enjoy, and feel free to report your successes of failures with this trick!

>discuss this topic in the forum

7 thoughts on “Solving Audio Dropouts / DPC Latency Issues With NVIDIA Drivers On Windows

  1. Thanks for this! I m experiencing this issue top and I’ll try your tips! Just one question can you be more specific in commands to use while using interrupt affinity tool? I mean how to assign different drivers to a different core in case of ASIO drivers and Nvidia drivers! Thanks in advance and have a Great day

Leave a Reply

Your email address will not be published.