Shader Compilation on PC: About to become a bigger bottleneck?

Time is not the realistic solution to everything. They need "low level" skills to dig deep in the code.
I'm sure you're right. As a consumer, that's also not my problem. That also doesn't absolve them from putting out and selling games with these issues in the first place. I'm paying good money and I expect my game to perform properly within reasonable expectations. And I don't think expecting the game to not have 100+ms spikes when doing things for the first time, or scene changes or what have you... is unreasonable.

Perhaps if it's too hard for developers of Unreal Engine games to develop games which don't have these issues, EPIC should be putting more attention into that aspect of the engine and make it easier for them?

At the end of the day.. publishers are the ones saying it's done and shipping it out. They have to do whatever they have to do.. that's all I know... or else I'm out.
 
I'm sure you're right. As a consumer, that's also not my problem. That also doesn't absolve them from putting out and selling games with these issues in the first place. I'm paying good money and I expect my game to perform properly within reasonable expectations. And I don't think expecting the game to not have 100+ms spikes when doing things for the first time, or scene changes or what have you... is unreasonable.

Perhaps if it's too hard for developers of Unreal Engine games to develop games which don't have these issues, EPIC should be putting more attention into that aspect of the engine and make it easier for them?

At the end of the day.. publishers are the ones saying it's done and shipping it out. They have to do whatever they have to do.. that's all I know... or else I'm out.
The solution is to stop paying them. Vote with your wallet.
 
People keep paying them though despite knowing the issues are there.
A lot of people don't seem to notice... blissfully ignorant and all. A lot of people simply don't understand the situation, and are keen to pass the blame onto other things... and some just don't find them THAT distracting enough.

But I'm not satisfied with that. I think we deserve better for our money. I think it's important to spread knowledge about this particular issue, what causes it, why it's an issue on PC and not consoles in the first place, ect ect. But most importantly, I want people to be understanding of games which make use of a pre-compilation process.. as being a good thing. Something that developers should be commended for. On a basic level, it means that they're taking steps to ensure a better in-game experience for the player. I'd like to see that become standard practice in all PC games. At the very least having the option.

I definitely see people waking up to this issue, especially with the help of sites like Digital Foundry, and Linus Tech Tips raising awareness. It becomes harder to ignore as consoles get better as well. Consoles outputting 120fps, essentially at tech parity with PC.. makes a person question why they're spending big $$$ for performance... when one side is having hitching issues, and the others are just having a bit lower framerate here and there..

I think there's some avenues that the PC side of the industry could take, to help move things along.. and I know it requires a lot of independently moving forces to align... but something MUST be done.

Engine developers - Make it as easy as humanly possible for developers to gather the necessary data to build their PSO pipelines and caching systems. Ensuring that as much as possible can be pre-generated.
Better developer practices - Ensuring that QA brings more attention to this issue. Some games should never release in the state they are in... and it makes a person ask who it's testing these games and how developers could possibly find it acceptable.
Consumer understanding - Understanding that pre-compilation processes can be a necessary evil. Waiting a few minutes for shaders to compile every so often, is far preferrable to a hitching game experience.

Nvidia, AMD, and Intel could probably do more too. Put those super computer servers to work.. maybe figure out a way to have the cloud quickly compile shader packages based on a user's GPU and current driver. When the user updates the driver, the cloud server immediately kicks in and speeds up the compilation process.

There's got to be something that can be done. We have all this AI and super computer ^%$# now... you're telling me they can't figure out a way to compile shader packages quickly for the developer to release for all their current GPUs and recent drivers? Query which GPU and driver the user has and it downloads the cache... and BAM! (lol)

What about crowdsourcing PSO data from players? If they implemented a way to have players generate PSO capture data for their entire game, and upload that data back to the developers which they can use to update the game and ensure that all PSO pipeline data is caught so it can be compiled when they run the game. Let the people who are ok with stutters/hitches generate the data, and the rest of us can wait for the update haha.

Developers should obviously be doing that one on their own. But maybe some developers don't have the ability to capture all that data themselves.. then allow the community to help.


Necessity is the mother of invention. They could do more with this... they just haven't gotten to that point yet... but I think we're going to reach that point soon.

And I'm completely aware that I don't truly understand any of this... I'm not a developer. There may be a million reasons why anything I say may not work or make economical sense.. but what the hell can I do? I'm trying to understand it. I think it's important to discuss. I think many developers already prove that a better job can be done. So I want that to become a reality for more developers.. and the entire industry should be pushing for that.
 
Last edited:
Engine developers - Make it as easy as humanly possible for developers to gather the necessary data to build their PSO pipelines and caching systems. Ensuring that as much as possible can be pre-generated.
Better developer practices - Ensuring that QA brings more attention to this issue. Some games should never release in the state they are in... and it makes a person ask who it's testing these games and how developers could possibly find it acceptable.
Consumer understanding - Understanding that pre-compilation processes can be a necessary evil. Waiting a few minutes for shaders to compile every so often, is far preferrable to a hitching game experience.

Nvidia, AMD, and Intel could probably do more too. Put those super computer servers to work.. maybe figure out a way to have the cloud quickly compile shader packages based on a user's GPU and current driver. When the user updates the driver, the cloud server immediately kicks in and speeds up the compilation process.

There's got to be something that can be done. We have all this AI and super computer ^%$# now... you're telling me they can't figure out a way to compile shader packages quickly for the developer to release for all their current GPUs and recent drivers? Query which GPU and driver the user has and it downloads the cache... and BAM! (lol)

What about crowdsourcing PSO data from players? If they implemented a way to have players generate PSO capture data for their entire game, and upload that data back to the developers which they can use to update the game and ensure that all PSO pipeline data is caught so it can be compiled when they run the game. Let the people who are ok with stutters/hitches generate the data, and the rest of us can wait for the update haha.

Developers should obviously be doing that one on their own. But maybe some developers don't have the ability to capture all that data themselves.. then allow the community to help.

I don't know if including pre-generated PSO caches would be feasible since I've seen games generate different PSOs per vendor and even per-architecture as well! In particular as of recent, id Software games like Doom/Eternel or Wolfenstein use several AMD and NV specific extensions which would require separate PSOs for each vendor/architecture ...

D3D12 isn't much better in this regard either since vendors offer driver extensions as well ...
 
Last edited:
3 vendors lets say each vendor has 5 architectures thats 15 sets of pso's. I don't see why that would be a problem
Valve has servers that store the game data for over 10,000 games
 
I don't know if including pre-generated PSO caches would be feasible since I've seen games generate different PSOs per vendor and even per-architecture as well! In particular as of recent, id Software games like Doom/Eternel or Wolfenstein use several AMD and NV specific extensions which would require separate PSOs for each vendor/architecture ...

D3D12 isn't much better in this regard either since vendors offer driver extensions as well ...
You're always here to rain on my parade!! :p

Really though, I appreciate your insights. I realize if it was as easy as I try to make it seem, it would have likely been done already, and I know there's tons of outside influences affecting everything on top of the actual complexity of coding these games in the first place.. But I think for the sake of the PC gaming industry.. that they have to do something.

Assuming all the powers that be worked together to make it happen... it IS possible for a company like Nvidia or AMD to have servers which a developer could connect to, to create PSO caches for their currently supported GPUs and latest drivers, and then have the game detect the correct package and download that cache, right?


I feel like it's in Nvidia's/AMD's interest to help bring a solution to light. I consider it "supporting" their hardware.. lol.
 
3 vendors lets say each vendor has 5 architectures thats 15 sets of pso's. I don't see why that would be a problem
Valve has servers that store the game data for over 10,000 games
I think the architecture can be different even between GPUs within the same "series". So it would likely be even more than that... and then consider the driver as well. If you're supporting the 3 latest drivers.. it exponentially increases.

But hell, even double or triple that amount... there's servers all over the world churning out far more taxing stuff than that constantly. I'm sure they could do it. They just require the push to make it a reality... and we haven't gotten quite to that point yet.

I'll tell you right now... if one of the GPU vendors did that for their gamers, and their gamers had a notably smoother experience, while the other vendors didn't, and were hitching everywhere... that would make a VERY compelling case to choose that vendor's hardware over the other.

We need them to step up to the plate and do what's right for their customers.
 
Consoles outputting 120fps, essentially at tech parity with PC.. makes a person question why they're spending big $$$ for performance.

Your missing the point of pc gaming i think. Its not just about having usefull ray tracing, higher, often native resolutions and higher setting presets (medium-low for consoles, ultra for pc), aswell as having games from both ms, sony, steam and pc games. Mods etc etc.
120fps aint that common on consoles, and 30fps is still king there if one desires fidelity.
 
Last edited:
Your missing the point of pc gaming i think. Its not just about having usefull ray tracing, higher, often native resolutions and higher setting presets (medium-low for consoles, ultra for pc), aswell as having games from both ms, sony, steam and pc games. Mods etc etc.
120fps aint that common on consoles, and 30fps is still king there if one desires fidelity.
No, I'm not. I specifically say it makes a person wonder why they're spending big money for "performance".

I understand that there are many reasons to play on PC over console depending on your tastes... however when looking at performance metrics.. as consoles become more powerful, and don't have these compilation issues... that's when a person starts asking why they're dealing with this when there's a great experience to be had on console.

Like I've said before... what good is 240fps... when the game constantly hitches and stutters while you experience it for the first time? If you ask me what has better performance, a 120fps game which hitches often, or a 60fps game which doesn't hitch or stutter pretty much ever... well that's easily the latter. Hell, I'd take a 30fps game that doesn't hitch ever before a 120fps game that does throughout. PC gaming CAN... and SHOULD be the best of both worlds.
 
as consoles become more powerful

They get new hardware each generation. They dont become more powerfull. There has been a time where consoles were relatively more powerfull compared to pc (ps2, ps1, xbox og etc). Those days are over.


that's when a person starts asking why they're dealing with this when there's a great experience to be had on console.

That great experience, as in, less ot no microstutter in select titles? Doesnt make me swap ;)

I do agree hitches shouldnt be there like that but it doesnt make the platform inferior for that, not at all all things considered. Theres many examples on consoles where i’d say ’aha’ like how 2077 was, DL2 and many others. Aswell as lacking in RT, framerates and still relying on lower resolutions without reconstruction that matters to me.

To each his/her own.
 
Last edited:
They get new hardware each generation. They dont become more powerfull. There has been a time where consoles were relatively more powerfull compared to pc (ps2, ps1, xbox og etc). Those days are over.
I mean more powerful as compared to previous generations, and "powerful enough" that PC's don't have that much of a real world advantage.


That great experience, as in, less ot no microstutter in select titles? Doesnt make me swap ;)

I do agree hitches shouldnt be there like that but it doesnt make the platform inferior for that, not at all all things considered. Theres many examples on consoles where i’d say ’aha’ like how 2077 was, DL2 and many others. Aswell as lacking in RT, framerates and still relying on lower resolutions without reconstruction that matters to me.

To each his/her own.
The hitches absolutely make the PC platform inferior to the consoles in games where they happen. You care about having marginally better visuals and image quality compared to having games which don't hitch and stutter?

You're part of the problem then... because it's people like you who give them a pass... when the reality is that PC gamers should have the best of both. Expecting games not to stutter and hitch shouldn't make me a bad guy.
 
I mean more powerful as compared to previous generations, and "powerful enough" that PC's don't have that much of a real world advantage.

Only compared to PS4 generation perhaps (not even that much of a difference as compared to today). PS1, PS2, PS3 generations they were all in a better state as compared to pc at their launch days. This generation is quite far behind, probably more so than the PS4 was, due to DLSS/Ray tracing, and the stagnation of memory/gpu increases in consoles.
It seems the differences due to ray tracing and reconstruction are larger now than they were when the 8th gen came around. As DF has noted multiple times, they are in the lower-mid range compared to pc, thats without taking RT/DLSS (nv gpus) into consideration.

The hitches absolutely make the PC platform inferior to the consoles in games where they happen. You care about having marginally better visuals and image quality compared to having games which don't hitch and stutter?

Not all games are experiencing microstutters equally much or at all. Wouldnt either say that the graphical upgrades are marginally better on pc, as noted before, for many ports, they are quite much better. And that alone is worth it for many, but for most that aint even the reason they choose the PC as their main gaming platform.

You're part of the problem then... because it's people like you who give them a pass... when the reality is that PC gamers should have the best of both. Expecting games not to stutter and hitch shouldn't make me a bad guy.

Maybe i am. Eitherway, im not saying your the bad guy, i think you have a point. It is just that i wont be preferring the console platforms due to the stuttering problem, its not enough to outweigh all the other advantages the pc has for me. Its all up to you but, if you are in the thoughts that the console will be a better fit for you, get to a toy store (or order online) and buy/order one?

Again, for me its best of both worlds since i am not experiencing this issue (as badly) in every game i play. Not all devs and studios are doing bad. And having a console (PS5), they have their own problems aswell. Grass is greener on the other side you know :p
 
Steam has an update today among the fixes is this :
Shader Pre-Caching
Fixed games using proton to always download shader caches immediately when installed
Fixed to ensure that stale shader cache data is deleted on GPU/driver changes
They've had that on Windows for ages for OpenGL/Vulkan games, it's always downloading updated caches. So this is just bug fixes for Proton.
 
The hitches absolutely make the PC platform inferior to the consoles in games where they happen. You care about having marginally better visuals and image quality compared to having games which don't hitch and stutter?
Different strokes and all that, but as someone who has jumped between PC/console, this is my #1 gripe with PC games (hence the thread). Framerate inconsistency is very noticeable when you're used to consistency, and while not perfect, the 60fps games on my PS5 are just far more stable than my PC when I'm not running into CPU/GPU bottlenecks (where they would be expected).

Even if GPU prices went back to normal it's a big barrier to me investing more in the PC until these systemic issues are addressed more effectively - part of the way this could be done is more PC enthusiast sites actually pay attention to this kind of thing instead of just endless videos about how to cool inefficient X86 CPU's. It can't be all on Alex.
 
Last edited:
Gamers shouldn't have to do what game developers should be doing and ensuring is done.. before the game launches.

It's pathetic that you can start up a game.. and INSTANTLY the first thing you see are shader compilation stutters. Shadow Warrior 3 is the latest example of this.

Ghostrunner too, you start that game for the first time.. the screen effect comes on and stuuuuuutttteeerr... and then your character shows off his sword, then immediate jumps down off a building and right as you land and kill the enemy... massive stutter.. That's a canned animation for crying out loud... How come that's not precompiled and cached?? How did no tester/developer not notice it? How do you not capture the data you need to precompile the shaders from the opening intro.. which you can't control?

The only thing you can surmise is that they just don't care. Plain and simple. This is the first 30 seconds of the game experience for crying out loud..

Ghostrunner before shaders are compiled...


Ghostrunner after shaders are compiled...

I'm going to call it as I see it. It's pathetic... to allow a game to release in that state, and that we're just supposed to deal with it.
 
Maybe a stupid question, but is shaders compilation done on the cpu, or gpu ? Given my expérience, I would say cpu, but can it be moved to the gpu ? I know it doesn't solve anything, just curious.
 
Back
Top