Jump to content



Photo

  • Please log in to reply
150 replies to this topic

#1 hardbag

hardbag

    Neowinian

  • Joined: 22-September 01

Posted 08 May 2012 - 10:33

By default Windows 7 uses different timers in the CPU to calculate stuff. HPET is the newest and best of these timers, but because of default combination of timers it takes longer time for CPU to keep up all the timers and sync between them. Forcing Windows to use HPET only improves performance and leads to greater FPS.

Steps to enable this tweak:

1. Enable HPET in BIOS. If you have HPET option in BIOS then your hardware can support HPET.

2. Enable HPET in Windows by giving this command in admin credential CMD:
bcdedit /set useplatformclock true

3. Reboot


#2 limok

limok

    Neowinian

  • Joined: 20-May 04
  • Location: Manchester, UK
  • OS: Windows 8.1
  • Phone: Galaxy S4, iPhone 5

Posted 08 May 2012 - 10:37

Any proof to back this up, reviews, benchmarks?

#3 Detection

Detection

    Detecting stuff...

  • Joined: 30-October 10
  • Location: UK
  • OS: 7 SP1 x64

Posted 08 May 2012 - 10:48

Last I heard, disabling HPET in the BIOS actually improved gaming by reducing lag and micro stutter, which would mean Win 7 already uses it without that command

#4 OP hardbag

hardbag

    Neowinian

  • Joined: 22-September 01

Posted 08 May 2012 - 11:16

Enabling HPET in BIOS is just half way of enabling HPET, it needs to be enabled in OS too, and in a way that it's the only timer used.

By default windows uses combination of TSC+ACPI timers, not matter if HPET is enabled in BIOS.

TSC+LAPICs Low performance (slow timers + syncing)
LAPICs low performance (slow timer - no syncing)
TSC+HPET medium performance (slow and fast timer + syncing)
HPET high performance (fast timer - no syncing)

HPET + platformclock=true will give you best timer resolution, frame rate and lowest DPC latency.

You can test timer ratio and QueryPerformanceFrequency with WinTimerTester 1.1 http://www.mediafire...xzo9n84d8lze9nb
The higher the QueryPerformanceFrequency is the better is performance. You only get high frequency with HPET. The other timers will give you significantly less frequency. Also note that if your ratio is not 1.0000 you are off set (or you have wrongly OC'ed), enable HPET and you should be without sync problems.

If you ever want to go back to default timers admin cmd:
bcdedit /deletevalue useplatformclock

Varying depending on setup, one should get increase up to +30 FPS and from the between.Online games is a good example of boost from HPET.

#5 OP hardbag

hardbag

    Neowinian

  • Joined: 22-September 01

Posted 08 May 2012 - 11:26

TSC+LAPICs Low performance (slow timers + syncing) = 2.76MHz
LAPICs low performance (slow timer - no syncing) = 3.5Mhz
TSC+HPET medium performance (slow and fast timer + syncing) = 3.8Mhz
HPET high performance (fast timer - no syncing) = 14.3MHz

Run the WinTimerTester 1.1 to see your QueryPerformanceFrequency
Then try with HPET, you'll be amazed.

#6 Detection

Detection

    Detecting stuff...

  • Joined: 30-October 10
  • Location: UK
  • OS: 7 SP1 x64

Posted 08 May 2012 - 11:27

Enabling HPET in BIOS is just half way of enabling HPET, it needs to be enabled in OS too, and in a way that it's the only timer used.

By default windows uses combination of TSC+ACPI timers, not matter if HPET is enabled in BIOS.

TSC+LAPICs Low performance (slow timers + syncing)
LAPICs low performance (slow timer - no syncing)
TSC+HPET medium performance (slow and fast timer + syncing)
HPET high performance (fast timer - no syncing)

HPET + platformclock=true will give you best timer resolution, frame rate and lowest DPC latency.

You can test timer ratio and QueryPerformanceFrequency with WinTimerTester 1.1 http://www.mediafire...xzo9n84d8lze9nb
The higher the QueryPerformanceFrequency is the better is performance. You only get high frequency with HPET. The other timers will give you significantly less frequency. Also note that if your ratio is not 1.0000 you are off set (or you have wrongly OC'ed), enable HPET and you should be without sync problems.

If you ever want to go back to default timers admin cmd:
bcdedit /deletevalue useplatformclock

Varying depending on setup, one should get increase up to +30 FPS and from the between.Online games is a good example of boost from HPET.


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.


http://forums.nvidia...howtopic=183329



Without changing any settings in the BIOS or the OS, and with HPET enabled in the BIOS as normal I get this

Posted Image

#7 OP hardbag

hardbag

    Neowinian

  • Joined: 22-September 01

Posted 08 May 2012 - 11:35

^Because if you enable HPET in BIOS you will mix it with other timers and CPU needs to sync between them. You need to force HPET only and reboot. Mixing HPET with other timers is not good, but using HPET only will give you best performance. People don't know about that Windows needs to be forced to use HPET only - that's why the bios setting alone can undergrade their performance.


bcdedit /set useplatformclock true (then reboot) enable HPET
bcdedit /deletevalue useplatformclock (then reboot) disable HPET

#8 OP hardbag

hardbag

    Neowinian

  • Joined: 22-September 01

Posted 08 May 2012 - 11:43

Without changing any settings in the BIOS or the OS, and with HPET enabled in the BIOS as normal I get this

Posted Image


You are using TSC+HPET. Try with HPET only (bios and OS setting) you should get something like 14.xMhz for queryperformancefrequency.

#9 Detection

Detection

    Detecting stuff...

  • Joined: 30-October 10
  • Location: UK
  • OS: 7 SP1 x64

Posted 08 May 2012 - 11:45

^Because if you enable HPET in BIOS you will mix it with other timers and CPU needs to sync between them. You need to force HPET only and reboot. Mixing HPET with other timers is not good, but using HPET only will give you best performance. People don't know about that Windows needs to be forced to use HPET only - that's why the bios setting alone can undergrade their performance.


bcdedit /set useplatformclock true (then reboot) enable HPET
bcdedit /deletevalue useplatformclock (then reboot) disable HPET


Ok so I enabled it, rebooted

Posted Image


First things I notice are it took twice as long to finish loading the desktop and gadgets

Mouse pointer has a ghost trail now like I am using a cheap LCD with 20ms response rate


What exactly is "queryperformancefrequency" ? and how does it effect the OS ?

#10 OP hardbag

hardbag

    Neowinian

  • Joined: 22-September 01

Posted 08 May 2012 - 12:02

queryperformancefrequency is frequency of high resolution timer performance counter, timers are different as I have explained above, and better/higher the timer frequency the better responsive the system is. With HPET enabled in BIOS and OS you can achieve highest timer performance resluting in better responsive system.

#11 xendrome

xendrome

    In God We Trust; All Others We Monitor

  • Tech Issues Solved: 9
  • Joined: 05-December 01
  • OS: Windows 8.1 Pro x64

Posted 08 May 2012 - 12:11

This "tweak" is depending on each hardware setup. Some people say it slightly speeds things up, others start having micro-stutter in multimedia/3d gaming, especially SLI setups. the DPC latency goes through the roof and limits the FPS in the games. Best thing to do is try it for yourself, do some benchmarks and see what happens, if your system runs fine now. Leave it alone would be my advice.

#12 Jub Fequois

Jub Fequois

    Owlblood

  • Joined: 06-June 04
  • Location: London, UK
  • OS: OS X, Windows
  • Phone: Nexus 5

Posted 08 May 2012 - 12:13

Mouse pointer has a ghost trail now like I am using a cheap LCD with 20ms response rate


Same for me.

#13 OP hardbag

hardbag

    Neowinian

  • Joined: 22-September 01

Posted 08 May 2012 - 12:16

Enabling HPET in BIOS mixes HPET with other timers - needing the CPU sync between the timers resulting in compromised performance. If WIndows is forced to use HPET only (in bios and os) it in modern system results in higher performance, higher FPS and better DPC.

Test and try what suits you.

#14 Jub Fequois

Jub Fequois

    Owlblood

  • Joined: 06-June 04
  • Location: London, UK
  • OS: OS X, Windows
  • Phone: Nexus 5

Posted 08 May 2012 - 12:21

Enabling HPET in BIOS mixes HPET with other timers - needing the CPU sync between the timers resulting in compromised performance. If WIndows is forced to use HPET only (in bios and os) it in modern system results in higher performance, higher FPS and better DPC.

Test and try what suits you.


I had mouse ghosting and other nice things when doing it "your" way. Disabling HPET is the best way for me on a Sandy Bridge-E CPU and an ASUS Sabertooth motherboard.

#15 OP hardbag

hardbag

    Neowinian

  • Joined: 22-September 01

Posted 08 May 2012 - 12:27

commands:


bcdedit /set useplatformclock true (then reboot) enable HPET
bcdedit /deletevalue useplatformclock (then reboot) disable HPET

TSC+LAPICs (useplatformclock false)*
LAPICs (useplatformclock true)**
TSC+HPET (useplatformclock false)***
HPET (useplatformclock true)****

* Windows default.

**platformclock=true and HPET disabled in BIOS will default to LAPICs, which is good compared to TSC, but doesn't not have not so high resolution and so low DPC latency as HPET.

*** Windows default with HPET enabled in BIOS.

**** HPET enabled in BIOS and in OS.



Click here to login or here to register to remove this ad, it's free!