Jump to content

Recommended Posts

Posted (edited)

I've made some benchmarks comparing TSC vs. HPET timers impact for CPU's gaming performance and spoiler: it matters quite a bit.

First a little bit of history/background:

PM Timer (ACPI Power Management timer) is a high-latency timer used in Windows 2000 days, it clocks at 3.579545 Mhz

TSC is a low-latency timer on the CPU, originally, it clocked at the same freq as the CPU, it is used by Windows XP by default

So when CPUs started downclocking to save power TSC would also downclock, that's why with Vista Microsoft opted for:

HPET is a high-latency timer on the motherboard, used by Windows Vista, it clocks at for example 14.31818 MHz on Ivy-Bridge and 19.200000 Mhz on Alder Lake, it is unstable on newer Intel platforms. Vista fallbacks to PM timer when HPET is not available

Invariant TSC is a TSC (low-latency) that always clocks at the CPU's base freq regardless of whether it pawer-saves or turboes, it is used by Windows 7+, but Windows XP can use it too as it would an old-school TSC. On older platforms where TSC is not invariant Windows 7 uses HPET just like Vista

Windows 7 still uses HPET to sync TSC from time to time, but XP can still work stable on newer system without it so Vista should also be able to if forced to use TSC.

 

Benchmarks were performed on 12th gen Alder Lake i5-12600, DDR5-4800MT/s, NVIDIA 3090

Windows 10 has all of it's new security mitigations that impact performance disabled, all systems are debloated, all systems have Meltdown/Spectre patches disabled/ not applited, BIOS patch that allows Vista and 7 to properly use turbo on Alder Lake is applied

The benchmark was Cinebench R15 OpenGL, with a 3090 this benchmark is almost exclusively CPU-bottlenecked

Here are the results (a median run out of 3 for each config), lowest to highest

215.15 FPS - Windows 10 HPET

221.91 FPS - Windows 8.0 HPET

234.92 FPS - Windows Vista HPET

242.84 FPS - Windows 10 TSC

257.58 FPS - Windows 8.0 TSC

 

Vista TSC is dnf cause I don't know of any way to force it to use it, the code could still be there left from XP times.

Vista HPET on ivy-bridge usually scores higher than 10 TSC, but lower than Windows 7 TSC, Windows 8.0 TSC also wins there being marginally better than 7, but I don't have all of those system installed on ivy-bridge to provide a benchmark right now, and these are results I remember from back when I did

 

This make's sense since when I run falco PhenomII Tweaker's Timer Check (Tweaker is only for AMD PhenomII, but timer check is universal), it runs a benchmark of running 1 Million QueryPerformanceCounter calls.

On Alder Lake it takes 2243ms, whiles on Ivy-bridge around 750ms, So Intel's new HPET is around 3 times slower than the old one

 

Now, after @win32 created his new patch for Haswell+ Vista instability Vista is now very much usable on 12th gen Intel - there is absolutely 0 serious crashes but the stability is not yet perfect - 3 services and startup programs still sometimes fail to start.

 

So the question is obviously how to force TSC on Vista for improved stability and performance? :dubbio:

Edited by TSNH
Got longer time in ivy-bridge it's mostly around 700, so Alder Lake's HPET is "just" 3 times slower

Posted
13 hours ago, TSNH said:

after @win32 created his new patch for Haswell+

Where is it!?

 

13 hours ago, TSNH said:

So the question is obviously how to force TSC on Vista for improved stability and performance? :dubbio:

No such setting on either of my motherboards.

HPET is of course always off, every first grader that plays games knows that.

Posted (edited)
6 hours ago, Karla Sleutel said:

Where is it!?

On the LSC patreon site, there is a patcher that edits advapi32.dll from your system, there are also instructions on how to patch it manually. The access to it available only to paid subscribers of the Supermium support, however the patcher itself contains no DRM-like elements

https://www.patreon.com/win32

6 hours ago, Karla Sleutel said:

No such setting on either of my motherboards.

Modern motherboards have no setting to disable HPET, you could modify the BIOS, or I've heard you could disable it when you load Windows using GRUB, myself I've tried neither of those methods yet.

6 hours ago, Karla Sleutel said:

HPET is of course always off, every first grader that plays games knows that.

Windows 7 and up don't use it by default on modern (Nehalem and up I think) systems except from time to time to resync.

Vista does use it as the main timer

https://learn.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-time-stamps

 

Also Windows 7 and newer accept bcdedit entries that control which timer is in use:

https://sites.google.com/view/melodystweaks/misconceptions-about-timers-hpet-tsc-pmt#h.bbv7ue62w883

Vista does not.

 

6 hours ago, Karla Sleutel said:

Vista beats 10 and 8!:cheerleader:

With equal timers used, yes, with a modern Intel HPET that is 5 times slower than it used to be, it loses to systems that are able to utilize TSC.
EDIT: Now I ran this benchmark again on Ivy-bridge and it mostly takes like 700-800 ns, so maybe it's only 3 times slower but still

Edited by TSNH
Posted (edited)

To verify which timer is in use, get falco PhenomII Tweaker and run TimerCheck.exe, not the tweaker's main exe

Read the value right on the top called QPC freq:

PM Timer = 3.579545 Mhz
HPET *classic* = 14.31818 MHz
HPET new Intel = 19.200000 Mhz
TSC = On Win7+ = CPU_BASE_FREQ/1024, On WinXP = CPU_BASE_FREQ, On Win10 1803+ = usually upscalled to 100MHz

 

Edited by TSNH
Posted
On 9/8/2025 at 8:13 AM, TSNH said:

On the LSC patreon site, there is a patcher that edits advapi32.dll from your system, there are also instructions on how to patch it manually. The access to it available only to paid subscribers

Thanks for the info! So you bought this patch from win32 ss? How fo you know it somewhat works? Or it's just rumours, hearsay?

Posted
1 hour ago, Karla Sleutel said:

Thanks for the info! So you bought this patch from win32 ss? How fo you know it somewhat works? Or it's just rumours, hearsay?

Here's a copy paste of a report with my experiences with this advapi32.dll patch, until now being on win32's patreon it was probably also "members only" :

Quote

I've been daily driving Vista on 12th gen Intel Alder Lake for a few weeks and here's my report of how well it works. There are still a few issues with system stability, namely:

1. The following services still sometimes (like 20% of the time) fail to start and have to be started manually: PolicyAgent Schedule Eventlog

2. Changing msstyle theme fails 20% of the time (probably cause the service restarts) - not important, but easy to reproduce

3. Help and Support fails to start 20% of the time (it's being launched by svhost so we're seeing a pattern here) - not important, but easy to reproduce

4. First command prompt windows sometimes take longer to start, subsequent launches are quick

5. Startup programs (like sidebar) sometimes have to be started manually

The following error happened only once so far, so may be unrelated: exporer.exe hanged for a minute,

So far no BSODs, no blackscreens, UAC always works unlike before, so the overall system stability is still pretty good.

I determined that #4 occurs always and only when #1 occurs first, starting those services manually fixes #4

I was probably the first user testing it, there were no comments before.

That's how it was before:

Tons of services failing to start, UAC being super-annoying, USB drivers that used to BSOD the system, with the patch don't

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...