Few Windows settings have generated as much conflicting advice as the High Precision Event Timer. Forum threads from 2012 still circulate, claiming HPET adds enormous overhead, while more recent benchmarks show mixed or near-zero impact. The truth depends heavily on your CPU generation, game engine, and specific hardware — so understanding what HPET actually does is more useful than following blanket advice.
What Is HPET?
The High Precision Event Timer is a hardware timer built into the motherboard’s chipset, standardized in the early 2000s to replace the older Programmable Interval Timer (PIT) and Real-Time Clock (RTC) timer. HPET provides a clock running at a minimum of 10 MHz — substantially faster than the 1.193 MHz PIT — which allows the operating system to schedule events and measure elapsed time with much higher precision.
Windows uses several timer sources simultaneously. The kernel’s interrupt timer (responsible for thread scheduling) runs independently of HPET, but multimedia applications, sleep functions, and certain game loops query HPET when they need high-resolution timestamps. The QueryPerformanceCounter API, used by most modern games, can be backed by either HPET or the CPU’s TSC (Time Stamp Counter).
On modern Intel (Skylake and later) and AMD Ryzen platforms, the TSC is invariant — it ticks at a fixed rate regardless of CPU clock changes — making it a superior timer source. When Windows defaults to HPET-backed QueryPerformanceCounter on these platforms, it introduces unnecessary overhead because reading HPET requires a bus transaction to the chipset, whereas reading TSC requires only a single RDTSC instruction.
How to Check Your Current Timer Configuration
Open an administrator PowerShell or Command Prompt and run:
bcdedit /enum {current}
Look for the useplatformclock entry. If it is absent or set to No, Windows is already using TSC. If it is set to Yes, HPET is being forced as the platform clock.
You can also check which timer is backing QueryPerformanceCounter:
powercfg -energy -output C:\energy_report.html
Open the resulting HTML file and search for “Timer” to see the active resolution and source.
Disabling HPET via BIOS
The most complete way to disable HPET is at the hardware level:
- Reboot and enter your UEFI firmware (Del, F2, or F12 depending on board manufacturer).
- Navigate to Advanced or Peripherals settings.
- Look for an option labeled HPET, High Precision Event Timer, or sometimes listed under PCH Configuration.
- Set it to Disabled.
- Save and exit.
With HPET disabled in BIOS, Windows cannot use it as a timer source regardless of software settings. This is the cleanest approach and avoids any boot configuration complexity.
Not all motherboard UEFIs expose this setting. ASUS ROG and Gigabyte AORUS boards typically do; budget B-series boards often do not.
Disabling HPET via bcdedit
If your BIOS does not expose an HPET toggle, you can disable Windows’ use of it through the Boot Configuration Data store. Open an administrator Command Prompt and run:
bcdedit /set useplatformclock false
bcdedit /set disabledynamictick yes
bcdedit /set useplatformtick yes
useplatformclock false— tells Windows not to use HPET as the platform clock sourcedisabledynamictick yes— disables the dynamic tick feature, which causes the timer interrupt rate to vary based on system loaduseplatformtick yes— forces use of the platform performance counter (TSC on modern hardware)
Reboot after running these commands. To verify the change took effect, run bcdedit /enum {current} again and confirm the entries appear as set.
To revert all changes:
bcdedit /deletevalue useplatformclock
bcdedit /deletevalue disabledynamictick
bcdedit /deletevalue useplatformtick
Real-World Performance Impact
The performance impact of disabling HPET varies by system and game:
Systems most likely to benefit:
- Intel 6th through 10th generation CPUs where HPET overhead is more pronounced
- Systems running competitive games with engine loops that call
QueryPerformanceCounterat very high frequency (CS2, Valorant, older Source engine games) - Systems experiencing timer-related stutter or irregular frame pacing
Systems where impact is minimal:
- AMD Ryzen 5000 and 7000 series with modern Windows 11 drivers
- Intel 12th generation and later (Alder Lake+), where TSC is the default and HPET overhead is already minimized
- Games with frame caps via RTSS or DXGI that decouple the game loop from timer precision
Typical benchmark differences are in the range of 1–5 FPS average in CPU-bound scenarios, with 1% low improvements of 2–8 FPS being more common. Frame time consistency (measured as 99th-percentile frame time) shows the clearest improvement in competitive titles.
When to Leave HPET Enabled
Disable HPET on gaming-only systems. There are legitimate reasons to leave it enabled:
- Audio production software — DAWs like Ableton Live and FL Studio rely on high-precision timers for MIDI and audio scheduling. Disabling HPET can introduce audio glitches.
- Virtual machines — Hyper-V and VirtualBox guests sometimes use HPET for guest clock synchronization. If you run VMs, test carefully.
- Older hardware — On pre-Haswell Intel systems where TSC is not invariant, HPET may actually provide better timer accuracy than TSC.
- Scientific or measurement software — Any application that depends on precise elapsed-time measurement should be tested before committing to HPET-off settings.
The correct approach is to disable HPET, benchmark your specific games with a tool like CapFrameX to capture frame times, and re-enable it if you see no improvement or a regression. Treat it as a hypothesis to test, not a guaranteed win.