Fix game stutter on Win 10 1703-1809

Discussion in 'Videocards - NVIDIA GeForce Drivers Section' started by Exostenza, Apr 3, 2018.

  1. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    Guess its time to try this by disabling globally.
     
  2. AATT

    AATT Master Guru

    Messages:
    210
    Likes Received:
    20
    GPU:
    GTX1080
    tips?
     
  3. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    So disabling ASLR mitigates it a bit (seen with my own eyes at The Divsion 2, the standby memory does not grow at all and I could actually see the game managing it correctly, this did not happen with Bottom-Up ASLR enabled). Got it. I will stick to this configuration from now on: ASLR disabled and keep using ISLC as I normally would, it doesn't harm anything either way and it refreshes that excess of used memory, so I think its fine. I feel better having it refreshed at programs or apps that have bad memory management and just keep growing the standby memory size, even if they don't stutter, they eventually could. Some games still present issues it looks like so is better to prevent unwanted stutter.

    Now here are some of my observations:

    The games I tried with Bottom-Up ASLR enabled and without ISLC did not stutter but they seemed to keep eating RAM and not flushing it during gameplay as they should. Also the games would often leave zero standby memory free, even so they would not present stutter or very little. With Bottom-Up ASLR disabled and no ISLC the games seemed to handle RAM in a better way, increasing and decreasing usage accordingly. Basically, no more RAM leaks at certain games. So yeah, at least in my case I can say Bottom-UP ASLC does harm performance when it comes to memory management and standby memory allocation.

    Only some games that seem to have special memory allocation (or terrible memory allocation) would make the standby memory list grow and grow and grow during gameplay. This happened to me with Resident Evil 2 for example. However I must mention that game didn't stutter, only at the locations where it loads new assets with a slight fps drop. In that case i'll just keep ISLC active to it flushes the memory from these lousy apps and games.

    Another interesting thing: When closing a more or less demanding game, the standby memory will grow to a big size when CLOSING the game and it will not get flushed unless I use ISLC. Unsolved bug, faulty driver or just Windows being incredibly stupid? Could this be changed by tweaking page file settings?

    Worth mentioning that other games don't require ISLC at all and in fact, makes them run worse or makes them eat more RAM. Metro: Exodus and SW: Battlefront 2 are two examples of this. Those two games still ran flawlessly even with Bottom-Up ASLR enabled, very smooth and stutter free, so I expect them now to run even a little bit better now.

    All of my testings were done on Windows 10 1803 17134.1276, which is the latest compilation for this version.
     
    Last edited: Feb 13, 2020
  4. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    AC: Origins doesn't fill the standby memory, ever with Bottom-Up ASLR disabled: https://imgur.com/a/xjXS2q0 This is the same for some other games, becoming much more responsive and less lags overall, if any. The games load a bit faster on SSD. On HDD I could guess I'd be more or less the same.
    With ASLR enabled, the standby memory would grow a lot and cleared often. BTW, that one time it got cleared was made by me before starting the game.

    The reason why I believe this "bug" is not present before Windows 10 1803/1809 and for some at 1903 is due to the changes made to Windows Defender and ASLR forcing games to cache a lot of memory on the RAM, thus causing obvious stutter. I also believe a lot of people don't experience this issue because they don't use Windows Defender and instead they use a 3rd party Antivirus solution. Of course drivers could still be guilty, but which ones? I would to Google each of my system drivers to isolate the issue. I may do it to see if there are any issues present.

    I see lots of people reporting this has been solved on Windows 10 1909, which makes sense and could be. Maybe the fixed something related to Windows Defender. I don't want to try 1909 anyway: Forced Spectre&Meltdown, forced CPU microcode (means no more 22h microcode for me on Haswell) and an artificial timer of 10.0 MHz for "security" reasons. I won't install a more bloated O.S in exchange for some better memory allocations. If I can work it from 1803 and I believe I can, then I will.

    Doesn't change the fact that some games will keep growing it no matter what and will need clearing to become smoother again. But this seems like a start, ASLR is one of the problems. Could there be any other causes?
     

  5. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    @Smough

    All you wrote about ASLR affecting memory allocations is complete nonsense from theory point of view, because ASLR is about memory layout of (loading) process structures.
    https://blog.morphisec.com/aslr-what-it-is-and-what-it-isnt/
    So after process has started there is no ALSR actions, and no messing with memory allocations made by process.
    According to all descriptions I have read so far.

    But I will not say 'bullshit' because you have witnessed effects for yourself. But I suspect that ASLR is just one factor in combination of many.
     
  6. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,359
    Likes Received:
    1,821
    GPU:
    7800 XT Hellhound
    Having 0 stutter with ALSR default settings in non-broken games with 1909 + recent drivers.
    I'm going to give an older Nvidia driver a try though to verify if they really fixed this issue in their drivers.
     
  7. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    I decided to try this "method" of ASLR because like 4 users in here reported benefits with it off. I honestly have no idea how it affects standby memory, but it does. I wish there was a simple and final solution for standby issues, but is up to MS to come up with something. Also the fact it doesn't affect some users at all its strange. I wish we could just tweak it via O.S, for example a tool from MS or something.
     
  8. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,359
    Likes Received:
    1,821
    GPU:
    7800 XT Hellhound
    It certainly did affect every Nvidia user with 16GB of RAM or less until some time ago.
     
  9. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    Excluding my rig.
     
  10. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,359
    Likes Received:
    1,821
    GPU:
    7800 XT Hellhound
    Can't really imagine that. I tested on very different systems:
    Replaced Pascal with Polaris: Problem disappeared
    Vice versa: Problem reappeared

    Though I found it only in Battlefield 1 really reproducible and I sometimes needed to deliberately fill standby memory (e.g. downloading huge files or copying from external drive onto system drive). Still I hated the possibility of sudden stutter out of nowhere.

    I'm running tests with BF1 right now, stay tuned...
     
    Smough likes this.

  11. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    So this is a combination of nVidia's incompetence and MS not giving a single f**k to fix this. How very nice.
     
  12. mbk1969

    mbk1969 Ancient Guru

    Messages:
    15,541
    Likes Received:
    13,561
    GPU:
    GF RTX 4070
    For all time since I assembled this rig (2012) I had only one game with stuttering - Deus Ex: Human Revolution (on all Windows since Win7). Which was accidentally cured by timer resolution tweak. Which was very ironic to me since I developed a system timer resolution utility long before this game and all this time utility was there just not loaded.
     
  13. aufkrawall2

    aufkrawall2 Ancient Guru

    Messages:
    4,359
    Likes Received:
    1,821
    GPU:
    7800 XT Hellhound
    I'm now very certain that the standby memory bug has been fixed in the Nvidia driver. @Wagnard mentioned that the issue was fixed for him with 436.48, and I even went back to 431.60 to be extra sure to be able to trigger it if the issue wasn't fixed in Windows instead (which it wasn't, as you'll see).

    How to reproduce? With 16GB of RAM, copy random data of ~13GB from external to internal drive. This nicely let's standby memory/cache grow. To add extra difficulty after running the game for some time, delete the copied content on the internal disk and copy again onto it while the game is actually running.

    Results:

    436.48:
    https://abload.de/img/bf1trial_2020_02_13_1b9ktk.png
    https://abload.de/img/bf1trial_2020_02_13_1ydjdi.png
    https://abload.de/img/bf1trial_2020_02_13_1vxktg.png
    https://abload.de/img/bf1trial_2020_02_13_1q7kgj.png
    https://abload.de/img/bf1trial_2020_02_13_1r8jhb.png
    https://abload.de/img/bf1trial_2020_02_13_18mjs7.png

    442.19 (yes, never stutters, screenshots are not cherry picked):
    https://abload.de/img/bf1trial_2020_02_13_1k3koe.png
    https://abload.de/img/bf1trial_2020_02_13_1vkjln.png
    https://abload.de/img/bf1trial_2020_02_13_1atk76.png
    https://abload.de/img/bf1trial_2020_02_13_1b2j48.png
    https://abload.de/img/bf1trial_2020_02_13_1udk8a.png

    Fixed in driver. :)

    Edit: This is with default exploit mitigation, no "tweaks" etc.

    @ManuelG This issue existed since Windows 10 1703. I would have gladly provided any debug information for this reproducible case to help narrowing it down faster.
     
    Last edited: Feb 13, 2020
  14. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    No wonder why I don't see any stutter even with the standby memory at full. However, ASLR makes it not to be filled when playing games, so I guess I'd leave it at that. And games that tend to fill it will get it cleared anyway, I know there are games that get broken if you clean their cache, so 'll keep an eye on that. Old habits die hard and I have developed a "panick" that standby memory must be low all of the time. It harms nothing and i'll keep ISLC active just in case, even so I don't really need it.

    Whenever I feel like it, i'll turn ASLR back on again, turn off ISLC and try my system all day like that to see what happens. Thanks for these tests by the way. I am on 441.87 drivers, so nothing to worry about.
     
    Last edited: Feb 13, 2020
  15. Martigen

    Martigen Master Guru

    Messages:
    534
    Likes Received:
    254
    GPU:
    GTX 1080Ti SLI
    Well it does. The whole point of standby is to cache recently used data in case it is needed again, thereby increasing performance when it is. It's not good if there's been a bug with standby memory and game stuttering, but if that's been fixed it makes no sense to flush your standby memory. Unused RAM is wasted RAM.
     

  16. AATT

    AATT Master Guru

    Messages:
    210
    Likes Received:
    20
    GPU:
    GTX1080
    1809 + latest drivers, best perf here is to cap with rtss, fullscreen with fso default (enabled) and game mode on (.exe on high perf added)

    there are spikes to 20s up to 40s its never flat line, but i guess thats ue4 standard lol, fps drop sometimes by 1-2
     
  17. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    Apparently is for some apps to start faster; on an SSD this sort of caching is irrelevant imo. Cache cleared or not, the performance is always the same. MS should give users the option to set this to a HDD only.
     
  18. Smough

    Smough Master Guru

    Messages:
    984
    Likes Received:
    303
    GPU:
    GTX 1660
    UE4 engine is very bad at some games, however the frametime line should be flat with only a few spikes. If its a literal mess, then something is wrong with your system.

    Don't use RTSS if you are using FSO, doesn't make sense. FSO on games that work properly will give you perfect frame pacing anyway if you enable v-sync without RTSS, remember that FSO is Borderless+Fullscreen combined so it uses Desktop composition at games that work with them. Also keep in mind that FSO breaks certain games, so I'd only use them at games where you feel RTSS is not behaving properly at true Fullscreen with no FSO. You can also try nVidia Framerate limiter on the latest drivers.

    Changing any .exe priority will create instability and issues, let Windows do it and manage it. Don't do that, this is probably why you are seeing even more stutters. Wherever you got recommended to set the .exe to high, is absolute nonsense and people who claim "it solved this or that" are the prime example of stupidity and placebo.

    Also if you are on 1809, just update to 1909, it has tons of bugfixes or just downgrade to 1803, 1709 or 1607. 1709 is one of the best Windows versions according to some reports.
     
  19. Martigen

    Martigen Master Guru

    Messages:
    534
    Likes Received:
    254
    GPU:
    GTX 1080Ti SLI
    Can't tell if serious...

    Doesn't matter how faster your storage is, even if it's NVME RAID, it pales in comparison to the speed of your RAM, not to mention everything loaded from storage is going into your RAM first... so no, it's not the same.
     
  20. Astyanax

    Astyanax Ancient Guru

    Messages:
    17,011
    Likes Received:
    7,353
    GPU:
    GTX 1080ti
    You'll have to get Microsoft to acknowledge this one because its their own policy that on 8.x and 10 the sysmain caching only covers HDD's.
     

Share This Page