Another look at HPET High Precision Event Timer

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by Bukkake, Sep 18, 2012.

  1. Astyanax

    Astyanax Ancient Guru

    Messages:
    11,021
    Likes Received:
    4,080
    GPU:
    GTX 1080ti
    Every increment of the mouse fires an interrupt, forcing the system to only use HPET raises the amount of interrupts processed per the tiniest movement of the mouse, you can actually measure this with WPR in interrupts being processed at a higher rate, dpc can also increase as a result.

    In the case of high cpu usage and especially the high creation and destruction of threads it can make the mouse not responsive or not react with any precision at all.

    The "mouse smoothing" reported by people who force the platform clock are actually suffering higher latency / buffered input, rather than experiencing better mouse performance and those sensitive to mouse floating will detect it easily in the conditions it comes about.

    I fell victim to the "use platformclock" for better gaming too back in the noughties and games that tax the cpu harder are most likely to demonstrate this.
    Mouse float that people typically blame on their frametimes or buffered frames.
     
  2. X7007

    X7007 Ancient Guru

    Messages:
    1,636
    Likes Received:
    38
    GPU:
    Sapphire 6900XT
    use platform tick is not useplatformclock.
    the hpet clock used is when using the 2nd command. and when checking I still using the 10 mhz clock of windows 1909.
     
  3. Astyanax

    Astyanax Ancient Guru

    Messages:
    11,021
    Likes Received:
    4,080
    GPU:
    GTX 1080ti
    "Forces the clock to be backed by a platform source, no synthetic timers are allowed. The option is available starting in Windows 8 and Windows Server 2012."

    It uses HPET as the clock generator.

    theres only one thing you want disabled and thats dynamicticks.
     
  4. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,943
    Likes Received:
    8,274
    GPU:
    GF RTX 2070 Super
    I am not convinced because default platform source of clock tick is RTC not HPET.
     

  5. Astyanax

    Astyanax Ancient Guru

    Messages:
    11,021
    Likes Received:
    4,080
    GPU:
    GTX 1080ti
    HPET is used because RTC only supports 32bit counters, and its the only other timer on the system that continuously counts upwards.
     
    tayyar and airbud7 like this.
  6. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,943
    Likes Received:
    8,274
    GPU:
    GF RTX 2070 Super
    You don`t need 64-bit counters (and overall you don`t need counters) to do periodic tick with 0.5 ms of minimum interval. RTC does the job perfectly fine (and did since ancient times).
     
    airbud7 likes this.
  7. Astyanax

    Astyanax Ancient Guru

    Messages:
    11,021
    Likes Received:
    4,080
    GPU:
    GTX 1080ti
    fair enough.
     
    airbud7 likes this.
  8. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,943
    Likes Received:
    8,274
    GPU:
    GF RTX 2070 Super
    My theory is: "useplatformtick yes" forces Windows to fall back into old behaviour using RTC for tick interrupts. That seems most logical choice - to use old reliable mechanics.
    But of course we all only speculate here.
     
  9. Martigen

    Martigen Master Guru

    Messages:
    465
    Likes Received:
    211
    GPU:
    GTX 1080Ti SLI
    RTC? Windows will use the TSC by default on all modern processors (i.e, anything in the last ten years).

    I tried the suggestions of that video posted a few pages back (which is summarised by the disabledynamictick and useplatformtick settings) and used it for two weeks. My conclusion:

    1) I couldn't notice better mouse response one way or the other.
    2) The system would suffer -horrible- stuttering when I/O locked. Even just Windows starting up and auto-load programs would cause the mouse to freeze. After reverting the changes from that video, everything is back to normal. No weird stutters. Note: this is all from RAID 0 SSDs, so I/O bandwidth/IOPs is not the issue.

    This reflects what Astyanax noted above regarding the mouse not being responsive, funnily enough.

    Honestly, Microsoft has learned over the years and I think the days of 'knowing better' are gone. Install Windows clean and let it manage its timers and you'll be better off. It will default to TSC and fallback HPET only in very old systems. As for dynamic ticks.. never noticed an issue. Again, install Windows and let it do its thing. Everything else is placebo.

    You -might- gain something, I guess, by forcing maximum timer resolution to 0.5 using a runtime tool over the default 1.0 that Windows will use under load (yes, it scales accordingly under load.. again, why you don't need to touch it) if you leave the bcdedit policies alone and just force the the timer resolution, but I'll eat my hat if you can tell the difference between 1.0 and 0.5 ms. That's milliseconds ladies. Your brain and your eyes cannot pick this difference up.
     
  10. Astyanax

    Astyanax Ancient Guru

    Messages:
    11,021
    Likes Received:
    4,080
    GPU:
    GTX 1080ti
    disabling dynamic tick is the only change i can get behind, its place is on Laptops, not desktops.
     
    Nastya likes this.

  11. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,943
    Likes Received:
    8,274
    GPU:
    GF RTX 2070 Super
    What is this - locked I/O?
     
  12. Martigen

    Martigen Master Guru

    Messages:
    465
    Likes Received:
    211
    GPU:
    GTX 1080Ti SLI
    Actually I don't know if it was I/O locked, it presumably shouldn't be because the same scenario with the changes reverted is fine, but in appearance the mouse froze during heavy I/O activity while using the settings as outlined in that video. This effect disappeared when reverting to Windows defaults for managing the timers.
     
  13. er557

    er557 Master Guru

    Messages:
    423
    Likes Received:
    17
    GPU:
    2x 1080 sc acx 3.0 sli
    hwbot x265 bench will not run unless you enable platform clock, due to RTC bug on anything before skylake, also other benchmarks such as gpupi have drift issues with other timers
    https://community.hwbot.org/topic/175277-hpet-timer-issues-when-activated/
    So I always enable all four options on my main desktop(hpet, disabledynamic tick, tscsyncpolicy enhanced) and enjoy smooth crash free SLI gaming, albeit keep in mind it equalizes performance bursts and reduces cpu benchmarks results just a tad.
     
    Last edited: Nov 18, 2019
  14. Astyanax

    Astyanax Ancient Guru

    Messages:
    11,021
    Likes Received:
    4,080
    GPU:
    GTX 1080ti
    hwbot is a joke.
     
  15. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,943
    Likes Received:
    8,274
    GPU:
    GF RTX 2070 Super
    But you did not answered my question. What is this thing you called "I/O locked"?

    I did set "disabledynamictick yes" and "useplatformtick yes" after I watched that YT video and I have not witnessed either positive or negative effects, so I game with these two settings just out of rebellious spirit.
     
    er557 likes this.

  16. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,943
    Likes Received:
    8,274
    GPU:
    GF RTX 2070 Super
    Not RTC bug as I remember:
    1) Since Windows (8.1 and 10) uses some enigmatic synthetic timer (I guess some facility inside the CPU but probably outside the cores) for system time, RTC as a timer for system time is dismissed.
    2) System time drift was witnessed only on systems with overclocked (or underclocked) FSB. And RTC is a chip somewhere on the motherboard and in no way is related to FSB (and CPU overall).
    3) If points above are valid you should use "useplatformtick yes" assuming it returns flawless RTC back as system timer.
     
  17. X7007

    X7007 Ancient Guru

    Messages:
    1,636
    Likes Received:
    38
    GPU:
    Sapphire 6900XT
  18. mbk1969

    mbk1969 Ancient Guru

    Messages:
    10,943
    Likes Received:
    8,274
    GPU:
    GF RTX 2070 Super
  19. kurtextrem

    kurtextrem Master Guru

    Messages:
    244
    Likes Received:
    27
    GPU:
    NVIDIA GeForce GTX 970
    While reading through "https://doc.micrium.com/display/osiiidoc/Dynamic+Tick+Mode", why would anyone ever turn off the dynamic tick mode (if you read past "power saving", you'll find it is designed for low profile applications - I don't think games fall into this category)? There is literally no evidence in all of the guides where people say "turn off dynamic tick mode". The only argument that is ever named "then it's not on 0.499, but on true 0.5, because it's not synthetic anymore". And what does it improve/do apart from changing a number by 0.001?
     
  20. jura11

    jura11 Ancient Guru

    Messages:
    2,597
    Likes Received:
    668
    GPU:
    RTX 3090 NvLink
    From my personal experience I can say with disabling HPET in some games performance is better than with HPET enabled, mainly in Crytek Noir Benchmark and ROTTR or SOTTR and several games where HPET disabled have good impact on gaming but for rendering HPET disabled its not the best option in my view or I ratger enable again, didn't done too many tests in Corona or V-RAY Next wgich would confirm my suspicion on that

    Not sure why this affecting more X99 and 5960x in some specific benchmark or games or renderers

    Hope this helps

    Thanks, Jura
     

Share This Page