TimerBench: The HPET bug

C++ MFC Unreal Engine CPUs Benchmarking

In 2017 Intel has released their latest high-end platform called Skylake X. While reviewing the back then unreleased CPU I found a bug in their implementation of the High Precision Event Timer. It was considerably slower than on other platforms and influenced all benchmark results when enabled. To analyze the cause of the problem I wrote a benchmark tool called TimerBench. This anomaly is now widely known as "The HPET bug".

TimerBench tests the theoretical and gaming performance of Windows' timer facility "QPC" (QueryPerformanceCounter) to compare different timer settings. The game test uses Unreal Engine 4 and DirectX 11.

Another important aspect of TimerBench is its capability to inject a DLL into running applications to count invocations of various Win32 timer functions. This feature allows to analyze performance problems due to heavy timer usage as well as benchmark security and timer reliability issues.

The benchmark has been downloaded more than 100,000 times since its launch.