← Back to context

Comment by Uvix

3 days ago

The shader stutter issues are non-existent on console, which is where most of their sales are. PC, as it has been for almost two decades, is an afterthought rather than a primary focus.

No, that's not the reason.

The shader stutter issues are non-existent on console because consoles have one architecture and you can ship shaders as compiled machine code. For PC you don't know what architecture you will be targeting, so you ship some form of bytecode that needs to be compiled on the target machine.

  • Agreed. I didn't mean to say consoles' popularity is why they don't have shader stutter, but rather it's why implementing a fix on PC (e.g. precompilation at startup) isn't something most titles bother with.

    • It's not just popularity, Epic has been trying really hard to solve it in Unreal Engine.

      The issue is that, because of monolithic pipelines, you have to provide the exact state the shaders will be used in. There's a lot of that, and a large part of it depends on user authored content, which makes it really hard to figure out in advance.

      It's a fundamental design mistake in D3D12/Vulkan that is slowly being corrected, but it will take some time (and even more for game engines to catch up).

    • You still don't get it. It's just not possible to ship a precompilation of every shader permutation for every supported hardware permutation.

      2 replies →

If anything I think PC has been a prototyping or proving grounds for technologies on the roadmap for consoles to adopt. It allows software and hardware iterations before it's relied upon in a platform that is required to be stable and mostly unchanging for around a decade from designing the platform through developers using it and recently major refreshes. For example from around 2009 there were a few cross platform games with the baseline being 32bit/DX9 capabilities, but optional 64bit/DX11 capabilities, and given the costs and teams involved in making the kind of games which stretch those capabilities I find it hard to believe it'd be one or a small group of engineers putting significant time into an optional modes that aren't critical to the game functioning and supporting them publicly. Then a few years later that's the basis of the next generation of consoles.

You know the hardware for console so you can ship precompiled shaders.

Can't do that for PC so you either have long first runs or stutter for JIT shader compiles.

  • Long first runs seem like an unambiguous improvement over stutter to me. Unfortunately, you still get new big games like Borderlands 4 that don't fully precompile shaders.

    • Depending on the game and the circumstances, I'm getting some cases of 20-40 minutes to compile shaders. That's just obscene to me. I don't think stutter is better but neither situation is really acceptable. Even if it was on first install only it would be bad, but it happens on most updates to the game or the graphics drivers, both of which are getting updated more frequently than ever.