Another look at HPET High Precision Event Timer

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

  1. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,169
    Likes Received:
    4,951
    GPU:
    GeForce GTX 1070
    You talk nonsense. We are talking about Message Signalled Interrupts. If device uses more than one Message Signalled Interrupt Device manager will show multiple IRQs (interrupts) for the device. If Device manager doesn`t show multiple IRQs for device then only one Message Signalled Interrupt is used. No matter what the limit settings shows.
    Period.

    PS Queue for storage controller has nothing to do with MSI.
     
  2. X7007

    X7007 Maha Guru

    Messages:
    1,451
    Likes Received:
    10
    GPU:
    Inno3D 1080GTX
  3. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,169
    Likes Received:
    4,951
    GPU:
    GeForce GTX 1070
    MSI-X is just further development of MSI. Both MSI and MSI-X were introduced back on old PCI bus. They do differ only in numbers, they do not differ in principle. When I write "MSI" I do not distinguish them.

    I have looked SolarFlare 8xxx description on the OEM`s site, and there were no mentions of any queue of 2048. There was mentioning of MSi-X and RSS - receive side scaling - the technology coupled with MSI. (https://docs.microsoft.com/en-us/wi.../network/introduction-to-receive-side-scaling)
    Overall this network controller is for servers with serious workload. So if you do not use server version of Windows you will not see MSI in action. I have seen multiple MSI for one device (network and RAID controller) only on server edition of Windows.
     
  4. Samus01

    Samus01 New Member

    Messages:
    5
    Likes Received:
    1
    GPU:
    MSI GTX 1080TI
    hey guys, I need your help, Im new to this hpet stuff and trying to check out what the best results are for me with my older msi z97 gaming 7 motherboard on windows 10 / 1903 (os build 18362.418)

    I disabled hpet in bios, used in windows "useplatformclock no" and "disabledynamictick yes" in idle current timer resolution changes between 1,xxxx / 3,xxxx / 4,xxxx / 5,xxxx or max 15,6237 ect when watching a 1080p60fps twitch stream it will be 0,9996 all the time it seems. Do I use the right settings for best results?

    [​IMG]

    also the 2 commands: "deletvalue useplatformclock" and "useplatformclock no" is it the same when hpet is disabled in bios anyway? Or whats the difference? Also I read that "disabledynamictick" is power saving for laptops/tablets so its okay to disable it here right?

    thanks in advance
     

  5. Mustang104

    Mustang104 Active Member

    Messages:
    64
    Likes Received:
    8
    GPU:
    nVidia 2080 RTX
    Take a look at this video Samus01

     
  6. mbk1969

    mbk1969 Ancient Guru

    Messages:
    8,169
    Likes Received:
    4,951
    GPU:
    GeForce GTX 1070
    @Samus01
    Ignore the video above, use "disabledynamictick yes" and do not bother with "useplatformclock no".
     
    Samus01 likes this.
  7. Samus01

    Samus01 New Member

    Messages:
    5
    Likes Received:
    1
    GPU:
    MSI GTX 1080TI
    ok, so my msi z97 boards bios default is hpet enabled, when I installed windows 10 it looked like it did not forced hpet, now for testing I disabled hpet in bios and when I check in /bcdedit /enum it shows me that "useplatformclock No" and "disabledynamictick Yes" which steps exactly should I do now? "deletevalue /set useplatformclock"? to reset the "useplatformclock no"?
     
  8. Astyanax

    Astyanax Ancient Guru

    Messages:
    3,876
    Likes Received:
    1,084
    GPU:
    GTX 1080ti
    No is the same as not existing.
     
    Samus01 likes this.
  9. MrBonk

    MrBonk Ancient Guru

    Messages:
    2,974
    Likes Received:
    72
    GPU:
    MSI RTX 2080
    With my Ryzen 2600x I discovered recently that enabling HPET significantly harmed performance in PCSX2, specifically when enabling Vsync or using ScanlineSync (And setting Sync Timeout to 0 to avoid tearing). I would be getting 100-200% performance (100% being full speed) but turning on Vsync or SS caused the framerate to drop significantly to 30-40FPS instead of 60FPS(100%). I couldn't figure out why this was happening but then I remembered turning on HPET to test if Crysis 1 would get slightly better performance with HPET on since it's so CPU choked. (It did seem to help smooth out certain scenarios).

    Turning off HPET fixed this problem with PCSX2 and Scanline Sync though not completely. It is significantly better, but it sucks that I can basically get full speed performance, but as soon as some kind of Vsync is turned on performance drops in certain scenarios if you aren't getting in excess of 90-100+FPS (80FPS and below will cause the drop) Turning Sync Timeout on allows it to tear when it can't keep it 100% which is annoying but it's better than slowdown.
     
  10. Samus01

    Samus01 New Member

    Messages:
    5
    Likes Received:
    1
    GPU:
    MSI GTX 1080TI
    alright so after some tests and several 13minute latencymon runs it seems like it doesnt matter if hpet is enabled or disabled in my bios when I let windows 10 do its own thing which seems to be disabling hpet anyway, the only thing that had an impact on my msi z97 gaming 7 / i7 4790k was "disabledynamictick yes" which removed the ntoskrnl.exe spikes up to 0,300+ in latencymon with windows 10 (1903 build 18362.418), now it is basically around 0,100 / 0,150ish max. Here a few pictures about the results on my PC: https://imgur.com/a/mHqvsXK
     
    Last edited: Nov 1, 2019

  11. Astyanax

    Astyanax Ancient Guru

    Messages:
    3,876
    Likes Received:
    1,084
    GPU:
    GTX 1080ti
    turning off hpet causes benchmarks to cause false results on ryzen
     
  12. alexander1986

    alexander1986 Member Guru

    Messages:
    193
    Likes Received:
    18
    GPU:
    RTX 2060

    what is interesting to me is that on my system, enabling HPET massively decreases fps in benchmarks like timerbench (unreal engine based fps test) and also, doing the following things seem to improve latencymon readings quite drastically:

    - set my gfx card to message signaled interrupt mode with the app made by @mbk1969 (at least completely removes ISR spikes, don't know what that means in practice or terms of responsiveness)

    - set windows timer resolution to 0.5 ms

    - keep my gfx card at turbo boost clock at all time even when idle with MSI Afterburner (otherwise downclocks under light gpu load, as i'm gaming on low quality/competitive graphics settings in Fortnite for example it happens that clocks go down sometimes if I don't do this)


    5 minute idle on desktop screenshot of latencymon:

    [​IMG]



    this is on win 10 1903/18362.449 with nvidia 436.15 driver , dxgkrnl.sys hovers around 50 us DPC routine execution time constantly, and then once every couple minutes ntoskrnl.exe spikes to around the value you see in my screenshot, only thing I set in bcdedit is disabledynamictick yes (and disabled hpet in device manager, unsure if that is actually doing anything in practice, probably not)


    updating nvidia driver to newest version decreases spikes further if I recall correctly, but introduces framestutters for me when "low latency" is set to "ultra" in nvidia driver, the driver i'm using now, 436.15 does not have this problem, atleast in Fortnite..


    its strange how setting timer resolution and manipulating idle clocks on the gfx card affects the latency mon readings imo, idk if any of it is relevant to gaming but the better the latencymon readings look the better it should theoretically be in games?


    am temped to test the latest insider build of win10 (20h1 / 19013 I believe) and redo the test with nvidia 436.15 driver vs newest nvidia driver, etc..
     
  13. Astyanax

    Astyanax Ancient Guru

    Messages:
    3,876
    Likes Received:
    1,084
    GPU:
    GTX 1080ti
    HPET doesn't affect real benchmarks at all, apart from making them work correctly on ryzen.
     
  14. alexander1986

    alexander1986 Member Guru

    Messages:
    193
    Likes Received:
    18
    GPU:
    RTX 2060
    You are wrong.

    on my system the following happens in real benchmark / in Fortnite (both using unreal engine) with hpet on vs off:


    HPET ON timer bench and fortnite ingame menu fps with unlimited framelimit set: (look at lower left corner on the ingame screenshot to see fps)

    [​IMG]


    [​IMG]




    HPET OFF timerbench and fortnite ingame menu fps with unlimited framelimit set:







    [​IMG]


    [​IMG]



    Result:

    HPET ON: timerbench fps = 294 , ingame menu fps = 116

    with HPET OFF: timerbench fps = 1086 ingame menu fps = 584


    that is a difference of ~800 fps in the "synthetic" timerbench benchmark (while running, it renders a predetermined scene using the unreal engine, and when done gives the results I posted)
    and a difference of ~500 fps in the real ingame actual fps, not only this, loading up the game with HPET ON takes several minutes, compared to under 1 minute with HPET OFF, and everything is delayed and stuttering while in a match, totally unplayable.


    also, just simple tasks such as opening web browser, browsing, navigating windows explorer, etc, is super stuttery and delayed/hitching with HPET ON compared to HPET OFF.

    this is on my system, and my combination of hardware / software, just saying, to me, the computer is more or less unusuable with HPET ON, both in real benchmarks, games, and just at desktop.


    specs: i7-9700k / rtx 2060 / 2x8 gb 3200mhz ram / ssd disk / win10 1903 all latest updates ( and timer resolution set to 0.5 ms / gfx card at turbo boost clocks )


    nothing else except hpet ON vs OFF was changed for these tests.
     
  15. Astyanax

    Astyanax Ancient Guru

    Messages:
    3,876
    Likes Received:
    1,084
    GPU:
    GTX 1080ti
    if you're clicking the "enable hpet" button, which is misnamed and incorrect in itself, you are forcing hpet as the overall system clock

    This is completely wrong to do, not necessary and whilst not affecting peak fps, will affect averages as the timer is not on the cpu or chipset.

    HPET is enabled regardless of what this buttons state is and the system can use it if it needs it.
     

  16. MrBonk

    MrBonk Ancient Guru

    Messages:
    2,974
    Likes Received:
    72
    GPU:
    MSI RTX 2080
    It's disabled by default with Ryzen anyway? (It certainly wasn't enabled when I first installed this CPU and I had to manually enable it recently. This is only Windows 7 though as I haven't tested in my W10 drive. Though I did run several of the same benchmarks on both when I first built the system. Results are mostly identical save a few scenarios.)
    I tested by using setplatformclock and verifying with WinTimerTester. Performance in this specific scenario is much worse with HPET enabled than without. It's the difference between making a specific game playable or unplayable with PCSX2 due how CPU performance seems to choke with any kind of Vsync enabled.

    And Anandtech tested this didn't they?
    https://www.anandtech.com/show/12678/a-timely-discovery-examining-amd-2nd-gen-ryzen-results
     
  17. Astyanax

    Astyanax Ancient Guru

    Messages:
    3,876
    Likes Received:
    1,084
    GPU:
    GTX 1080ti
    the bcdedit settings do not show whether hpet is available, only whether it is forced as the overall platform clock.

    Windows will use several timers including hpet as needed.
    with Ryzen hpet is used to synchronise the system timers again after resuming from sleep.
     
  18. MrBonk

    MrBonk Ancient Guru

    Messages:
    2,974
    Likes Received:
    72
    GPU:
    MSI RTX 2080
    What about the BIOS button for HPET? Enabling or disabling that doesn't seem to change anything either.

    Either way disabling platform clock reduces the problem I have observed. I have save states in the exact location the issue occurs and can easily A/B verify it.
     
  19. alexander1986

    alexander1986 Member Guru

    Messages:
    193
    Likes Received:
    18
    GPU:
    RTX 2060
    all I am saying and showing with the numbers and benchmarks is that HPET should never be used / set as the platformclock for gaming, it doesn't matter if I enable HPET via the button in timerbench or via bcdedit /set platformclock yes/true + reboot, the results and benchmark numbers are identical between these two methods, horrible performance in games and general usage of the pc when hpet is set as platformclock,


    I know windows in a default state after installation does not have the platform clock value set, for what apps/scenarios windows does use HPET I do not know and frankly it doesn't matter to me at all, but setting HPET as the platformclock via bcdedit or other method is a big no-no for gaming, thats all my benchmark numbers are showing, theres a lot of nonsense on the internet with optimization guides telling people to enable HPET via bcdedit for "smoother gaming" when it couldn't be farther from the truth.


    I don't know if disabling hpet via device manager does something in practice also but thats how i've ran my system for many months now and all is good, disabling it in bios as well if the option is there is great to do imo, would still be interesting to know in what scenarios windows actually does use hpet, in any case my post is to show how it tanks performance in gaming when being used as the platform clock.
     
    Last edited: Nov 1, 2019
  20. janos666

    janos666 Master Guru

    Messages:
    689
    Likes Received:
    51
    GPU:
    MSI GTX1070 SH EK X 8Gb
    I think I also had a "phase", probably around 2015 or so, when I thought some games ran better with useplatformclock=true but eventually stopped using it. The initial positive opinion was probably placebo but I don't think I could ever prove it to be significantly worse either.

    If you click on it you will see it doesn't use any driver files, so it's probably on the device list for the purpose of indicating it's existence and nothing more. I think you can only disable the drivers, not the actual devices with Device Manager, so disabling this driver-less device there probably won't stop it from functioning (the OS will still be able to use it if it wants to).
     
    alexander1986 likes this.

Share This Page