WHAT
Recently, there have been a number of conversations taking place in the Epic community around shader stuttering and its impact on game developer projects.
This week, we’re going to dive into why the phenomenon occurs, explain how PSO precaching can help solve the issue, and explore some development best practices that will help you minimize shader stuttering. We’ll also share our future plans for the PSO precaching system with you.
If you have questions around this topic beforehand, we would love to hear them! Please post them below and we will collect them for Q&A that will be answered live!
WHEN
Thursday, February 6th @ 2:00 PM ET - Countdown
WHO
Mihnea Balta - Rendering Engineering Director
Kenzo ter Elst - Distinguished Rendering Engineer
Daniele Vettorel - Principal Desktop Platform Programmer
Ari Arnbjörnsson - Senior Software Engineer, Developer Relations - https://ari.games
Tina Wisdom (She/Her) - Community Manager - @TheUnWiseTina
If you’re unable to make the show, all livestreams can be viewed afterwards on-demand .
About PreCaching; It seems to me like whatever isn’t already there during load will have its shader compiled at runtime. It won’t be blocking because the shader won’t be used, but won’t that severely affect overall CPU performance every time you’re seeing a Particle or whatever during play for the first time? It still sounds to me like the previous PSO Bundle is the best way to solve this as long as you have a very robust automation framework to catch all the PSOs needed when making a build.
I feel like Unreal is suffering from same problem DX11 suffered with not-knowing when what shader will be used. Essentially, we just moved the compilation problem from driver to game engine. What is more ideal is that this should be moved to the hands of developers with a nice API to work with. It can be difficult for Unreal to predict when I’m going to spawn an effect, but I know exactly when I’m going to do that. So, give us an API that allows us to set high-priority compilation targets for assets and even query whether asset is compiled and ready to go. IMO this should be priority because this is a deterministic solution that guarantees results whereas in automatic pre caching puts more load on CPU by generating 5x PSO’s than what is needed and likely won’t have 100% coverage for some time yet.