Micro-stuttering / hitch & Frametime spikes issue

Everything about latency. Tips, testing methods, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
depatere
Posts: 19
Joined: 19 Dec 2020, 03:43

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by depatere » 20 Feb 2022, 10:46

jorimt wrote:
20 Feb 2022, 10:23
depatere wrote:
20 Feb 2022, 06:03
I'm ready to make an investment towards getting as minor of stutters as possible, as I'm very sensitive to it.
I currently have an ADATA SX8200 - guessing this could be replaced with a better one concerning framespikes of asset loads?

Pretty apparent in all games..
If the minor stutters that are bothering you in all games are I/O-related, no SSD, no matter its speed, be it SATA or NVMe, will eliminate or even mitigate them. For instance, my main gaming drive is now a 2TB WD_BLACK SN850 M.2 NVMe (running in its "Gaming Mode"), and I notice no improvement over my old 7200RPM WD Black HDD in this respect.

Even modern game storage APIs are still stuck at legacy HDD transfer rates, so the only thing SSD's are going to improve where I/O performance is concerned is load times, nothing more.

Asset-load-related stutter on PC primarily has to be addressed at the engine-level by the developers, and is usually mitigated my methods such as pre-loaded shaders, etc.

UE4 in particular (which a lot of recent games have been based on) has a big problem with asset and shader-related stutter. I've been playing Sifu lately, and ever single time he enters a new area, it stutters like mad, no matter my settings, and it's been confirmed by technical outlets like Digital Foundry to be a PC-only issue; PS5 is stutter-free in this respect.

DirectStorage is in the works (see: https://devblogs.microsoft.com/directx/ ... ing-to-pc/), and aims to take advantage of the greater SSD bandwidth to increase I/O transfer rates in PC games to be more on par with say, PS5 (which has less asset-related stutter due to taking full advantage of SSD transfer rates, as well as the fact that it is a fixed architecture system, and like any console, doesn't have to deal with shader compilation), but there's no ETA on its release, and it will likely be game-dependent to a point, and even with that extra bandwidth, future devs can just oversaturate I/O transfers again, creating the same problem we have now.
Thank you for the expansive reply again Jorimt. Much appreciated.

Yeah, it’s cumbersome the PS5 beats any high-end PC in this regard.

However, I saw Chief posting about trying to reduce these frametime hitches, by choosing a fast QD1 SSD drive, but most importantly, an Optane drive.


I wonder what I should buy in 2022 to use this mitigation. The 905P does very good in this regard (says Chief), but I think it’s discontinued.

He also mentioned optane memory in combination with a high quality fast QD1 drive, but is this better than having a all in one like the 905P and do you guys have any recommendations for me in 2022 on which one to buy?

Separate Optane Memory + Drive or all in one like 905P (or other comparable?)


Thanks!

User avatar
jorimt
Posts: 2484
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by jorimt » 20 Feb 2022, 12:34

depatere wrote:
20 Feb 2022, 10:46
However, I saw Chief posting about trying to reduce these frametime hitches, by choosing a fast QD1 SSD drive, but most importantly, an Optane drive.
The Chief will have to chime in again, then. I don't personally know of a user-side method of eliminating I/O-related stutter, with Optane or otherwise.

As far as I'm aware, improvements in this respect will only come from storage API overhauls and engine-level prioritization per game (the majority of developers blow their frametime budget for eye-candy).

The hard truth is, unless every single frame at your selected average refresh/framerate target can hit the frametime of your refresh rate (which becomes less and less practical the higher the average framerate; at 360 FPS/Hz, for instance, the engine only has 2.8 ms to render everything per frame, regardless of scene complexity), then there will always be a frame here and there that will take longer than a single refresh cycle to render, causing stutter, and again, even PS5 still stutters, just not due to shader compilation, and less so due to asset-load-related stutter thanks to it's ability to take full advantage of SSD bandwidth.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

depatere
Posts: 19
Joined: 19 Dec 2020, 03:43

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by depatere » 20 Feb 2022, 14:29

jorimt wrote:
20 Feb 2022, 12:34
depatere wrote:
20 Feb 2022, 10:46
However, I saw Chief posting about trying to reduce these frametime hitches, by choosing a fast QD1 SSD drive, but most importantly, an Optane drive.
The Chief will have to chime in again, then. I don't personally know of a user-side method of eliminating I/O-related stutter, with Optane or otherwise.

As far as I'm aware, improvements in this respect will only come from storage API overhauls and engine-level prioritization per game (the majority of developers blow their frametime budget for eye-candy).

The hard truth is, unless every single frame at your selected average refresh/framerate target can hit the frametime of your refresh rate (which becomes less and less practical the higher the average framerate; at 360 FPS/Hz, for instance, the engine only has 2.8 ms to render everything per frame, regardless of scene complexity), then there will always be a frame here and there that will take longer than a single refresh cycle to render, causing stutter, and again, even PS5 still stutters, just not due to shader compilation, and less so due to asset-load-related stutter thanks to it's ability to take full advantage of SSD bandwidth.
Totally with you - this is going to be a responsibility of the developers.
Not sure if you know this, but would it be possible to buy a SSD Drive from the US and install it in a European PC?

Let's hope the Chief has a minute to chime in about the Optane solution he previously mentioned.

depatere
Posts: 19
Joined: 19 Dec 2020, 03:43

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by depatere » 20 Feb 2022, 14:56

Chief Blur Buster wrote:
19 Dec 2020, 19:46
This is one of the cases where Intel Optane Memory is worth it for high refresh rate users who are picky about asset-load stutters -- because they do help those 0.1% frametimes, even if 99% of framerate is unaffected by Optane memory. People say "only 2% higher framerate. MEH!" when it's those diskload stutters that's what Optane helps fix.

The stutters invisible at 60 Hz are now visible on newer fast-IPS and fast-TN at high refresh rates (240 Hz+) -- and this is where higher performance SSD like Samsung 960 Pro+ / Optane selection can be key for those asset-load stutters. Don't cheap out on your SSD QD1 performance if you're super picky about asset-load stutters.
Referring to this btw.

User avatar
jorimt
Posts: 2484
Joined: 04 Nov 2016, 10:44
Location: USA

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by jorimt » 20 Feb 2022, 15:07

depatere wrote:
20 Feb 2022, 14:29
Not sure if you know this, but would it be possible to buy a SSD Drive from the US and install it in a European PC?
The only difference between US and European PC components is the PSU plug-type. Everything else is interchangeable, so as long as you can order and import the US-sourced SSD in question, yes, it can be installed on a European PC.
(jorimt: /jor-uhm-tee/)
Author: Blur Busters "G-SYNC 101" Series

Displays: ASUS PG27AQN, LG 48CX VR: Beyond, Quest 3, Reverb G2, Index OS: Windows 11 Pro Case: Fractal Design Torrent PSU: Seasonic PRIME TX-1000 MB: ASUS Z790 Hero CPU: Intel i9-13900k w/Noctua NH-U12A GPU: GIGABYTE RTX 4090 GAMING OC RAM: 32GB G.SKILL Trident Z5 DDR5 6400MHz CL32 SSDs: 2TB WD_BLACK SN850 (OS), 4TB WD_BLACK SN850X (Games) Keyboards: Wooting 60HE, Logitech G915 TKL Mice: Razer Viper Mini SE, Razer Viper 8kHz Sound: Creative Sound Blaster Katana V2 (speakers/amp/DAC), AFUL Performer 8 (IEMs)

User avatar
Chief Blur Buster
Site Admin
Posts: 11653
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by Chief Blur Buster » 20 Feb 2022, 15:08

Intel has kind of put Optane on the back burner so the Next Best Thing is a giant RAM drive big enough to cache one game.

Alternative: Pre-Caching the Whole Game in RAM Disk Cache

A non-Optane non-RAMdrive compromise is simply increasing your disk cache to be big enough to cache the entire game size. That way, after preloading into the cache. Then the whole game level is all already cached in memory. This requires a system with more than 16GB RAM, sometimes more than 32GB, also to make sure other disk accesses by other apps on the systems don't invalidate the game's existence in the disk cache. For the giant games of today, that means 48 GB or 64 GB RAM.

To be safe, use 32 GB RAM to cache the entire CS:GO or Valorant game, with enough leftover for the operating system and your other software. Games will become bigger over time, so you may want at least 48 GB, especially if you have streaming software and cloud sync software running in the background. Some streaming software often quickly invalidates the disk cache, if it uses the disk as part of its streaming operations, so add a bit off fluff RAM if you run any memory hogs concurrently with caching the whole game.

There are dozens of ways to skin a cat in preloading a whole game into your disk cache before launching the game. Including via DOS-style batch file, or Windows PowerShell, but my tool of choice is Linux (WSL) built into Windows. So if you use WSL (Windows Services for Linux), caching a whole game is a one liner for a bash shell script when you change your folder to the game's subfolder (which may be within your Steam install).

Code: Select all

find . -xtype f -exec cp {} /dev/null \;
The next line of the batch file can simply launch the game.
This copies the entire game recursively to /dev/null (an imaginary bitbucket), with the side effect of loading the entire game into a disk cache, which can be done before you launch the game. That way, loading screens are the fastest you've ever seen, and hitching is minimized. You may want to exit and re-run this command once in a while, as the cache will start to be invalidated over time anyway, especially as the OS starts accessing other files in the background.

Such overkill RAM far beyond system needs will only improve framerates by 0.1% but that's the 0.1% frametimes, the hateful "hitching" ones.

Also combine that simultaneously with a high performance TLC drive such as a Samsung 980 Pro NVMe.

Be noted this won't solve non-disk-access hitching.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

depatere
Posts: 19
Joined: 19 Dec 2020, 03:43

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by depatere » 20 Feb 2022, 15:13

jorimt wrote:
20 Feb 2022, 15:07
depatere wrote:
20 Feb 2022, 14:29
Not sure if you know this, but would it be possible to buy a SSD Drive from the US and install it in a European PC?
The only difference between US and European PC components is the PSU plug-type. Everything else is interchangeable, so as long as you can order and import the US-sourced SSD in question, yes, it can be installed on a European PC.
Alright, thanks!

depatere
Posts: 19
Joined: 19 Dec 2020, 03:43

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by depatere » 20 Feb 2022, 15:15

Chief Blur Buster wrote:
20 Feb 2022, 15:08
Intel has kind of put Optane on the back burner so the Next Best Thing is a giant RAM drive big enough to cache one game.

A non-Optane non-RAMdrive compromise is simply increasing your disk cache to be big enough to cache the entire game size. That way, after preloading into the cache (even a simple 5-line batch file / Powershell / WSL script to copy/cat/dd/whatever the files to NUL or /dev/null before launching the game). Then the whole game level is all already cached in memory. This requires a system with more than 16GB RAM, sometimes more than 32GB, also to make sure other disk accesses by other apps on the systems don't invalidate the game's existence in the disk cache.

Also combine that simultaneously with a high performance TLC drive such as a Samsung 980 Pro NVMe.

All of the above is easier to do than Optane at the moment.
Thanks for chiming in, Chief!
Yeah, I was looking at https://www.amazon.com/Intel-Optane-SSD ... 035&sr=8-1

To maybe import it.. But maybe I should get the 980 Pro, although I am not sure it will be much better than my SX8200..
I'll look into the compromise you said - looks a bit more complicated than Optane :lol:

Would the WD Black one with Gaming Mode on be better for hitches than the 980 Pro tho ?

User avatar
Chief Blur Buster
Site Admin
Posts: 11653
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by Chief Blur Buster » 20 Feb 2022, 15:37

depatere wrote:
20 Feb 2022, 15:15
To maybe import it.. But maybe I should get the 980 Pro, although I am not sure it will be much better than my SX8200..
I'll look into the compromise you said - looks a bit more complicated than Optane :lol:
Depends on the perspective. It's simpler off-the-shelf components (more RAM sticks), with just a slight amount more software complexity.

One can copy and paste the code into an icon on the desktop (file ending in .bat / .ps1 / .sh depending on the script language you choose). Then thereafter preloading a game into a disk cache is as simple as doubleclicking the icon before you launch the game in Steam. A small HOWTO (step by step instructions) can be written for this

Perhaps somebody needs to write a simple downloadable tool for automatically precaching a game, as well as re-preloading the game whenever the game is idling (e.g. between matches / between levels). A 980 Pro can re-preload the entire CS:GO in less than 5 seconds anyway.

If you cannot afford extra RAM, try memory compression.

People are doing it already, such as on this Reddit:

https://www.reddit.com/r/pcgaming/comme ... ram_cache/

It's a trick being used for years, even this 2014 AnandTech thread:

https://forums.anandtech.com/threads/to ... e.2375662/

Personally, I would try to avoid memory compression (extra ltencies) but it can solve hitching / microstutters in some situations where you can't afford extra memory. What you need to do is to throw overkill RAM at it, combined with an ultrafast SSD like the 980 Pro, to say goodbye to your disk-based hitching issues. It's extremely difficult to find places to buy Optane at the moment, parts shortages and all.

Summary for people who hate disk-access-based frame drops (microstutters / hitching):

- Get fast NVMe SSD, one approved by Sony for PS5. Those will be the fastest in PCs too. And put a heatsink on it too, they can thermally throttle during sustained read operations. My fave is the Samsung 980 Pro (not Evo)
- Get enough extra RAM to cache the OS, run the game, your background software, and also cache the game (e.g. 32GB or 48GB for CS:GO or Valorant). 32 GB is the minimum, 48 GB+ gives breathing room for more background software (streaming, cloud sync like dropbox) to prevent making any byte of the game disappear from the disk cache.
- Run a cache preload batch file to load your entire ~20 GB game into your disk cache. This leaves 12 GB left to run everything else if you have 32GB. (12GB is tight for preventing the return of hitching, if you use certain kinds of high-memory streaming software and cloud sync software, so if you do use memory hog background software, try 48 GB).

This will often significantly improve most peoples' 0.1% worst frametimes.

It's true that most of the time "You Don't Need More Than 16 GB" for most things (everybody said this for years) -- benchmarks of extra RAM will show no difference (lost within the error margins of benchmarks), but what magically happens is those single framedrops are fewer in numbers -- if you are super sensitive to microstutters/hitching caused by minor/single framedrops (caused by disk access).

But if you surgically benchmark after a fresh boot, into a fresh game load, and monitor your 0.1% worst frametimes. Then rerun after all my suggested optimizations. Then the benchmarks of the 0.1% worst frametimes magically shows the benefits of 32GB, 48GB or even 64GB.

Most benchmarkers repeatedly run a game, through the very same benchmark, so the specific playpath (the same texturestreaming) is repeated over and over. This can fit in smaller amounts of RAM (even 8GB and 16GB systems). But this falls apart for esports players who randomly run all over the levels, and jumping between different levels, which can wreak havoc on all the game texture streaming.

To Tech Writers And YouTubers Reading This
For sites like TomsHardware and AnandTech, benchmarker hygiene of 0.1% worst frametimes from disk access, must be a fresh-boot (or a hard disk cache flush utility), followed by a fresh game load (preferably with SuperFetch temporarily disabled, so it doesn't remember to preload the benchmarkable parts of the game on next reboot). This is when 16GB-vs-64GB shines in 0.1% frametime benchmarking.

So shovel an overkill dose of RAM -- if you can afford it, go beyond 32 GB by a little at least. 48 GB or even 64 GB for quad channel, if money is no object for disk-based hitching. 64 GB is easier to quadchannel (4 x 16 GB sticks) than 48 GB.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

depatere
Posts: 19
Joined: 19 Dec 2020, 03:43

Re: Micro-stuttering / hitch & Frametime spikes issue

Post by depatere » 20 Feb 2022, 16:00

Chief Blur Buster wrote:
20 Feb 2022, 15:37
depatere wrote:
20 Feb 2022, 15:15
To maybe import it.. But maybe I should get the 980 Pro, although I am not sure it will be much better than my SX8200..
I'll look into the compromise you said - looks a bit more complicated than Optane :lol:
Depends on the perspective. It's simpler off-the-shelf components (more RAM sticks), with just a slight amount more software complexity.

One can copy and paste the code into an icon on the desktop (file ending in .bat / .ps1 / .sh depending on the script language you choose). Then thereafter preloading a game into a disk cache is as simple as doubleclicking the icon before you launch the game in Steam. A small HOWTO (step by step instructions) can be written for this

Perhaps somebody needs to write a simple downloadable tool for automatically precaching a game, as well as re-preloading the game whenever the game is idling (e.g. between matches / between levels). A 980 Pro can re-preload the entire CS:GO in less than 5 seconds anyway.

If you cannot afford extra RAM, try memory compression.

People are doing it already, such as on this Reddit:

https://www.reddit.com/r/pcgaming/comme ... ram_cache/

It's a trick being used for years, even this 2014 AnandTech thread:

https://forums.anandtech.com/threads/to ... e.2375662/

Personally, I would try to avoid memory compression (extra ltencies) but it can solve hitching / microstutters in some situations where you can't afford extra memory. What you need to do is to throw overkill RAM at it, combined with an ultrafast SSD like the 980 Pro, to say goodbye to your disk-based hitching issues. It's extremely difficult to find places to buy Optane at the moment, parts shortages and all.

Summary for people who hate disk-access-based frame drops (microstutters / hitching):

- Get fast NVMe SSD, one approved by Sony for PS5. Those will be the fastest in PCs too. And put a heatsink on it too, they can thermally throttle during sustained read operations. My fave is the Samsung 980 Pro (not Evo)
- Get enough extra RAM to cache the OS, run the game, your background software, and also cache the game (e.g. 32GB or 48GB for CS:GO or Valorant). 32 GB is the minimum, 48 GB+ gives breathing room for more background software (streaming, cloud sync like dropbox) to prevent making any byte of the game disappear from the disk cache.
- Run a cache preload batch file to load your entire ~20 GB game into your disk cache. This leaves 12 GB left to run everything else if you have 32GB. (12GB is tight for preventing the return of hitching, if you use certain kinds of high-memory streaming software and cloud sync software, so if you do use memory hog background software, try 48 GB).

This will often significantly improve most peoples' 0.1% worst frametimes.

It's true that most of the time "You Don't Need More Than 16 GB" for most things (everybody said this for years) -- benchmarks of extra RAM will show no difference (lost within the error margins of benchmarks), but what magically happens is those single framedrops are fewer in numbers -- if you are super sensitive to microstutters/hitching caused by minor/single framedrops (caused by disk access).

But if you surgically benchmark after a fresh boot, into a fresh game load, and monitor your 0.1% worst frametimes. Then rerun after all my suggested optimizations. Then the benchmarks of the 0.1% worst frametimes magically shows the benefits of 32GB, 48GB or even 64GB.

Most benchmarkers repeatedly run a game, through the very same benchmark, so the specific playpath (the same texturestreaming) is repeated over and over. This can fit in smaller amounts of RAM (even 8GB and 16GB systems). But this falls apart for esports players who randomly run all over the levels, and jumping between different levels, which can wreak havoc on all the game texture streaming.

To Tech Writers And YouTubers Reading This
For sites like TomsHardware and AnandTech, benchmarker hygiene of 0.1% worst frametimes from disk access, must be a fresh-boot (or a hard disk cache flush utility), followed by a fresh game load (preferably with SuperFetch temporarily disabled, so it doesn't remember to preload the benchmarkable parts of the game on next reboot). This is when 16GB-vs-64GB shines in 0.1% frametime benchmarking.

So shovel an overkill dose of RAM -- if you can afford it, go beyond 32 GB by a little at least. 48 GB or even 64 GB for quad channel, if money is no object for disk-based hitching. 64 GB is easier to quadchannel (4 x 16 GB sticks) than 48 GB.
Thank you for the deep dive, Chief.
Looks like RAM is the way to go, but assuming not for bigger singleplayer games like the upcoming Elden Ring which would be impossible to load into RAM if you have like 64GB I suppose.

The RAM solution is only if you don't have your hands on an Optane drive, like the 905p then correct?
Another means to an end to reduce hitching, so to say?

Post Reply