Contact

The case of DPC latency

Article update log:

  • 24 Jul 2016: Article updated
  • 16 Mar 2012: Added some quick tips to 4.Tips & tweaks in reducing DPC latency
  • 11 Aug 2010 : Added Win 7 & Asio results to 3.1 chapter (draft version)
  • 3 Aug 2010 : Part 1 (First Revision)

1. What is DPC latency

“If any kernel-mode device driver in your Windows system is implemented improperly and causes excessive latencies of Deferred Procedure Calls (DPCs) then probably drop-outs will occur when you use real-time audio or video streaming applications” – http://www.thesycon.de/eng/latency_check.shtml

Basically if you are watching a movie and your system has a high DPC latency, your audio/video will pause or skip for a couple of seconds. The same will happen with games.

The worst part is that those audio/video dropouts will occur regardless if you have a single core Pentium 4 2.4 GHz  processor or a quad core Core i7. Bad coding of the drivers is usually the fault for high and very high DPC latency.

2. How to check DPC latency

For Windows XP, Windows Vista, Windows 7, Windows Server 2003, Windows Server 2008 use DPC Latency Checker or LatencyMon.

For Windows 8, Windows 8.1, Windows 10, Windows Server 2012, Windows Server 2016 use LatencyMon.

DPC Latency Checker measures DPC latency of the overall system. LatencyMon measures DPC latency of the overall system and of individual drivers.

The DPC latency varies depending on the applications you are running (foreground and background) and it’s mostly influenced by audio data streams, video data streams and network activity (wireless, ethernet, bluetooth). But that’s not all, for example mouse movement also causes  DPC latency levels to rise.  When you use a P2P application and you watch a HD 5.1 movie, this can lead to a  very bad movie experience,  audio/video desynchronizations occurring several times during playtime.

3. DPC Latency Tests

DPC latency tests done on the following configuration:   Core 2 Duo 8400 3.0 GHz, DFI LP UT P35 motherboard,Marvell 1 GB Lan onboard, Realtek ALC885 audio onboard ,2×2 GB Ram, ATI HD 3870 video card, Asus Xonar DX sound card, Windows XP x64 (sp2), Windows 7 x64(sp1), DPC Latency Checker.

3.1 Asus Xonar DX and Realtek ALC885 audio drivers DPC latency tests

The tests where done with 5.1 channel/44.1KHz  settings except the cases where there are other settings specified. For comparison I also tested my on-board audio card Realtek ALC885 with Realtek  HD 2.50 driver

Results interpretation

Values are approximates. Values between 0-300µs are good, 300-500µs are OK,  500-1000µs are bad and values >1000us are terrible.

Don’t compare Windows XP results with those of Windows 7. Windows 7 is a clean install where Windows XP is fully loaded with programs. After closing the programs that where running in the background, such as Rainmeter, the results for Uni Xonar low DPC latency on XP where 68 µs .

The results

As you can see Realtek did a pretty good job with their drivers, the differences are enormous between Realtek and ASUS/C-MEDIA drivers with the same settings. For those of you who don’t know, I made a version of the Xonar drivers (Uni Xonar low DPC latency) which disables Asus Audio Center from startup, resulting in a lower DPC latency at ~120µs . This doesn’t mean that if you disable autostartup for Realtek Panel you will get better results.  ASUS  Xonar drivers are special and issues pop-up where they shouldn’t.

 3.2 Network activity impact on DPC latency

Here are 2  examples where increased network activity rises DPC latency

a) µtorrent network usage:  10 KBps Download, 310 KBps Upload

utorrent-310-kb-up

b) µtorrent network usage:  4,5 MBps Download, 300 KBps Upload

utorrent-4-5-mb-dl-300-kb-up

4. Tips & tweaks in reducing DPC latency

If you have problems with high DPC latency, here are some quick tips that can lower it:

  1. Update your drivers (especially audio, network LAN, WiFi, Bluetooth, TV tuner) . Try searching for them on the original chip manufacturer and not on the motherboard manufacturers page.
  2. Disable unused components like LAN, onboard audio card, Bluetooth etc. via BIOS or Device Manager.
  3. Disable any motherboard/CPU monitors that autostart with Windows (like GigaByte EasyTune, ASUS AI Probe and so on)
  4. Disable High Precision Event Timer (HPET) if you are using Windows Vista/7/8/10.
  5. Update your motherboard BIOS to the latest version.
  6. Update Windows.

A very good read in regards to updating drivers and different performance enhancements here (by Von Dach).

Advertisements

31 Comments

  1. Alt    23 Feb 2014 @ 11:08   

    SetTimerResolutionService (http://forums.guru3d.com/showthread.php?t=376458) helps to improve latency for Windows OS (from XP to 8.1).
    Some info about it here (http://www.lucashale.com/timer-resolution/)

    Reply

    • CarvedInside    26 Feb 2014 @ 00:17   

      From my experience this tool would only be useful if you would be on Windows Vista/7/8 and if a application you would use would not signal the system that it is a multimedia application so that the system would change its timer resolution from the IDLE state.

      Reply

AdminAuthorFeaturedBuried

Leave a Reply

*

Your comment may be held for moderation. If it does not show up immediately, just be patient.