Disable HPET(High Precision Event Timer)

**UPDATE November 25 2017**

You also have to disable HPET in Windows 10 via admin privileged command prompt. Right click Command Prompt and Run As Admin and enter the following.

bcdedit /deletevalue useplatformclock

bcdedit /set disabledynamictick yes

Restart for changes to take effect.

To re-enable use the following.

bcdedit /set useplatformclock true

bcdedit /set disabledynamictick no

**UPDATE March 9th 2015**

I've recently learned that some apps will override or change timing resolution while they are running even if timer resolution is set to maximum 0.500. Example: google chrome is built to run on mobile devices and is designed to save on power and changes timer resolution to 1000. What this means... say in battlefield 3, 4, and hardline, you need to have a browser open to use battlelog to join a game. If you do not close the browser and the game has loaded your timer resolution will be at 1000 not 0.500. So make sure you close google chrome after you are ingame or it says loading level.

High Precision Event Timer (HPET)

Explanation

Deferred procedure calls (DPC(s) Latency) (usually in bios) allow programs to queue actions to be done quickly in the processor scheduler, and they hang the whole computer until they get processed.

For example, drawing a video frame on a screen needs to be done as soon as the data is ready and the frame time is reached. This is all done in fractions of a second and isn't noticed by many people but actually effects the following...

  • When you click the mouse till the action actually happens on the screen.

  • Where the network data tells your PC they're location and when it actually happens visually which can be inaccurate.

  • What your monitor is showing you isn't really happening in real time, hence leading shots in older games. Same thing but in a different way.

Disabling HPET allows an unrestricted input output to occur and results in a very raw and extremely responsive connection between you and your machine. It also removes a ton of micro-stuttering and screen tearing.

1000us = 1ms

HPET ON: between 100-150us delay

HPET OFF: between 5-15us delay

3-4 frames per second loss, single card with HPET OFF, chance of stuttering decreased accordingly.

Even though it doesn't seem like much, but imagine every action and each PC component is effected by that same 100-150us delay, It can add up to MANY milliseconds and significant performance loss. The end result is, to higher end players, another step forward is crispier and snappier inputs and actions across the board.

*Some motherboards do not have an HPET option. See Maximizing Windows Timer Resolution below.

Wikipedia's Explanation

http://en.wikipedia.org/wiki/High_Precision_Event_Timer

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 users experience

http://forums.nvidia.com/index.php?showtopic=183329

"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."

Maximizing your Windows timer resolution

https://cms.lucashale.com/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.

This was tested on a workstation dual core that 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)

He now keeps this app running constantly in the background and everything feels snappier.

On his 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.

Disabling 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 circumstances.

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 & MOM.exe from automatic startup and/or kill process before gaming

CCC.exe can increase DPC latency, you can check that with Resplendence Tools (LatencyMon) & 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.

Warning for laptop users

Disabling HPET, decreasing timer resolution to 0.5ms, and disabling dynamictick on Windows 10 will result in a increase in battery usage when not plugged in.

Original Thread without my edits