DPC Latency helper.

Unfortunately by design Windows is not a real-time operating system, Real-time audio processing in Windows requires a fine tuned and reactive system.
Some drivers or devices may interrupt the data processing for too long, which results in drops.
See 
https://en.wikipedia.org/wiki/Deferred_Procedure_Call for details.

Merging recommends you use LatencyMon to check DPC latencies on your system. (Windows 10 & 11)

DPCLatencyChecker only works on Windows 7 (false results on Windows 8.1 and following Windows versions 10)

Run the application in "normal" conditions, do not start "big" programs, do not install new drivers,...
Let LatencyMon run for at least 10 minutes (Merging recommends 30 minutes, or more).

If the DPC does not report problems
All green and no faults your system should be adequate to perform realtime audio tasks.


If DPC Errors and realtime Audio problems:

  • If you get DPC errors, see the reported driver name to be able to track the culprit.
    Follow LatencyMon documentation to perform the investigation http://www.resplendence.com/latencymon_using
  • First step to solve such issue is usually to update the device driver (if possible). 
    Note: At times Windows does not detect the new driver and users might be required to go to the component manufacturer website.
  • If updating the driver does not help, or if no newer driver exists, you will have to disable the device in Windows device manager.
    Warning: Don't disable devices that are essential for your computer to function!
    Do NOT disable:
    -any device listed in Device Manager under System devices or Computer,
    -the hard disk that contains the system partition,
    -the IDE/ATAPI /SATA/RAID controller this hard disk is connected to,
    -the system keyboard,
    -the mouse, track point or touch pad device,
    -the USB controller external keyboard and/or mouse devices are connected to,
    -the display controller listed under Display adapters.
  • If disabling the device does not help or is not possible, you can check if Windows is running a specific task or service that triggers the issue.
    When you get a spike, go in Windows Event viewer > Windows logs.
    You should first check in Application and System if you see errors at the time you had the spike. 
    From there you might get more information on the process / service that is triggering the issue.
    Again, make sure you do not disable an essential service or task for Windows to run !
  • if you get high Interrupt to process latency (second row, so without driver indication), focus your investigation on the CPU :
    BIOS Settings
    Windows Power Management Settings
    Core Parking (see below)


DPC Latency Mon helper
Most complete guide to DPC latency faults.

https://www.resplendence.com/latencymon_using


Known issues : 

  • On an AMD based system with an NVvidia graphics card, it has been seen that is is both crucial to follow our Graphic cards recommended settings and to not have GeForce Experience installed

BIOS

In some case, DPC Latency is reporting failure related to the BIOS configuration.(screenshot below)

Depending of your configuration and if you have access to the BIOS, the settings below are quite important (those might not be acessible with some laptops).

For most accurate results you should disable variable clock speed settings in your BIOS setup such as.

Please have a look at your motherboard manual to locate those settings, may vary depending of the manufacturer.

Intel Turbo Boost Technology: Disabled
CPU Enhanced Halt (C1E): Disabled
C-State Support (C3, C6, C7, C8 State): all Disabled 
CPU EIST Function: Disabled (also called Intel Enhanced SpeedStep, that should always be disabled) 
CPU power saving mode: Disabled

AMD Cool N Quiet:  Disabled 

MassCore users : Secure Boot option is not supported, please disable this feature in your BIOS.



Windows configuration

Merging also has Windows recommendation guides for the system configurations.

Windows Configuration Guides


Core Parking

Core parking may stop some of your CPU cores to save power, which can easily introduce high Interrupt to process latencies.
Open Windows Resource Monitor (type resource monitor in Windows Search) and go in the CPU tab.
Any parked Core is indicated on top of its activity graph.

To disable Core parking:

  • Open Windows Registry Editor ( (type regedit in Windows Search).
  • Browse to Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings
  • Right click on the PowerSettings folder and Export it to any safe place (backup)
  • Right click on the PowerSettings folder and search for dec35c318583.
    The Description field should end with "Specify the minimum number of unparked cores/packages allowed (in percentage)".
  • Double click ValueMax and change the value to 0.
  • Restart the computer.