View Single Post
Von Dach
Master Guru
Von Dach's Avatar
Videocard: NV560Ti @900/2394 ATI4890
Processor: Intel 2600K @4600 MHz
Mainboard: ASRock Z68 Extreme3 Gen3
Memory: 2x4GBCorsairVengeanc1600
Soundcard: Creative Recon3D USB
PSU: Corsair TX750W
Default 11-12-2010, 07:42 | posts: 623 | Location: Quebec, Canada

Disable High Precision Event Timer (HPET) in BIOS
Problems HPET is a continuously running timer that counts upward, not a one-shot device that counts down to zero, causes one interrupt and then stops. Since HPET compares the actual timer value and the programmed target value on equality rather than "greater or equal", interrupts can be missed if the target time has already passed when the comparator value is written into the chip's register. In the presence of non-maskable interrupts (such as System Management Interrupts) that don't have a hard upper bound on their execution time, this race condition requires time-consuming re-checks of the timer after setup and is hard to avoid completely. The difficulties are exacerbated if the comparator value is not synchronized with the timer immediately, but delayed by one or two ticks, as some chipsets do.
A guy on another forum claimed that by disabling it, his DPC latency plummeted and his gaming performance improved; most notably the microstuttering.

So I tried it myself, and the difference to my astonishment, was very noticeable. First off, my DPC latency dropped big time. Not that it was high to begin with, but now it hovers below 10 for the most part.

Second, I noticed that general windows performance felt snappier. I know I'm not imagining things, because like many, I scrutinize my system so I'm sensitive to even minute changes in performance.

And last but not least, gaming performance is definitely smoother. Anyone with SLi will tell you that occassionally when playing a game, you experience a bit of lag or stuttering for no apparent reason whatsoever. Most people attribute these minor discrepancies to SLi, but what if it's something else? Because I can tell you, that my overall gaming experience has improved since turning HPET off.

If you have the HPET option in your BIOS, I highly recommend experimenting with it and see if it impacts your performance. There's a possibility that having it on could increase the amount of microstuttering in any given game; particularly if you're running SLi.
It can be used by software or the os for very accurate timing, however when it's "ON/Enabled" then windows will use it as the main clock source instead of the other options like the cpu TSC (time stamp counter).

The HPET can provide more precise timing, however the OS has to reference it via a memory address, or I think the HPET can raise a interrupt,
so therefore it's slower.

The TSC may be less precise, however it's a register in the CPU so this is the fastest possible way to access a clock source.
My own result with DPC Latency Checker:

HPET 64-Bit ON: between 100-150us
HPET OFF: between 5-15us

I loss 3-4 frames per second, single card and CFX with HPET OFF, but I know chance of stuttering decreased accordingly.

*Some motherboards have HPET enforced and it can't be disabled (Asus).

Maximize your Windows timer resolution
Just keeping this little application open in the background will reduce DPC latency, improve responsiveness. Good workaround particularly for those who are stuck with an enforced HPET On.

I tested this on my workstation dual core who is using a lot of CPU time constantly. HPET is off.

DPC Latency is ~650us at 0.977ms timer resolution (default with my apps running).
DPC Latency is ~190us at 0.5ms timer resolution (maximized).

I now keep this app running constantly in the background, everything feel snappier.

On my gaming rig, HPET On (for this test purpose only):

DPC Latency is ~100us at 1ms timer resolution (default with DPC Latency Checker running, Windows default is normally 10ms)
DPC Latency is ~10us with some peak at 100us at 0.5ms timer resolution (maximized)

Entering a game normally bring timer to 1ms but you can improve it even more with this application running in background to 0.5ms. Depending the game and your system you may feel better responsiveness and less stuttering.

Disable CPU Enhanced Halt (C1E), EIST (SpeedStep) & Cool'n'Quiet in BIOS

CPU Enhanced Halt (C1E) & EIST decrease overclocking reliability, create DPC latency spikes and hiccups in some circonstances.

Gigabyte motherboards note
Depending on your model & BIOS, Intersil power controllers may be defaulted to intermediate hardware power management, creating high DPC latency under some circonstances. Only way I found to fix that was to install Gigabyte Dynamic Energy Saver, turn it On then Off. Now optimal performance, minimal power management are set (even if you reinstall Windows). You can uninstall DES or disable the associated service after this is done. This may apply to other mobo manufacturers using similar PWM controllers and softwares.

Remove AMD CCC.exe from automatic startup and/or kill process CCC.exe & MOM.exe before gaming (single card & CrossFireX)

CCC.exe can increase DPC latency, you can check that with Resplendence Tools & DPC Latency Checker. Shut down that bitch and her mother (MOM.exe), you will get some additional fps from it. The slower your computer the bigger the increase in responsiveness and stuttering reduction, dual core benefit the most.

Right-click taskbar> Start Task Manager > right-click CCC.exe> End Process> right-click MOM.exe> End Process.

Install AnVir Task Manager to easily untick CCC from startup. CCC can still be opened from right-click on desktop to change settings if needed, just kill the processes again after your changes.

Last edited by Von Dach; 03-08-2011 at 15:03.
Reply With Quote