Was ist Shader Compilation und warum bringt es PC-Spiele zum Stottern?


Elden Ring Bild einer Kampfszene mit einem Ritter zu Pferd, der gegen einen Drachen kämpft.
VON Software – Elden Ring war berüchtigt für das Stottern der Shader-Kompilierung beim Start

Da die GPU jedes PCs unterschiedlich ist, ist eine Shader-Kompilierung erforderlich, damit Spiele auf Grafikkarten verschiedener Marken und Modelle ausgeführt werden können. Leider kann dieser Kompilierungsprozess zu nervigem Stottern führen.

Einige Spiele haben eine Art Stottern, das auftritt, egal wie leistungsfähig Ihr Computer ist oder welche Einstellungen Sie wählen. Dies wird durch einen als „Shader-Kompilierung“ bekannten Prozess verursacht und ist ein wachsendes Problem bei PC-Spielen.

Was sind Shader?

Shader sind Computerprogramme, die helfen, verschiedene Aspekte von gerenderten Grafiken zu bestimmen. Pixel-Shader beispielsweise berechnen die Attribute eines Pixels. Dazu gehören Farbe, Helligkeit, Reflexionsvermögen oder Transparenz dieses Pixels. Wenn Sie möchten, dass etwas in Ihrem Spiel nass aussieht, verwenden Sie einen speziellen Shader, um dieses Aussehen zu erreichen, anstatt es mühsam von Hand zu tun.

Shader machen moderne GPUs so flexibel, da diese GPUs so konzipiert sind, dass sie alles ausführen können, was ausgedrückt werden kann Shader-Programmiersprache. Sie ersetzen die alte „Fixed-Function-Pipeline“-GPU-Technologie, bei der die Arten der grafischen Mathematik, die eine GPU ausführen konnte, fest in ihr Silizium integriert waren.

Was ist Shader-Kompilierung?

„Kompilierung“ ist ein Computerbegriff, der sich darauf bezieht, den von einem menschlichen Programmierer geschriebenen Code in Maschinencode zu übersetzen, den der spezifische Prozessor, der die betreffende Software ausführen soll, verstehen kann. So könnten Sie beispielsweise Ihren Code so kompilieren, dass er auf einer Intel-CPU oder Apple Silicon ausgeführt wird.

Dasselbe gilt für eine GPU. Der Shader-Code muss kompiliert werden, um auf der betreffenden GPU-Marke und dem betreffenden Modell ausgeführt zu werden. Wenn Sie die GPU ändern, ihre Treiber aktualisieren oder das Spiel ein Update erhält, müssen die Shader erneut kompiliert werden.

Warum kommt es bei einigen PC-Spielen zu Stottern bei der Shader-Zusammenstellung?

In einigen Spielen stört das Kompilieren von Shadern im Hintergrund das Spiel selbst und verursacht ein sichtbares Stottern. Der Computer arbeitet zu hart daran, die Shader zu kompilieren, um das Spiel reibungslos auszuführen. Einige Entwickler bemühen sich, die Kompilierung so zu optimieren, dass sie nur geringe oder keine Auswirkungen auf die Spielleistung hat, während andere die Shader-Kompilierung über das Spiel verteilen, in der Hoffnung, dass das Ruckeln nur von kurzer Dauer sein wird. In diesem Fall treten die Ruckler nur zu Beginn eines neuen Levels oder beim Betreten einer neuen Umgebung auf, die bisher nicht benötigte Shader verwendet.

Kompilierungsruckler waren besonders ungeheuerlich in Unreal Engine 4-Spielen, einer weit verbreiteten und beliebten Spiele-Engine. Insbesondere werden diese Stotterer zu einem Problem, wenn ein Spiel unter DirectX 12 ausgeführt wird. Dies liegt teilweise daran, dass DirectX 12 die Funktionsweise der Shader-Kompilierung ändert und den Entwicklern mehr Kontrolle gibt. Dies bedeutet jedoch auch, dass Entwickler möglicherweise nicht die beste Möglichkeit haben, die Shader-Kompilierung mit der neuesten und besten Version von DirectX zu optimieren.

Warum stottern Konsolen nicht bei der Shader-Zusammenstellung?

Stottern bei der Shader-Kompilierung ist ein Problem, das bei Konsolen wie PS5 und Xbox Series X|S völlig fehlt. Das liegt einfach daran, dass Entwickler genau wissen, welche Hardware in jeder Konsole steckt, damit sie alle Shader vorkompilieren können; Sie müssen sie nicht auf dem lokalen System kompilieren, da Sie bereits wissen, auf welche GPU Sie abzielen.

Es ist möglich, dies auf dem PC zu tun, aber da es so viele GPUs und Systemkonfigurationen gibt, wäre es nicht praktikabel. Im Fall des Valve Steam Decks legt Valve jedoch bei einigen Spielen einen vorkompilierten Shader-Cache mit, da natürlich alle Steam Decks die gleiche GPU haben.

Was können Sie gegen Kompilierungsstottern tun?

Leider müssen die Entwickler meistens Shader-Kompilierungsprobleme beheben. Die gute Nachricht ist, dass sie den Prozess irgendwann in den Griff bekommen werden. Unreal Engine 5.1 kann eine enthalten automatisierte Funktion Dies hilft Entwicklern beim Caching, ohne dass die Auswirkungen auf die Leistung so schwerwiegend sind.

Die Liste der Dinge, die Sie tun können, um das Stottern zu lindern, ist nicht lang, aber einige dieser Optionen können hilfreich sein:

  • Wenn Sie in einem Spiel Shader vorkompilieren können, lassen Sie es. Dies kann eine Weile dauern, aber das Spielerlebnis wird ruckelfrei sein.
  • Wenn ein Spiel-Update keine Shader-Stutter-Korrektur enthält, warten Sie, bis Sie mit dem Spielen fertig sind, oder Shader werden möglicherweise erneut kompiliert.
  • Warten Sie mit GPU-Treiberaktualisierungen, bis Sie Ihr aktuelles Spiel beendet haben, falls es eine erneute Kompilierung auslöst.
  • Wenn das Stottern der Kompilierung in einem Spiel beginnt, drücken Sie die Pause-Taste und warten Sie, bis es beendet ist, bevor Sie weiterspielen.
  • Verwenden Sie DirectX 11 anstelle der DirectX 12-Version eines Spiels. Oft ist Shader-Ruckeln reduziert oder nicht vorhanden, obwohl Sie dafür auf DX12-Funktionen verzichten müssen.
  • Spielen Sie das Spiel stattdessen auf einer Konsole.

Mit der Zeit wird dieses Problem wahrscheinlich verschwinden oder viel weniger aufdringlich werden. Beispielsweise können Entwickler die Shader-Kompilierung auf CPU-Kerne auslagern, die das Spiel nicht benötigt, was auf modernen PCs mit vielen Kernen häufig vorkommt. Bis dahin die #stotterkampf wird ein irritierendes Thema beim PC-Gaming bleiben.

VERBUNDEN: Warum sehen meine Spiele mit VRR schlechter aus?



source-107

Leave a Reply