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

Wolfgang

Redakteur
Teammitglied
Dabei seit
Nov. 2002
Beiträge
6.098
#1
Dabei seit
Juni 2010
Beiträge
649
#3
Klingt doch ganz gut :)

Ist das nur unter Windows der Fall oder auch unter Linux?
 

Nitschi66

Kreisklassenmeister
Dabei seit
Nov. 2007
Beiträge
7.916
#6
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?
 
Dabei seit
Okt. 2010
Beiträge
180
#7
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:
Dabei seit
Okt. 2008
Beiträge
5.360
#10
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 ()

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 ()

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 ()

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.
 

Iapetos

Lt. Commander
Dabei seit
Mai 2007
Beiträge
1.684
#13
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?).
 
Dabei seit
Dez. 2012
Beiträge
5.475
#14
Spiele aber extrem selten spiele die auf OpenGL basieren.

Nur für Linux und Mac interessant :)
 
Dabei seit
Mai 2013
Beiträge
220
#15
Zitat von Piktogramm:
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.

Zitat von Hito360:
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.
 

aRRoW86

Cadet 1st Year
Dabei seit
Apr. 2006
Beiträge
11
#17
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.
 
Dabei seit
Apr. 2012
Beiträge
5.082
#18
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?
 
Dabei seit
Jan. 2015
Beiträge
1.271
#20
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
 
Top