Misconceptions about timers (HPET, TSC, PMT...)

What do useplatformclock and useplatformtick do?

useplatformclock disables TSC and uses the platform source clock instead (HPET or PMT). PMT is used when HPET is disabled in BIOS.

useplatformtick disables TSC tick and uses the platform source tick instead (RTC).

Does disabledynamictick work when useplatformtick is used?

No, it does not do anything since RTC is not a dynamic tick counter.

Is it good to disable HPET in BIOS for gaming?

No, it's not good to disable HPET in BIOS for gaming, unless you're trying to use PMT.

Windows uses TSC, a timer that is in your CPU. TSC is a synthetic timer and depends on your CPU entirely. The CPU has, usually not clearly visible, stalls of a few nanoseconds every now and then. This is one characteristic that makes the timer not accurate and makes it a synthetic timer. These stalls actually  make the timer stop for a few nanoseconds every now and then. Additionally, if your TSC timer is variant, it will vary its execution. On a certain interval, TSC will use HPET in order to sync the timer back and prevent desynchronization. TSC cannot sync by using PMT since it does not have the technical capabilities to do that and was not designed to offer such behavior: this will lead to global desynchronization overtime. The synchronization interval depends on the timer resolution setting in your system (can be 0.5 ms down to 15 ms for most systems) and how much frequently the timer goes out of sync. Using TSC without HPET can also lead to clock skews: it is possible that this behavior can be mistaken with a speedhack cheat by some anticheats if you're playing for a few hours in a row! If you're trying to use PMT as a platform source, you need to disable HPET first.

Why do I get stutters when HPET is enabled in BIOS?

This has to do with how much frequently TSC has to synchronize with HPET and how much time it takes to sync. These stutters can be caused by high ISR/DPC latencies. ISR/DPC latencies are generally not a problem when you're idling, unless you disabled power saving of all your devices. You should fix those rather than disabling HPET because, in your specific case, disabling HPET will stop the stutters, but will prevent TSC from syncing with a platform source which will lead to global desynchronization overtime.

HPET + useplatformclock - is it good?

No, it's not good. Might be good for certain legacy applications.

Unless you need to run a very very certain and specific program that requires HPET, useplatformclock + HPET is not suggested. HPET should only used as a platform source for synchronization purposes or different purposes when actually required. While TSC runs at an average frequency of 3 MHz, depending on your processor characteristics, HPET is a high precision timer, and can run at up to 22 MHz on modern computers! This makes your computer perform poorly due to using HPET when not needed. Such a level of precision is not required on every single application and will slowdown your computer's performance.

PMT + useplatformclock - is it good?

It's good for legacy applications.

PMT is an outdated system timer, though, old games and things like old framerate limiters will benefit from PMT. Although being an outdated timer, PMT runs at a standard fixed frequency of 3.580 MHz, and some developers might develop their engines or features to run on PMT. In this case, using PMT as a source timer will fix incompatibilities. It is good for games like Saints Row 2, which will run in speedmotion unless PMT or HPET is used as a source timer on the whole system. PMT is more latent than TSC and this will cause problems when usign certain modern features. For instance, when using a 8000 Hz polling rate mouse at its highest polling rate, you may notice that some games will actually stutter when you move the mouse. The Source Engine and other games like The Sims 4 use an outdated method to cap framerate, so in this case it might be good to use PMT in order to prevent fluctuations.

useplatformtick - is it good?

It's good for legacy applications.

useplatformtick will force the use of RTC, which is an outdated tick. Not being a dynamic tick and not having smart compute optimizations it will actually decrease your system's performance, even if not massively. Modern applications may get affected by RTC. When using a 8000 Hz polling rate mouse at its maximum polling rate you might get stutters in certain games.

Does Intel have issues with HPET + useplatformclock?

No, it doesn't. All processors have "problems" when using HPET as the system timer.

It is a common misconception to believe that AMD does not suffer from performance decrease when using HPET as a platform clock. This is simply not true, the performance drop is similar if not even the same. If you don't believe this, well, test it yourself.

Why do I get lower latency when using PMT and/or RTC?

You don't.

You're not getting lower latency when using PMT (HPET off + useplatformclock) / RTC (useplatformtick). Your decrease in latency might come from 3 most common factors:

How do I use certain combinations of clocks and ticks?

TSC + TSC without desync: bcdedit /deletevalue useplatformclock - bcdedit /deletevalue useplatformtick - make sure HPET is enabled in BIOS

TSC + RTC: bcdedit /deletevalue useplatformclock - bcdedit /set useplatformtick Yes

HPET + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes - make sure HPET is enabled in BIOS

PMT + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes - make sure HPET is disabled in BIOS