News Auto Shader Compilation (Beta): Nvidia lässt Shader jetzt auf Wunsch im Hintergrund erstellen

Es gibt so Spiele, die ruckeln nach einem neuen Treiber noch Ewigkeiten, bis die Shader endlich kompiliert sind. Snowrunner ist zB. so ein Kandidat. Wäre schön wenn das klappt mit dem Vor-Kompilieren.
 
  • Gefällt mir
Reaktionen: aid0nex, DirtyHarryOne und MrThompson
Capthowdy schrieb:
Ich sehe schon die ersten Beiträge im Sinne von "meine CPU ist die ganze Zeit bei 100 % Auslastung, obwohl ich auf dem Desktop bin und nichts mache!" :D
Oh Gott ja...
 
  • Gefällt mir
Reaktionen: Pisaro
Die einen nennen es Fortschritt, die anderen Energieverschwendung und unnötige Komplexität.
 
Eigentlich dachte ich, dass MFG x 6 und die restl. Technologien bei Veröffentlichung fertig sind und nicht, dass sich diese dann noch im Entwicklungsstadium befinden. 🤨
 
X5_492_Neo schrieb:
Jeder würde sich wünschen das dieses Shader Kompilieren weg wäre! Und jetzt kommt genau das?!? 😂😂 Keine Chance! Kann ich nicht ernst nehmen!
Es ist ja an der Stelle nicht weg, sondern es wird nur verlagert. Lange Zeit galt für Shader, dass die nach dem Prinzip "JIT" gearbeitet haben - Just-In-Time und das war auch lange kein Problem, als die Komplexität überschaubar war.

Die Probleme mit dem Shader-Compiling ist "relativ" neu, seit die Komplexität und Co gestiegen ist und auch immer mehr Kontroll-Konstrukte möglich waren.
Capthowdy schrieb:
Der Shader-Cache wird ja lokal gespeichert (afaik unter "%LOCALAPPDATA%\NVIDIA"), daher sollte es für den Treiber keine Kunst sein, alle im Cache vorhandenen Shader neu zu kompilieren, wenn ein Treiberupdate installiert wurde.
Ähm ... nein! Denn im Cache liegen nicht die "Source"-Dateien, sondern die "Binaries". Das, was Nvidia hier umsetzt, ist an der Stelle auch nicht so trivial, wie es im ersten Moment erscheint, sondern schon deutlich komplexer.

Die Shader liegen je nach dem, wie das Spiel/Engine die Shader verwaltet, in Archiven, Ordnerstrukturen und Co. die muss der Treiber durchgehen und nach den entsprechenden Source-Dateien suchen und dann auch bereit stellen. Dazu kommt, dass ggf. auch mal Shader zwar in den Dateien liegne, die jedoch nicht genutzt werden usw.
Tobias123 schrieb:
Die einen nennen es Fortschritt, die anderen Energieverschwendung und unnötige Komplexität.
Beim Compiling wird der Energieaufwand - an der Stelle - nur veralgert. Ob die Energie jetzt beim Spielen aufgewendet wird, beim Start des Spieles oder nach der Treiberinstallation? Ist egal. Es könnte sogar passieren, dass es bei der Installation/nach der Installation sogar energieeffizienter ist, weil kurzfristig mehr Ressourcen bereit stehen und unnötige Wartezyklen umgangen werden.
 
  • Gefällt mir
Reaktionen: autopilot
Capthowdy schrieb:
"meine CPU ist die ganze Zeit bei 100 % Auslastung, obwohl ich auf dem Desktop bin und nichts mache!" :D
1. Antwort Windows Update!
2. Antwort Virenscanner.
3. Antwort. Neu euch noch Nvidia Shader Compilation.

Benna schrieb:
Eigentlich dachte ich, dass MFG x 6 und die restl. Technologien bei Veröffentlichung fertig sind und nicht, dass sich diese dann noch im Entwicklungsstadium befinden. 🤨
Frag mal bei Microsoft wieso ihr Fertigs windows 11 mit jedem Update wider kaputt gemacht wird ^^
 
  • Gefällt mir
Reaktionen: Pisaro
X5_492_Neo schrieb:
@Wolfgang Sorry, kann ich irgendwie nicht glauben.

Jeder würde sich wünschen das dieses Shader Kompilieren weg wäre! Und jetzt kommt genau das?!? 😂😂 Keine Chance! Kann ich nicht ernst nehmen!
1775039445380.png


Ist kein Scherz. Ich finde das Feature interessant.
 
Wolfgang schrieb:
Shader werden und wurden schon immer von der CPU kompiliert und nicht auf der Grafikkarte. Auch wenn sie natürlich für die Grafikkarte gedacht sind, die die kompilierten Shader dann ausführen wird.
Habe ich was anderes geschrieben?
Wolfgang schrieb:
Und ich vermute mal, dass wenn ein Spiel einmal vorab Shader kompiliert hat, die dann hinterlegt sind und der Treiber das sieht, kann der Treiber halt unabhängig vom Spiel für seine neueste Version die Shader neu kompilieren.
Was einen gewöhnlichen Vorgang beschreibt, Zum einen wiederholst du, was ich bereits geschrieben habe und danach vermutest du etwas, was sowieso schon lange Standard war und ist. Eine Neuigkeit wäre es, wenn der Treiber durch die Erkennung der installierten Spiele die Shader kompilieren könnte, ohne vorher die Spiele gestartet zu haben.
 
DevPandi schrieb:
Ähm ... nein! Denn im Cache liegen nicht die "Source"-Dateien, sondern die "Binaries".
Das ist klar, aber der Treiber sollte doch anhand der kompilierten Shader in der Lage sein, die zugehörigen Sourcedateien neu zu kompilieren, dabei sehe ich jetzt kein Problem? Bei einem Spiel dessen Shader noch nie kompiliert wurden, sieht das natürlich anders aus.
 
Ich finde es traurig wie viele Leute hier in den Kommentaren den Artikel, der den Sachverhalt korrekt beschreibt und nicht besonders lang ist, nicht sinnerfassend lesen können oder wollen.

Sobald die "shader" (das ist vereinfacht, zumindest in low-level APIs, aber gut genug) einmal vom Spiel selbst kompiliert wurden hat die Driver-Caching-Infrastruktur grundsätzlich die notwendigen Informationen um das wieder zu tun. Das ist strikt notwending, ansonsten könnte das Caching an sich nicht funktionieren. Das neue Feature ist offensichtlich, dass optional nach einem Treiberupdate die Cache-entries im Hntergrund erneuert werden.

Wirkt sinnvoll.
 
  • Gefällt mir
Reaktionen: Xalloc, |Maulwurf|, denbaschu und eine weitere Person
Man kann Nvidia ja vieles vorwerfen. Aber AMD wäre in der jetzigen Verfassung wohl niemals auf sowas "einfaches" gekommen.
Jetzt werden die bei AMD ganz nervös, kündigen das für "demnächst" an und veröffentlichen dann "schon" Ende nächsten Jahres mit einer ersten Beta von "FSR Fluid Shader Compilation" eine unaussprechliche und schlechtere Kopie davon.
Die Veröffentlichung erfolgt dann natürlich ohne vorherige Ankündigung vollkommen überraschend (nachdem schon keiner mehr daran glaubt) an einem Freitag Nachmittag. Traditionen müssen schließlich bewahrt werden 😁
 
Im Leerlauf? Wir werden sehen, hört sich aber erstmal gut an. Aber wenn ich da an zum Beispiel The Last of Us denke, das selbst auf meinem 13900K Raptor-Lake gut 15 Minuten für die Shader braucht, die CPU extrem auslastet.
Ich hab die Befürchtung, dass "Leerlauf" auch heißt, ich bin grade im Browser unterwegs und auf einmal dreht mein CPU-Kühler durch, weil Shader im Hintergrund verarbeitet werden.
 
Man muss es ja erst mal aktivieren und dann auch noch auf hoch setzen, damit die Auslastung auch wirklich hoch ist. Falls dein Lüfter hochdreht, stell es halt auf niedrig.
Man kann sich auch echt anstellen wie der erste Mensch... :rolleyes:

1775047537298.png
 
  • Gefällt mir
Reaktionen: Grestorn, iWenzi82 und Perdakles
Super sinnlos, ich habe viele Spiele installiert die ich nur unregelmäßig spiele (manchmal vielleicht nur 1x im Jahr) - da will ich auf keinen Fall bei jeder Treiberinstallation automatisch Shader erstellen lassen.
 
@aLanaMiau
Dann ist doch für dich alles perfekt. Du lässt das Feature aus und alle die es für sinnvoll halten, schalten es an. Es gibt doch keinen Zwang es zu nutzen.
 
  • Gefällt mir
Reaktionen: aid0nex, Grestorn, SyntaX und 4 andere
Der nächste Schritt wird sein, da man fertige Shader direkt laden kann.
Das wird ein großer Schritt gegen das Shader Ruckeln beim ersten Durchlauf sein.
 
Ich bin da im Grunde bei @Termy, dass es so etwas ähnliches (bzw. zumindest mit ähnlichem Ziel) mit Fossilize bei Steam auch schon eine Weile gibt. Zugegebenermaßen nur für supportete Spiele mit Vulkan oder OpenGL shader pipeline aber auch hier werden shader im Hintergrund (sofern per Opt-In aktiviert und Steam läuft) automatisch geupdated, wenn sich der Treiber akualisiert.

Wenn es die shader für die Treiber+Hardware Kombination schon gibt, werden diese ja zum Teil jetzt schon fertig compiliert geladen (das funktioniert natürlich bei fixem Hardware-Target wie dem Steam Deck am besten).

Wenn ich hier falsch liege würde ich mich (da ich die Weisheit nicht mit Löffeln gefressen habe) über eine kontrastierte Betrachtung freuen. Neben Fossilize z.B. auch mit Microsoft's Advanced Shader Delivery
@Wolfgang @DevPandi

Das soll natürlich nicht die Sinnhaftigkeit der Lösung hier in Zweifel ziehen. Ich finde das grundsätzlich eine gute Option (man muss es ja nicht nutzen), die hier potentiell auch nützlicher sein kann, da mehr Spiele/Engines unterstützt sind.
 
Zuletzt bearbeitet:
Zurück
Oben