1 Reply Latest reply on Jan 3, 2018 7:46 PM by blazek

    HPET on Windows 10?

    marekbujko

      Hello,

      I noticed that Windows 10 does not use default HPET (High Precision Event Timer), but TSC (Time Stamp Counter).

      Bcdedit had a given value: useplatformclock yes

      So I deleted it: bcdedit /deletevalue useplatformclock

      for disable HPET (AMD A10-6800K, Asus F2A85-V PRO).

      My second PC with AMD FX 8350 (spec bellow) have default without useplatformclock value.

      I also turned it off in BIOS -> HPET in time menu (Gigabyte motherboard, but some boards do not have this option, it's turned off only in Win 10).

      I tested it on WinTimerTester program, where I had a HPET QueryPerformanceFrequency 14 MHz (AMD A10-6800K, Asus F2A85-V PRO). When I switched HPET off so it was only 3.9 MHz and the games go better, without microshuttering, higher FPS. Why is that so?

      What are the overall advantages and disadvantages of HPET? Why does HPET have such a big and bad impact on games in Win 10?

       

      • Desktop System
      • CPU/APU: FX-8350 @ 4.2 GHz
      • AMD GPU: reference Sapphire RX 480 8 GB
      • OS: Windows 10 64 bit - Fall Creators Update
      • Driver version installed: Radeon Software Adrenalin Edition 17.12.1
      • Display: custom LVDS, LG panel - HDMI - 1920x1080 @ 60 Hz
      • Motherboard: Gigabyte GA-990XA-UD3 R5
      • PSU: EVGA 600B1
      • RAM : 8 GB
      • SSD: 500 GB Samsung EVO 850
      • HDD. Seagate Barracuda 7200.14 (2016)
        • Re: HPET on Windows 10?
          blazek

          The way HPET is implemented is resource intensive and will slow the CPU down (a lot of memory reads and writes). It was an improvement for older CPUs, but for more than 10 years modern AMD and Intel CPUs support better ways if keeping time.

           

          On modern Windows operating systems (Vista, 7, 8, 10) the OS defaults to the best available timer and that usually isn't HPET. You need to force HPET enabled to use it. HPET is really only needed for compatibility purposes (older games and applications).

           

          In case of Windows 8 and 10, you need to enable HPET when using Ryzen Master, because in AMD CPUs the TSC is tied to the base clock (P0 state). When you change the base clock while the OS is running you break the UI compositor (Aero), so you get a black screen. Windows 7 can run without hardware accelerated Aero, so it can fall back to that.

           

          HPET runs independently from TSC, so you can enable HPET, use Ryzen Master to test the desired overclock, disable the HPET, and finnaly set up the OC parameters in BIOS. That way you don't lose performance to HPET.

          4 of 4 people found this helpful