[Solved]What is wrong with NV drivers? DPC Latency

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by X7007, Jan 11, 2020.

  1. Astyanax

    Astyanax Ancient Guru

    Messages:
    13,276
    Likes Received:
    5,216
    GPU:
    GTX 1080ti
    Everything after Vista uses a complete ntp implementation, you can fine tune the sync rate yourself via regedit.
     
  2. X7007

    X7007 Ancient Guru

    Messages:
    1,725
    Likes Received:
    51
    GPU:
    Sapphire 6900XT
    One thing I'm sure of is that windows randomly change the timer, so if it worked good before it could not work after. I say that because I have i3770K with Windows 10 x64 newest RTM with HT enabled. I have HPET enabled in Bios.

    I am using BlueStacks emulator some android game and I updated to the latest version, I started having issues after a long period of times, we can say it could be windows update or the newest Bluestacks.
    When normally the windows Timer is 1.0ms or 15.625 idle, running Bluestacks makes the timer 0.9765ms, no matter what I do it always like that.
    Now I need to use also Bcdedit /set useplatformTick Yes so it won't be 0.4988 or some other weird timer because the CPU doesn't have TSC or Invariant TSC. the other one is ofc Bcdedit /set disabledynamicTick Yes.

    The game is Raid
    The issue was after a long period of time the program and the game was running when entering some parts of the game menus for example places which need to use some kind of browser data of updated list from other users or some events that keep refreshed, the game would not load the data, menu freeze or just instant crash. Now the only thing I did is changing is Adding Bcdedit /set Tscsyncpolicy Enhanced, and the problem did not happen anymore. I would even have a weird Connection issue every second, saying it could not connect, or some other issues, which clearly is not server issue because for others on the clan it worked fine. even when the ping to everywhere on the internet was fine.

    So clearly whatever windows are doing, it doesn't always the best timer for the system and things will crash or won't work and we won't even understand why.

    So this setting is for stability more than performance, that's why you won't see any performance gains.



    Another thing for the new windows OS someone checked.

    So it seems things will change with the newer OS version

    https://github.com/CHEF-KOCH/GamingTweaks/issues/18


    Final conclusion
    Keep HPET in BIOS enabled (newer BIOS/mobo combinations do not even have the option to disable it anymore since it's enabled all the time).

    Disable Hpet
    bcdedit /set useplatformclock no
    Restart your OS

    Disable synthetic timers
    bcdedit /set useplatformtick yes
    Restart your OS

    • The above stuff only has to be done until 1909 and is NOT needed with 2004 or higher!
    • You can ignore all other mentioned flags mentioned above.
    Best practice:
    Install Windows 2004 now, no need to set other options. If you install another OS (upgrade) from within 2004 you do NOT NEED to change anything anymore. The OS detects it and automatically sets above mentioned "flags".

    Reported "mouse lags" once HPET bios option was enabled is caused because the mentioned flags are not set or the driver (mouse driver) causes itself some "lags" (inaccuracy). In a lot of cases it's also directly related to the software from the mouse which "communicates" to the driver (for e.g. changing settings x), which means the software might causes additional problems or "lags". The best practice here is to to setup your mouse, ave the settings into the mouse internal memory, remove the mouse software.

    Other reported "OS lags" are caused by some problematic KB's or because wrongly configured Windows Defender settings.

    Other considerable "problems" are not reproducible.
     
    Last edited: Feb 20, 2020
  3. dsbig

    dsbig Ancient Guru

    Messages:
    4,062
    Likes Received:
    43
    GPU:
    EVGA RTX 2070
    I find memu is way better emulator .....
     
  4. X7007

    X7007 Ancient Guru

    Messages:
    1,725
    Likes Received:
    51
    GPU:
    Sapphire 6900XT
    This one works, I don't really need something for real gaming, my main computer is AMD 1950x for gaming and movies. The Intel 3700K is just for testing and VM, because to use VM with the AMD I need to disable Hyper-V Protection and I don't want to.
     

  5. PapaJohn

    PapaJohn Master Guru

    Messages:
    267
    Likes Received:
    45
    GPU:
    MSI Gam'Z 3080 12G
    That's weird, I'm stuck on a 3770k system as my main rig with an old 970 and I have no issues. Windows 1909, default bios (hpet on) no alterations apart from my overclock on CPU and RAM. I've had no issues with any software or games (I've played a lot in the past few months) Only one game is my Nemesis, Arkham Knight. It just has mindless stutter regardless of settings, resolution etc...What's even weirder is, I played that very same game on a far lower clocked i7 860 with slow ram and a GTX 980 Ti and was flawless, right up to 4k lol. No stutter in the Batmobile at all.

    Sometimes the realm of logic just does not apply to PC gaming :)
     
  6. Smough

    Smough Master Guru

    Messages:
    807
    Likes Received:
    188
    GPU:
    GTX 1660
    Can you please explain a bit more about Windows 2004? Also, can you disable the Spectre mitigations on it as well? Also, what makes this new version so good? Is is the one you are using right now? How is CPU performance and games on this version?
     
  7. X7007

    X7007 Ancient Guru

    Messages:
    1,725
    Likes Received:
    51
    GPU:
    Sapphire 6900XT
    He means the windows version, 1909 > 2004 build you can always disable Spectre mitigations using a simple registry, here it is, look on google if you want to know more, just copy-paste the registry commands. if you want to disable it easier and safer just use Inspector https://www.grc.com/inspectre.htm

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
    "FeatureSettingsOverride"=dword:00000003
    "FeatureSettingsOverrideMask"=dword:00000003

    I am using official RTM build which is 1909, we need to wait till it's released, you know them all the insider, fast ring, slow rings builds.

    I don't know about the CPU performance, but I think they'll be a bit better because Nvidia has all the new features there with their drivers. not much, but a bit.


    Do you use VM or any virtualization? Do you have Hyper-V enabled? like I said, something happens when using Emulator, it changes the Windows Resolution Timer and those something messes up the program over a long period of time. It could be a bug it could be something else, but we know 100% that the Bcdedit command fixes it.
     
    Smough likes this.
  8. PapaJohn

    PapaJohn Master Guru

    Messages:
    267
    Likes Received:
    45
    GPU:
    MSI Gam'Z 3080 12G
    I do not, hyper v is disabled by default in bios, just checked.
     
  9. X7007

    X7007 Ancient Guru

    Messages:
    1,725
    Likes Received:
    51
    GPU:
    Sapphire 6900XT
    I've found out what it means Bcdedit /set UseplatformTick Yes Which disables Synthetic Timer. it just makes it use RTC
    Can't be sure when we should use it, only maybe old CPU's like 3770K without Invariant-TSC. or when the Resolution Timer is not correct without it. 0.4988 also for I3770K.
    But it seems that I do not need it for AMD 1950x. because the time is correct without it YES

    It also explains why the Timer Resolution changes when using Bluestacks.

    "QUOTE"

    https://bugzilla.redhat.com/show_bug.cgi?id=1465938

    We should consider adding hv_synic,hv_stimer to the recommended cpu flags for Windows guests. Using the synthetic timer instead of RTC chip significantly reduces the number of VM exits.

    RTC timer: ~450 VM exits/second
    Synthetic timer: ~130 exits/second


    https://www.spinics.net/lists/linux-hyperv/msg01324.html

    Some Code that shows what happens

    struct clock_event_device *ce;

    - /*
    - * Synthetic timers are always available except on old versions of
    - * Hyper-V on x86. In that case, just return as Linux will use a
    - * clocksource based on emulated PIT or LAPIC timer hardware.
    - */
    - if (!(ms_hyperv.features & HV_MSR_SYNTIMER_AVAILABLE))
    - return;
    + if (!hv_clock_event)
    + return 0;

    ce = per_cpu_ptr(hv_clock_event, cpu);
    ce->name = "Hyper-V clockevent";
    @@ -127,28 +132,55 @@ void hv_stimer_init(unsigned int cpu)
    HV_CLOCK_HZ,
    HV_MIN_DELTA_TICKS,
    HV_MAX_MAX_DELTA_TICKS);

    =============================================================
    Some good info, NOT ALL TWEAKS ARE GOOD HERE!!!!

    https://github.com/Felipe8581/GamingTweaks

    This really helped me with windows smoothness!
    Write on CMD
    reg add "hklm\system\controlset001\control\prioritycontrol" /v win32priorityseparation /t reg_dword /d 0000002a /f

    42 Decimal = Short, Fixed, High foreground boost. 2A Hex


    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\PriorityControl]
    "Win32PrioritySeparation"=dword:0000002a


    Default is 26
    Write on CMD
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\PriorityControl]
    "Win32PrioritySeparation"=dword:00000026

    reg add "hklm\system\controlset001\control\prioritycontrol" /v win32priorityseparation /t reg_dword /d 00000026 /f

    Some Code explains how resolution timers works

    http://beman.github.io/timer/cpu_timers.html

    [​IMG]
     
    Last edited: Feb 20, 2020
  10. mbk1969

    mbk1969 Ancient Guru

    Messages:
    12,292
    Likes Received:
    10,383
    GPU:
    GF RTX 3060TI
    @X7007

    You mix up completely different things.
    TSC - Time Stamp Counter - is a simple counter. It has value of "0" when CPU is initialized, and then it is incremented with frequency of 3.smth MHz. It can`t be used to track real time, but it can be used to measure the time span between two moments in time.
    RTC - Real Time Clock - is actual clock which ticks even when computer is off (CMOS battery powers it). RTC is used to track real time and it was used as a system timer - the source of periodic interrupt which is called "tick".
    So when you talk about system timer resolution (0.5 through 15.6 ms) you talk about RTC. But in recent builds of Windows RTC was replaced with some synthetic timer - nobody knows what it is.

    PS And priority separation is about different thread priority for background (services) and foreground apps.
     

  11. Maulcun

    Maulcun Member

    Messages:
    17
    Likes Received:
    4
    GPU:
    GTX 1060
    I managed to fix mine. I just download the audio drive through the update system of my motherboard (I had to update the drive through the realtek audio website, but I did not fix my DpC.)... MSI Live Update. I played BF4 for a few hours and everything works perfectly (The Low FPS icon no longer appears). I tried a multitude of possible solutions before the MSI Live Update

    Windows 10, version 1909.

    [​IMG] .

    [​IMG]
     
    Last edited: Apr 4, 2020
  12. Astyanax

    Astyanax Ancient Guru

    Messages:
    13,276
    Likes Received:
    5,216
    GPU:
    GTX 1080ti
    with more mainboard vendors using realtek packages that bundle nahimic, keeping on top of sound drivers is a must,

    out dated nahimic services can cause anything from

    • Low FPS
    • Missing audio or audio that cuts out (while music players play seemlessly no less at the same time)
    • Application Crashes
    • ISR Process to Interrupt Latency.
     

Share This Page