Elden Ring: Valves Shader Pre-Caching sorgt für stabile Performance auf Steam Deck und Linux
Valve hat in der vergangenen Woche ein Shader Pre-Caching-Update für diverse beliebte Steam-Spiele verteilt, darunter auch für Elden Ring. Das ist zwar unter Windows eigentlich nicht mit dem Feature kompatibel, dafür jedoch dank Proton unter Linux. Insbesondere auf dem Steam Deck beseitigen die vorkompilierten Shader lästige Ruckler.
From Softwares Elden Ring war bislang von Erfolg gekrönt. Bei Spielern ist der Titel ein Verkaufsschlager, während bei Kritikern Top-Wertungen abgeräumt werden. Doch obgleich der Titel spielerisch überzeugen kann, gibt es technisch einige unschöne Ecken und Kanten. Gerade der Punkt Optimierung stand bei den Entwicklern nicht allzu weit oben auf der Prioritätenliste. Das Resultat sind insbesondere auf dem PC unschöne Ruckler.
Bei Digital Foundry titelte man bei der eigenen Technik-Analyse, die PC-Performance sei "einfach nicht gut genug" und stellte fest, dass ungeachtet der verbauten Hardware teils deutliche Framerate-Einbrüche hinzunehmen sind. Demonstriert wurde das am Beispiel des Setups mit einem Core i9-10900K und einer Geforce RTX 3090, bei dem selbst in 720p Ruckler auftraten. Als Übeltäter wurde letztlich die Shader-Kompilierung vermutet, die sich insbesondere bei der hier verwendeten DirectX 12-API, gleichwohl jedoch auch bei Vulkan, bemerkbar macht, wenn Assets und Effekte nicht "fully baked" - simpel ausgedrückt, vorberechnet - sind, was beispielsweise beim ersten Spielstart erledigt werden kann, wenn es denn so durch die Entwickler konfiguriert ist.
Das Resultat sind stetige Kompilierungs-Vorgänge während des Spielens, die sich dann bemerkbar machen, wenn beispielsweise eine neue Animation, ein Effekt oder Gegner im Spiel erscheint. Logischerweise nehmen die Framerate-Einbrüche im weiteren Spielverlauf ab, allerdings nur dann, wenn etwa nicht zwischenzeitlich ein neuer Patch eingespielt wurde.
Verbesserungspotenzial bei derartigen Problemen hat man bei Valve bereits vor Jahren erkannt und bereits 2017 mit Shader Pre-Caching ein neues Feature dem Desktop-Client von Steam hinzugefügt. Ist das aktiviert, lädt Steam zusätzlich auf die Hardware und Treiber abgestimmte vorkompilierte Shader herunter, vorausgesetzt das Spiel wird dahingehend unterstützt und bedient sich OpenGL oder Vulkan.
Da Elden Ring DirectX 12 nutzt, fällt diese Option zur Beseitigung der lästigen Ruckler eigentlich raus, kann unter Linux mithilfe von Proton jedoch umgangen werden. Der Kompatibilitäts-Layer nutzt letztlich nämlich Vulkan und so wird jedes Spiel, ungeachtet der ursprünglich genutzten API, theoretisch kompatibel mit Steams Shader Pre-Caching. Interessant wird es diesbezüglich insbesondere für Nutzer des Steam Deck. Dort erhielten einige beliebte Spiele nämlich vergangene Woche Montag entsprechende "Shader Pre-Cache Updates" und darunter fand sich auch Elden Ring.
Fixes für die Steam Deck-Performance von Elden Ring hatte der Valve-Engineer Pierre-Loup Griffais bereits Ende Februar in Aussicht gestellt und auch einen ersten Ausblick auf die verbesserte Performance via Twitter gewährt. Vorerst musste auf den "bleeding-edge" Branch von Proton zurückgegriffen werden.
Der breite Rollout erfolgte entsprechend eine Woche später. Bei arstechnica.com hatte man das Update auf die Probe gestellt. Im Resultat zeigte sich in getesteten Spielabschnitten eine deutlich rundere Performance. Die Baseline von 30 Frames pro Sekunde wird mit einem Mix aus Low- und Medium-Settings gehalten. Wunder sollte man aber dennoch nicht von dem Shader Pre-Caching erwarten.

On the Fly is ja auch schwachsinn
Vor allem das Spiel hat ja garkein Cache..
Es macht es jedes Mal neu
Die Größe des Caches ist allerdings beschränkt, wenn du viel gleichzeitig zockst, kann es sein, das alte gelöscht werden und dann neu erstellt werden müssen.
On the Fly is ja auch schwachsinn
Vor allem das Spiel hat ja garkein Cache..
Es macht es jedes Mal neu
Mich reißt das Geruckel immer aus der Spielatmosphäre raus
Jetzt hast du halt ein Game, das die Shader on-the-fly kompiliert und die Leute heulen auch.
Ist eben alles falsch, egal wie man es macht.
Mich reißt das Geruckel immer aus der Spielatmosphäre raus
Assassin's Creed Origins ruckelte ohne wie die Sau auf meiner alten RX560 (die wohl so je nach Spiel so 20 -40% schneller wie die GPU der Steam Deck sein dürfte) allerdings sind mit der RX560 unter Linux auch 1440 x 900 (ca. 50 FPS, medium - high) oder sogar 1920p (ca. 30FPS) kein Problem und mit Shader Pre-Cache ist es wirklich wie Tag und Nacht alles läuft butterweich.
Da dürfte mit der Steam Deck an einem externen Monitor bei etwas älteren Spielen wie: Origin, Witcher 3 etc. auch noch ein gutes Stück mehr als die 1280 x 800 bei >=40FPS (medium - high) möglich sein. Die ganzen Mass effect Teile werden definitiv auch unter 1080p flüssig laufen.
1280 x 800 = 1024000 (1)
1440 x 900 = 1296000 (x1.27)
1920 x 1080 = 2073600 (x2.03)
[Ins Forum, um diesen Inhalt zu sehen]
Fossilize?
Bei meiner normalen Linux Büchse wird mir der folgende Eintrag unter Steam angezeigt.
Das läuft auf Wunsch auch im Hintergrund ab.
[Ins Forum, um diesen Inhalt zu sehen]