Advanced Shader Delivery uses precompiled shaders for “console-like load times” across PC hardware.

  • Dyskolos@lemmy.zip
    link
    fedilink
    English
    arrow-up
    17
    ·
    14 hours ago

    Yeah. That’s the real problem microslop. The shader wait times. We all love copilot and the death of an OS. But these wait times is where we all draw a line.

    • Randelung@lemmy.world
      link
      fedilink
      English
      arrow-up
      9
      ·
      14 hours ago

      “Oh no, the game with awesome graphics I spent money on to run on my awesome graphics card I also spent (way too much 😭) money on now wants to optimize its performance for my configuration specifically!? The audacity!”

  • Quetzalcutlass@lemmy.world
    link
    fedilink
    English
    arrow-up
    36
    ·
    edit-2
    20 hours ago
    1. Steam already does this and it rarely helps due to how every card + driver revision requires its own unique compilation. I think Steam’s is opt-in though and I doubt Microsoft will give you a choice, so maybe they’ll have more luck due to the sheer amount of data they’ll be able to harvest. Ugh.
    2. I still genuinely hope it works out. I’ve been playing Enshrouded lately, and on my machine it takes forty minutes to compile shaders after every driver update.
      • sp3ctr4l@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        3 hours ago

        Lol.

        I am now trying to imagine like…

        A torrent client, that is JIT Lua, and you just ‘stream’ the game, as you download more of it.

      • Quetzalcutlass@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        4 hours ago

        The developers know it’s bad, and the game’s next mega-patch is focused on fixing all the tech debt they’ve accrued during Early Access. You can already choose to play while the shaders are still compiling, but that slows down compilation multiple-fold and you’ll be missing features such as lighting until it’s finished so it’s barely playable (especially considering how ridiculously atmospheric the game is - there’s a reason the shader load is so heavy and it’s totally worth it).

        It’s also probably nowhere near as bad a wait for most players. Shaders are compiled on the CPU and which shader paths are compiled is based on what your GPU supports. I have a relatively new GPU (4060) and a fifteen year old CPU, so it’s compiling the fanciest of shaders on an ancient four-threaded relic.

        The game itself runs fine - 60 FPS at 1080p on my ancient machine. It’s just getting to play that’s annoying.

    • Randelung@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      14 hours ago

      I have a Skylake CPU. I know if Microslop goes through with this, it’ll just be another “oh sorry, can’t run this software on your hardware. ¯⁠\⁠_⁠(⁠ツ⁠)⁠_⁠/⁠¯ Please buy a new computer. Also SafeBoot and Intel for some reason.”

    • sp3ctr4l@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      14 hours ago

      forty minutes?

      Good lord.

      I think the longest amount of time I’ve spent compiling shaders on a Steam Deck is for Cyberpunk 77, and it can’t have been much more than 10 minutes.

      … Either that or trying to get a Switch emulator to properly pre-compile shaders.

      But anyway: This is an unaviodable thing that has to be done when the game relies so heavily on GPU shaders.

      You have to actually generate those shaders, before you can use them, and that’s gonna be specific to your hardware.

      So what MSFT is doing here is just pre-compiling them for I guess … every game they offer, with every Nvidia GPU/driver update, and then having a cloud system that allows you to download them instead of compiling them on your end.

      So basically its kinda like downloading a game + hardware specific driver, sort of.


      Also, I… I’m not sure, but I don’t think Steam does this.

      Yeah, its indicated that shader compilation is happening in the ‘Download’ section, but so are ‘File Operations’ - aka, cleaning up loose files and doing memspace management …

      I am pretty sure you are just actually compiling the shaders on your own hardware, its just visualized to the user as a step in the ‘Download’ section, to get across the idea that the game isn’t ready to be played untill all those steps are complete.

      Or, you can change a setting somewhere, and it just skips that step so that it isn’t part of the initial ‘Download’ process, and instead occurs the first time you hit play, or, after any game/driver update that has delta’d the shader code.

      • Quetzalcutlass@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        4 hours ago

        It’s in Options - Downloads - Shader Pre-Caching.

        Shader Pre-Caching allows Steam to download pre-compiled GPU shaders matching your system configuration. […] If enabled, Steam will collect shaders from your system when needed.

        It’ll download shaders matching your card+driver and (if you’re the first with that specific config) upload your own compiled shaders for others to use.

      • anguo@piefed.ca
        link
        fedilink
        English
        arrow-up
        5
        ·
        13 hours ago

        Shaders are definitely downloaded on the Steam Deck. Don’t know about other hardware though.

        • sp3ctr4l@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          11 hours ago

          https://pulsegeek.com/articles/shader-pre-caching-on-steam-deck-real-benefits/

          Ok, so, its kind of both:

          Shader pre-caching means compiling GPU programs ahead of play to avoid on-demand stalls. On Steam Deck, the path usually includes prebuilt Vulkan pipelines distributed by Steam, plus local caches created by DXVK for DirectX 9 and 11 and by VKD3D for DirectX 12. This two tier approach mitigates runtime work and smooths frame pacing when new materials or post processing effects first appear.

          Caches consume storage and can become stale after game patches or driver changes. When mismatches occur, the system may recompile anyway, so the saved time diminishes.

          Shader stutter often traces to pipeline state changes that force compilation or shader specialization. With Vulkan, pipeline objects encode fixed state to avoid per draw setup, which shifts cost to creation. Pre-caching amortizes that by compiling pipelines during downloads or first launches. The effect is fewer spikes, especially during initial encounters with enemies, weather transitions, or new regions. Still, certain shaders depend on runtime constants or device specific details, which can prevent perfect reuse.

          So, at least with Vulkan/Steam Deck/Steam on Linux, you may be downloading various prebuilt components, and you may be pre-caching/pre-compiling local files based off of those prebuilt components, and the game/gpu/driver.

          I’m not entirely sure if the Steam Download section actually distinguishes between these two different kinds of procedures, it may, and I just haven’t noticed, because normally it is fast enough that I don’t pay attention.

    • Korhaka@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      5
      ·
      18 hours ago

      Not played enshrouded in a while, should play again sometime. Ideally play some coop too