Often when I launch a game through Steam that “processing Vulkan shaders” window appears and loads for a couple minutes. Sometimes it takes no time, sometimes it takes several minutes. But then, for larger games like Dune Awakening or Outer Worlds 2, the game needs to sit and process shaders for another couple minutes anyway. But for some games, like Enshrouded, I can skip the Vulkan processing with no problems in the game (I do that because the Vulkan processing doesn’t go anywhere). So what is that Vulkan processing for?

  • who@feddit.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    2 months ago

    Shaders are the tiny programs that generate a lot of the graphics you see in modern games. They have to be compiled into machine instructions in order to run on whatever hardware you have. Compiling each one takes a little time. Some games compile them all at once when you launch the game, so that they’re ready to go when needed during gameplay, while others let the graphics driver compile them on demand, which can lead to unpleasant frame rate hitches.

    Steam’s Proton tries to help with this process by keeping tabs on the shaders that a game needs, compiling them for your hardware before launching the game, and collecting the compiled versions for use by other players with similar hardware. If someone has played the game with Proton before you, then Steam will give you copies of their shaders, so you don’t have to spend as much time waiting for your machine to compile them. (If this processing step is taking forever, it’s possible that you’ve encountered a bug, or a problem with the network or Steam’s servers.)

    You can skip that step and jump right into the game, but then you might find the game’s frame times feeling stuttery or even pausing for seconds at a time while the shaders compile on demand. It won’t harm your system, but it can be annoying and make it hard for you to perform well in competitive action games. If you play through it for long enough, all the shaders that get used will eventually be compiled, and things will run smoothly thereafter.

    • Dariusmiles2123@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 months ago

      Since you seem to know way more than me about these things, could you tell me why I feel like I’ve never experienced these on a console (Playstation) and I experience it quite often on PC (Steam Deck)?

      • ryper@lemmy.ca
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 months ago

        Console games only have to deal with a fixed set of hardware, so they come with precompiled shaders for that hardware. PC games don’t know what they’re going to run on, so the shaders are compiled on the machine where the game is played.

        • Snickeboa@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          1 month ago

          So how come this is not a thing on Windows? I switched to Linux earlier this year and I see this compilation prompt each time a launch a game. But I have never seen it on Windows.

          It’s possible that I have this “use precompiled shaders” feature enabled on my Windows installation but not on Linux i guess. But I have literally never seen it on windows for any game on any launcher.

          I am also curious as to why these shaders are not just compiled once with the first installation of the game (or once per update)