upvote
Unreal’s limitation is that it doesn’t know how a shader will be used until it actually tries to render it on the target hardware. This is a trade-off to gain flexibility and rendering performance. The engine has to compile shaders on the fly when it is first used, which is fine if the shader is simple, but nowadays that usually is not the case.

There are ways to make a player’s PC compile shaders before realtime play begins, but it takes some setup and smaller devs might not know how to do it. This is most likely the reason why stuttering happens.

On fixed hardware targets (consoles, Steam Deck) you can ship precached shaders as you know everything about the target hardware.

reply
Console vs PC is a red herring since UE games still stutter on consoles, people just notice that less because most games run at 30 fps anyway. You can read Unreal's own blog posts on this and they'll actually explain that this is mostly down to their material system (and game logic/scripts reaching into it) being designed to create nearly infinite shader variations on the fly in response to arbitrary world/game states. This design choice separates engines which have shader stutters from those which do not.

https://www.unrealengine.com/tech-blog/game-engines-and-shad... https://medium.com/@GroundZer0/what-unreal-doesnt-tell-you-a... https://therealmjp.github.io/posts/shader-permutations-part1...

reply
> [...] people just notice that less because most games run at 30 fps anyway

This is just plainly not true anymore, as far as the current gen consoles (PS5, XBox Series X) go.

I just searched for every major/notable PS5 game built on UE5 specifically (i.e., no UE4), which wasn't super difficult, given there are 31 of them. I might be missing a few, but that sample should be representative enough.

TLDR: 28 out of 31 UE5 games on PS5 have a performance/60fps mode, making it a ~93% share.

P.S. For posterity, here is the list of games I used for this sample:

> Fortnite, Marvel Rivals, The Finals, Tekken 8, The First Descendant, Clair Obscur, Lords of the Fallen, Remnant II, Immortals of Aveum, RoboCop, Black Myth: Wukong, Silent Hill 2, Silent Hill f, Wuchang, MGS Delta, Oblivion Remastered, S.T.A.L.K.E.R. 2, Hellblade II Enhanced, Mafia: The Old Country, Talos Principle 2, Jusant, Still Wakes the Deep, Cronos, Until Dawn post-patch, Banishers, Fort Solis, Layers of Fear, Quantum Error, ARK, and The Casting of Frank Stone

reply
Yes, that’s what I said. Powerful and flexible, at the expense of not being able to know how it will be used ahead of time.

Bundling and precompiling is not a fool-proof guarantee but it is very effective. Most often when a game has shader stutter the developers have not bundled or allowed the shaders to compile before gameplay starts (or it’s actually some other unrelated issue). The engine doesn’t do it automatically.

reply