• Mitspieler gesucht? Du willst dich locker mit der Community austauschen? Schau gerne auf unserem ComputerBase Discord vorbei!

News Weniger Ruckler: Steam aktiviert „Shader Pre-Caching“ für Vulkan & OpenGL

Wolfgang

Redakteur
Teammitglied
Registriert
Nov. 2002
Beiträge
8.966
Eine ähnliche Technik kam auch später nach Release bei Elite Dangerous zum Einsatz um das Ruckeln im Frameshift zu minimieren. Funktioniert sehr gut.
 
Klingt doch ganz gut :)

Ist das nur unter Windows der Fall oder auch unter Linux?
 
Nai schrieb:
Sinn erschließt sich mir nicht ganz. Shader werden sowieso schon im Graka Treiber gecacht. Man spart sich also nur das kompilieren beim ersten Laden. . . . .

Jup, habs direkt abgeschaltet.
 
Während Steam die Shader vorab laden kann, können GeForce- und Radeon-Grafikkarten diese nach dem ersten Spielstart speichern und beim nächsten Start erneut verwenden. Auch dann werden Ladezeit und Nachladeruckler reduziert. Dafür müssen im Treiber entsprechende Profile für das jeweilige Spiel hinterlegt sein.
Ich verstehe Hand in Hand irgendwie nicht. Für mich hört sich "Hand in Hand" helfend bzw ergänzend an. So wie ich den Fließtext aber dann verstehe, sind es zwei verschiedene System die unabhängig voneinander funktionieren?

Wenn ich es richtig verstehe:
Beim aller ersten Laden (direkt nach der Installation) des Spieles werden Shader kompiliert. Das speichert sich AMD oder NVidia mithilfe des Treibers und legt die ab. Beim zweiten Laden (egal ob ein Neustart war oder nicht) greift AMD oder NVidia auf diese Speicherung zurück.
Steam hilft mir jetzt also nur beim wirklich ALLER ersten Starten des spiels?
 
Steht doch in der Beschreibung, dass man damit die Performanceeinbußen beim ersten Laden umgehen will. Wenn der von Steam geladene Cache identisch mit dem des Treibers ist und nicht überschrieben wird, spart man sich den Kompilierschrit eventuell ganz.

Siehe z.B. die Probleme bei Hellblade: Senua's Sacrifice oder CEMU, bei letzterem tauschen die User fertige Shader Caches der einzelnen Spiele untereinander um Hänger zu vermeiden.
 
Zuletzt bearbeitet:
listet mal jemand aktuell relevante speile die nur in OpenGL/Vulkan verfügbar sind?...
 
Nai schrieb:
Sinn erschließt sich mir nicht ganz. Shader werden sowieso schon im Graka Treiber gecacht. Man spart sich also nur das kompilieren beim ersten Laden. . . . .
Der erste Eindruck zählt. :rolleyes:
 
sodass diese nicht mehr in Echtzeit von der Grafikkarte kompiliert und dann ausgeführt werden müssen

Korrigiert mich, aber mein Halbwissensstand war, dass die entsprechendem Compiler beim Treiber integriert sind und auf der CPU ausgeführt werden. Die GPU bekommt dann den Bytecode zum Abarbeiten.
Ergänzung ()

KillX schrieb:
Ist das nur unter Windows der Fall oder auch unter Linux?

Steam Client vom 30.Oct bietet die Option unter Linux bei mir nicht.

Das ist wie ich glaube aber auch ein undankbarer Job. Bei den Treibern ist bei AMD gerade sehr viel Bewegung drin und Intel hat zuletzt glaub auch am Caching gearbeitet. Es würde mich sehr überraschen, wenn Valve sich für den kleinen Kundenkreis die Arbeit machen würde dieses Feature für Pinguin OS und dessen Wildwüchsen scharf zu schalten.
Ergänzung ()

Nai schrieb:
Sinn erschließt sich mir nicht ganz. Shader werden sowieso schon im Graka Treiber gecacht. Man spart sich also nur das kompilieren beim ersten Laden. . . . .

Beim ersten Laden kann bei dynamisch geladenen Shadern eben auch bedeuten "mitten im Spiel" und "aller paar Sekundenbruchteile" mit entsprechend daraus resultierenden Rucklern.
Ergänzung ()

Nitschi66 schrieb:
Wenn ich es richtig verstehe:
Beim aller ersten Laden (direkt nach der Installation) des Spieles werden Shader kompiliert.

Beim ersten Start des Spieles wird das in der Regel nicht gemacht. Da müsstest du sehr lange warten bis alle Shader compiliert sind*. Typischerweise wird es das Compilieren beim Laden von Leveln erledigt (für die Shader die in den Level notwendig sind) oder aber die Shader werden dynamisch geladen (im Spiel, immer wenn es notwendig ist) und dann compiliert. Letzteres bietet sich für offene Spielwelten an, kann aber auch für Ruckler sorgen.
 
Irgendwas vorkompiliertes wird heruntergeladen und direkt ausgeführt. Hört sich für mich nach Sicherheitslöchern an.
 
Ja, wie zum Beispiel jedes Spiel, das du bei Steam kaufst, ebenfalls vorkompiliert und dann von dir heruntergeladen wird.

Ich kann mir kaum vorstellen, dass diese Technik außerhalb von SPIR-V funktioniert, da jeder OpenGL-Treiber andere Shader-Formate verdaut. Somit müsste also auch der jeweilige OpenGL-Treiber in der Lage sein, vorkompilierte SPIR-V-Shader zu laden (OpenGL 4.6?).
 
Spiele aber extrem selten spiele die auf OpenGL basieren.

Nur für Linux und Mac interessant :)
 
Piktogramm schrieb:
Zitat Zitat von KillX Beitrag anzeigen
Ist das nur unter Windows der Fall oder auch unter Linux?
Steam Client vom 30.Oct bietet die Option unter Linux bei mir nicht.
Steam Build vom 12. Dezember, den ich heute bekommen habe, unterstützt es. Also einfach warten und freuen.

Hito360 schrieb:
listet mal jemand aktuell relevante speile die nur in OpenGL/Vulkan verfügbar sind?...
DotA
Und ansonsten freuen sich hier sicherlich in erster die Linuxnutzer, da dort Vulkan/OpenGL ja die verbreiteten Schnittstellen sind.

Eine Liste der Spiele, die dieses Precaching aktiv nutzen, wäre aber interessant. Bei mir steht immer noch 0 MB pre-cached.
 
Kam bei mir für Linux schon vor ein paar Tagen (glaube 9 Dez oder so). Stoße das Update mal manuell an. Hab aber noch kein einziges MB pre-cached.
 
Zu meiner Überraschung war bei mir schon 1 MB mit der neuen Funktion vorabgeladen.
Als ich sie deaktivierte (und wieder aktivierte) hatte ich gleich 4 kleine Downloads bei folgenden Spiele:

Binding of Isaac: Rebirth
Brink
FTL
Prison Architect

Diese scheinen die neue Funktion also zu unterstützen.
 
Das kann man doch auch über den Nvidia Treiber in der Systemsteuerung selbst einrichten, indem man dort Shadercache auf ein stellt, dann das Game startet und einmal abspeichert und dann das Game nochmals neu startet, oder nicht?

​Gab doch mal diesbezüglich Informationen, wo es zu unterschiedlichen Ergebnissen bei Game-Benchmarks gab, wo genau bei Nvidia Grafikkarten sogar diese Einstellung empfohlen wurde, wenn ich es noch richtig in Erinnerung habe! Das müsste doch den gleichen Effekt haben und eigentlich direkt über den Treiber besser umgesetzt werden, als über einen Client, oder nicht?
 
Wenn mir das mehr FPS bringt, dann ist das super. Da ich momentan nur mit meinem Laptop spiele (AMD R5 430M) kann das ein oder andere FPS mehr nicht schaden :D
 
Zurück
Oben