• MentalEdge
    link
    fedilink
    English
    9
    edit-2
    6 months ago

    Shader compilation stuttering only happens if a game was coded incorrectly to begin with.

    Shaders should never ever be compiled during gameplay, and if it has to be done, done so asynchronously.

    Either way it should never be dismissed as a problem that is “common in new games”. It’s amateurish and completely avoidable.

    • @[email protected]
      link
      fedilink
      English
      46 months ago

      The fromsoft cult doesn’t like that kind of talk, you’re supposed to ignore performance issues, dictate to people how to play the game or else “they did it wrong”, and tell people to GIT GUD.

      • MentalEdge
        link
        fedilink
        English
        26 months ago

        I adore Fires of Rubicon. They know how to design games, and how to pull off an aesthetic. That side of the studio has serious world-class talent.

        But fromsoft has some big issues on the graphics tech expertise side of things.

        I don’t think I’ve seen any subsurface scattering in their games, or proper multi-texture materials. I don’t think they are on a PBR workflow (physically based rendering) though they couldn’t achieve their “style” if they were. And the way they still rely on shell texturing in places they really, really shouldn’t, actually hurts.

        My problem isn’t with their style. It’s that they don’t seem to know all the industry standard solutions and techniques that exist and have been developed, and shoot themselves in the foot both in terms of performance and fidelity, by achieving things in ways that an expert could immediately tell is a bad idea.

          • MentalEdge
            link
            fedilink
            English
            2
            edit-2
            6 months ago

            PBR isn’t shit, and it doesn’t necessarily mean targeting photorealism.

            It’s just a benchmark for material rendering that means once all your assets come out the other end of production, they work consistently with each other.

            You could shift that benchmark towards cartoony or painterly or whatever you like, and even with assets produced using PBR, it’s easier to “style” your game later because all your different assets are at the same starting point, and will therefore react to rendering changes consistently across the board.

            Basically if your entire team is making metal materials by eyeballing it, and you then put it all together in a scene, you won’t be able to get all the different metal objects to look like metal at the same time as you make changes to the lighting in the scene, because the asset team made all of them using slightly different material parameters.

            If you make your entire asset production pipeline PBR, all metal assets will behave the same, all glass materials will behave the same, flesh, fabric, fur…

            You get the idea.

    • @MrMcGasion
      link
      English
      36 months ago

      Compiled shaders are unique to every GPU model and often driver revision. The console versions don’t studder because they all have identical hardware, so compiled shaders can be shipped with the game.

      Steam will eventually download a shader cache specific to your hardware, otherwise if you jump straight into a new game on PC, the game is going to have to compile them during gameplay, or make you wait 30 minutes to play while they compile (similar to how a lot of emulators for modern consoles like the Switch make you wait). And since nobody wants to launch a newly downloaded game just to sit at a boring 30 minute loading screen, they do their best on the fly.

      This isn’t about defending Fromsoft, they’re just another company trying to get your money. I’m just saying that’s how PCs work, and new games with complex shaders are probably pick being accused of having performance issues at launch than hitting players who are expecting to launch a game and play right away with a long loading screen (that a patent prevents them from putting a mini game on while you wait).

      • MentalEdge
        link
        fedilink
        English
        2
        edit-2
        6 months ago

        I know.

        But only games running dx12/Vulkan must compile shaders.

        The “normalcy” of sutters on linux is because dx7-11 games are running through vulkan, and those games were never coded to account for the way Vulkan works. Hence the shaders are compiled (by VKD3D/DXVK, not the game) during gameplay when first needed.

        Like I said, if games must compile shaders during gameplay, they should do so asynchronously in order to not impact frametimes. This only applies to titles actually coded with the intention of being run under dx12/vulkan. Elden Ring in particular straight up violates the dx12 spec.

        Compiling the shaders in advance also doesn’t take 30 minutes, and doesn’t require doing so for the entire game. Many games will only compile the shaders for the immediate area that a player is in. (Apex Legends in dx12 mode for example processes only the current map in rotation and lets you play when it’s done)

        Games that precompile shaders when running using Vulkan/dx12 have never made me wait longer than a few minutes at most, and only at first launch.

        There is no excuse.