The Outer Worlds: Spacer's Choice Edition

The Outer Worlds: Spacer's Choice Edition

View Stats:
This is what people call shader compilation stuttering.
When many of us get stuttering we presume it's simply bad performance. However there has been an ongoing epidemic in pc for quite some time now where a lot of developers simply do not include the shader precompile step prior to the game running. And because of this the game loads the shaders on the fly, usually without async. This is why unreal engine 4 games stutter. Most of the time it's not because your hardware is bad. You can't really mitigate shader compilation stuttering unlike other performance issues. Sure, having a high end pc will make the loading of those shaders happen a fraction of a microsecond faster, but nobody is immune to them.

This means when the developers skip this step they are intentionally giving you bad performance, and they could have quite easily avoided this step.

I can make an unreal engine 4 project and add a compile step right now without any real experience. I can also add dlss and fsr without any experience. (It takes a few minutes)

This is why when you see someone say "it's not the case on my system" for something that is shader compilation stuttering, it's untrue in every case.

Normal performance issues result in framerate drops, which does not result in huge frame spikes. The spikes you see are shaders compiling because the step to compile them prior to the game loading was not taken. Either out of laziness, inexperience/deadlines, or because most pc gamers simply don't do the research to understand what the problem is, or simply put up with it without protest.

That's why I made this post. Being informed is good.
Last edited by Zero Point World eater; Mar 14, 2023 @ 11:09am
< >
Showing 1-8 of 8 comments
MC1_Judge Mar 14, 2023 @ 12:41pm 
Are you sure it's 'shader compilation stutter'.

I'm no expert and you could well be right, but I have other games that have shader compilation stutter when loading a scene and it only happens the first time I enter a scene, but with this game, it happens constantly in the same scene just by turning around.
Gewisser Jemand Mar 14, 2023 @ 1:49pm 
Yea but there is bad performance ON TOP of the stutter that you are describing
Originally posted by MC1_Judge:
Are you sure it's 'shader compilation stutter'.

I'm no expert and you could well be right, but I have other games that have shader compilation stutter when loading a scene and it only happens the first time I enter a scene, but with this game, it happens constantly in the same scene just by turning around.

Unfortunately i'm very sensitive to the mechanics of shader stutters, and this game has stutters upon new actions or effects. Yes, this game has performance issues outside of that related to streaming, although I suspect that is also compilation stutter just without any shader cache being built. In other words, hugely incompetent.
Originally posted by Gewisser Jemand:
Yea but there is bad performance ON TOP of the stutter that you are describing
Yes there is, although that can be somewhat mitigated. Which means we have a choice is navigating it or reducing settings or setting a framerate cap manually. We are literally powerless when it comes to shader stuttering. We can add some commands to the ini of the game to try and force it, but in this case it's not precaching even with ini commands.
Last edited by Zero Point World eater; Mar 14, 2023 @ 2:54pm
Milkdust Mar 14, 2023 @ 2:59pm 
DirectX 12 was a mistake.
Gewisser Jemand Mar 14, 2023 @ 4:00pm 
Originally posted by matthewcullen579:
Originally posted by Gewisser Jemand:
Yea but there is bad performance ON TOP of the stutter that you are describing
Yes there is, although that can be somewhat mitigated. Which means we have a choice is navigating it or reducing settings or setting a framerate cap manually. We are literally powerless when it comes to shader stuttering. We can add some commands to the ini of the game to try and force it, but in this case it's not precaching even with ini commands.
i suppose. But the fact this version still runs worse on lowest than the OG on highest cannot be fixed by us either
Kaiju4Hire Mar 14, 2023 @ 5:04pm 
It's not shader compilation, that occurs during loading. The problem is age old with Unreal engine 3/4. You see it was built with game consoles at the forefront. They are ram limited, so the engine heavily relies on asset streaming to work around the limitation. However that creates a issue for PC's due to the fact of how data is accessed and transported from storage. This is why when in a large sprawling open area you will get stutters when turning corners or just turning around. These objects are culled/ occulded and dropped from memory, and when called upon need to be loaded from storage and put back into memory and then tossed through the cpu to the gpu. Now you have to think, these files load from a .pak, a .pak is basically a zip file with some compression. So when this object needs to be called upon, said .pak has to be decrypted and opened to get the asset. That costs latency, and that latency can cause frame drops because the engine is waiting for said asset.

Proof in what I say, look at Ace Combat 7, same problem, well was, they eventually made a work around for it. But originally, modders had to make engine.ini edits to force the engine to not stream,extend LOD, and load everything into ram. Another fix is to load files loose and not use .pak's, but in order for us to do so we need to decrypt the files and we don't have the key yet. Another possible fix which the devs can do is to split the .paks into smaller sizes, there are 4 massive .pak files, one is 20gb, that's huge and needs to be split up.
Originally posted by Kaiju4Hire:
It's not shader compilation, that occurs during loading. The problem is age old with Unreal engine 3/4. You see it was built with game consoles at the forefront. They are ram limited, so the engine heavily relies on asset streaming to work around the limitation. However that creates a issue for PC's due to the fact of how data is accessed and transported from storage. This is why when in a large sprawling open area you will get stutters when turning corners or just turning around. These objects are culled/ occulded and dropped from memory, and when called upon need to be loaded from storage and put back into memory and then tossed through the cpu to the gpu. Now you have to think, these files load from a .pak, a .pak is basically a zip file with some compression. So when this object needs to be called upon, said .pak has to be decrypted and opened to get the asset. That costs latency, and that latency can cause frame drops because the engine is waiting for said asset.

Proof in what I say, look at Ace Combat 7, same problem, well was, they eventually made a work around for it. But originally, modders had to make engine.ini edits to force the engine to not stream,extend LOD, and load everything into ram. Another fix is to load files loose and not use .pak's, but in order for us to do so we need to decrypt the files and we don't have the key yet. Another possible fix which the devs can do is to split the .paks into smaller sizes, there are 4 massive .pak files, one is 20gb, that's huge and needs to be split up.
It's in large part shader compilation. I found a few hacks to enable dx11 and found dramatic improvement at the cost of stability (it crashed more). Some ini compilation settings work and I found improvement upon those tweaks, others do nothing.

It's also in part asset loading, as you say. Both are factors. But shader compilation and the move to dx12 is a huge component.
< >
Showing 1-8 of 8 comments
Per page: 1530 50

Date Posted: Mar 14, 2023 @ 11:03am
Posts: 8