Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
This is a UE5 game. Not worthy of a thread perhaps but it is striking to look at.
On consoles that IS what they do. They precompile the shaders and ship that code in the game package. On PC they don't have that luxury unfortunately.I'm just ignorant on the matter: why they build shaders and then cache them at runtime in consoles? Knowing the target specs can't they just bake them in?
On consoles that IS what they do. They precompile the shaders and ship that code in the game package. On PC they don't have that luxury unfortunately.
Which is basically why I said that we really should have the option to do this ourselves. Obviously it's more complex than what I'm making it out to be, but as games move towards no loading screens, and rendering things just in time before they are needed.. it really starts to become a glaring issue.
I basically just want developers to give the PC a fighting chance when it comes to this stuff. I mean, they precompile shaders for consoles for a reason. Reduces/removes stuttering, better performance, quicker loading... it's essentially a step in optimizing the software specifically to the hardware. I look at having the option to pre-compile our shaders, as an optimization process that we can do to improve the experience in every way. Some games are literally unplayable at first until you run around and generate a shader cache. If this massive hitching and stuttering happened on the console versions of their games, they'd get panned really hard. On PC, a lot of people assume these issues are something wrong with their setup, or a bad driver... and they make excuses. "Oh, well it had stutters but it went away after a while so I guess it's fixed"... No.. there's nothing wrong with your machine... no that "fix" you posted isn't doing anything... it's all placebo in your head.. and if it's smooth now, it's because the shaders are cached.
Developers know this all of course. They know what they need to do.. but for them it's a balancing act. Many possibly don't do it because a lot of gamers turn into babies when there's an extra "step" that they have to wait on.. or they leave a negative review because they were stuck on a screen for 4min while their CPU usage was 100%... Devs are worried that this "step" is unacceptable for many gamers.
But the reality is that developers are going to have to address this. Devs should be doing all they can to ensure the first experience is exactly like the rest.. and having hitches which impact the game, is simply not acceptable to me anymore. I expect to be able to do new actions, new effects, load into levels, without hitches. Those aren't part of the game design. They don't happen on consoles, and they shouldn't happen on my $2500 PC. I demand better. Devs need to do what they have to do to fix this issue... I suggest giving the option to players to generate a shader cache before initial play. That way, you can satisfy both sides. The people who don't want to wait.. can simply load in and deal with the game stalling while it caches shaders... and I can wait..pre-generate my shaders and have a nice first experience.
I should note that I'm not saying every single stutter on PC is due to shader compilation. I know it's not. However, IMO it's very easy to differentiate shader compilation stutter from other types of stutters. Most of the hitching is undoubtedly due to shader compilation.. and we need to get developers on board to know that it's OK for them to include this extra "step" to be able to deliver the first experience PC gamers deserve.
(sorry for going on and on about this.. I know it's not the thread for it)
Absolutely agreed 100%. I've brought up that point before about us waiting to download and install games... so what's another 10-15 min? Make it a part of the games install that it has to run and "install" the shaders.I think it should be part of the install process. If you've just waited an hour to download and install the game (on a fast connection!) then what's another 10-15 mins to compile the shaders before the game starts. You're already in a waiting experience (that console gamers go through too) so simply extend it a bit. I'd prefer this more than the first time I run the game as at that point you are already geared up to get in and play, so having to wait another 15 mins, even just as a one off can leave quite a negative impression.
I think it should be part of the install process. If you've just waited an hour to download and install the game (on a fast connection!) then what's another 10-15 mins to compile the shaders before the game starts. You're already in a waiting experience (that console gamers go through too) so simply extend it a bit. I'd prefer this more than the first time I run the game as at that point you are already geared up to get in and play, so having to wait another 15 mins, even just as a one off can leave quite a negative impression.
I agree with the sentiment of your posts, and a lot of people really want a better solution. I do think it's worth acknowledging that on PC the problem is an order of magnitude more complex and even the tools in place (endless layers of caching through the whole driver stack, vulkan/DX12 having some limited PSO caching, prepopulating driver shader caches in updates before big games hit, etc) are not entirely sufficient. It's not just "there's a tool to fix this but it's too complex to use", it's that there's a bunch of stuff you can do to try and mitigate the effects but nothing is guaranteed since there are at least 3 different moving pieces of software on the end users machines that the game does not control that affect the outcome.Developers know this all of course. They know what they need to do.. but for them it's a balancing act. Many possibly don't do it because a lot of gamers turn into babies when there's an extra "step" that they have to wait on.. or they leave a negative review because they were stuck on a screen for 4min while their CPU usage was 100%... Devs are worried that this "step" is unacceptable for many gamers.
Yes this is #1 thing, but its hard to tell artists noHonestly overall I think step 1 is just to cut down on the total number of shaders in Unreal games, but it's hard to put the permutation and shader editor genies back in the box to some extent.
I think a potential reason for the objection to that method engaging automatically though is that this has to be done for every driver update. If this was a case of once during an install/new OS, it would be nothing - as others have suggested you must make it part of the install process. It's that every driver update, no matter how inconsequential, requires a shader recompile - I wonder if that can be mitigated somehow in a new driver model, dunno? Whenever you complain about issues with a game the first response is invariably "Well did you install the game ready driver?" - they're just released too often for you continually skip over new releases to avoid shader recompiles.Developers know this all of course. They know what they need to do.. but for them it's a balancing act. Many possibly don't do it because a lot of gamers turn into babies when there's an extra "step" that they have to wait on.. or they leave a negative review because they were stuck on a screen for 4min while their CPU usage was 100%... Devs are worried that this "step" is unacceptable for many gamers.
Thanks Andrew!I agree with the sentiment of your posts, and a lot of people really want a better solution. I do think it's worth acknowledging that on PC the problem is an order of magnitude more complex and even the tools in place (endless layers of caching through the whole driver stack, vulkan/DX12 having some limited PSO caching, prepopulating driver shader caches in updates before big games hit, etc) are not entirely sufficient. It's not just "there's a tool to fix this but it's too complex to use", it's that there's a bunch of stuff you can do to try and mitigate the effects but nothing is guaranteed since there are at least 3 different moving pieces of software on the end users machines that the game does not control that affect the outcome.
At least for Unreal when you cook for PC you are doing the front-end compiles (FXC/DXC/etc) of the shaders. Most of the hitches after that point are driver compiles. Pre-running through some scripted sequences in the background to warm driver shader caches certainly helps, but even then it is not a guarantee since many PC drivers do various forms of PGO and background compilation of their own. DX12 attempted to eliminate some of this, but it crept back in over the following years after release as the economic incentives for IHVs to win benchmarks ultimately trump everything.
Anyways I think most graphics devs would agree with the frustration and it's part of the reason why many prefer consoles where the game is in much more control of the end user experience. Certainly I'm not saying more couldn't be done on PC, but it's not like the area has received no attention... as you imagine making the first Fortnite experience smooth for folks across a wide variety of machines is very important. But it's important to acknowledge that it is both intrinsically more complex on PC, and worse a dance between at least 3 different companies.
Honestly overall I think step 1 is just to cut down on the total number of shaders in Unreal games, but it's hard to put the permutation and shader editor genies back in the box to some extent.
Yes first world problems and all.... right?You have the freedom to move away from the 2500 dollar stuttering and freezing, benchmark-winning platform at will. And get your 500 dollar console and be content with the problems on that side of the equation.
Your PC master race duality perspective of gaming technology is very tiresome and out of place here.You have the freedom to move away from the 2500 dollar stuttering and freezing, benchmark-winning platform at will. And get your 500 dollar console and be content with the problems on that side of the equation.
Your PC master race duality perspective of gaming technology is very tiresome and out of place here.
I wonder when the next big UE5 demonstration will be? I'd love to see a new demo from Epic which shows some of the improvements and features added to the engine since the Early Access release in practice. There's already quite a few games confirmed in development with UE5 too. I wonder how quick the industry will move over to UE5 once it's fully released? Fun times ahead!
Anything that helps to reduce full object normalmaps is good.Yeah I can’t wait to see what UE5 early adopters do with the triangle budget. I really hope it’s more than super detailed rocks. I’m struggling to think of what other environments would benefit though. Modern architecture is so flat and blocky.
Hopefully it’s at least the end of normal mapped knobs on control panels.
Anything that helps to reduce full object normalmaps is good.
Way too many games have visible compression artifacts on near flat surfaces.
Even with relatively small poly objects there should be some very interesting uses, like for clutter objects.
Ability to litter world with huge amounts of varied objects, should be useful.