Epic Games hat am 4. Februar 2025 die Ursachen von Shader-Rucklern und den Ansatz des PSO-Precachings in Unreal Engine erläutert. Benötigt ein Spiel ein noch nicht kompiliertes Pipeline State Object, kann die Renderarbeit auf dessen Erstellung warten. Das verursacht sichtbare Unterbrechungen. Epic behandelt diesen Engpass getrennt von anderen Ursachen ungleichmäßiger Frame-Zeiten.
Pipeline State Objects bündeln Shader und weitere Zustände der Grafikpipeline. Auf dem PC muss der Treiber die Programme für die konkrete GPU übersetzen. Die seit Unreal Engine 5.2 eingeführte automatische Vorab-Erstellung soll benötigte Kombinationen möglichst vor ihrem ersten Einsatz vorbereiten. Nach Epics Darstellung kann das die Zahl der Ruckler stark reduzieren, beseitigt das Problem aber noch nicht in jedem Fall.
Ladebildschirm mit offenen Kompilieraufträgen abstimmen
Die versionsgebundene Dokumentation für Unreal Engine 5.5 beschreibt, wie PSO-Precaching beim Laden von Komponenten asynchron benötigte Pipelines sammelt und kompiliert. Für Ladebildschirme stellt die Engine die Abfrage FShaderPipelineCache::NumPrecompilesRemaining() bereit. Darüber lässt sich prüfen, ob noch Aufträge ausstehen, bevor das Spiel die Szene freigibt.
Zur Fehlersuche dokumentiert Epic r.PSOPrecache.Validation und stat PSOPrecache. Die Statistik unterscheidet unter anderem fehlende PSOs von rechtzeitig erfassten, aber zu spät fertiggestellten Aufträgen. Für reproduzierbare Tests muss der Treiber-Cache berücksichtigt werden: Ein bereits gefüllter Cache kann Kompilierprobleme verdecken, die beim ersten Start auftreten.
Auch mit vollständiger Vorab-Kompilierung können Ruckler durch das Nachladen von Assets oder die CPU-Berechnung entstehen. PSO-Precaching ist deshalb keine pauschale Lösung für sämtliche Performanceprobleme eines Spiels. Epic nennt weitere Lücken bei einigen Rendering-Funktionen. Die im April 2022 veröffentlichte Unreal Engine 5 erhält damit zusätzliche Werkzeuge zur Vorbereitung und Analyse ihrer Render-Pipelines.

