1. Hardwareluxx
  2. >
  3. News
  4. >
  5. Hardware
  6. >
  7. Grafikkarten
  8. >
  9. Variable Rate Shading wird Bestandteil von DirectX 12

Variable Rate Shading wird Bestandteil von DirectX 12

Veröffentlicht am: von

microsoft 2Zusammen mit den Hardwarebeschleunigungen mittels RT und Tensor Cores führte NVIDIA in der Turing-Architektur auch zahlreiche weitere Verbesserungen ein. Dazu gehört das Variable Rate Shading (VRS). NVIDIA fasst das VRS als NVIDIA Adaptive Shading (NAS) zusammen und hat bisher eine entsprechende Vulkan-Erweiterung angeboten, die bisher einzig von Wolfenstein II: The New Colossus unterstützt wird.

Zu den GeForce-RTX-Karten sowie der GeForce GTX 1660 Ti (alle Karten basieren auf der Turing-Architektur) haben wir bereits Benchmarks mit Variable Rate Shading in den verschiedenen Stufen erstellt. Einfach gesagt handelt es sich beim Variable Rate Shading um eine "Kompression" für das Shading. Wir kennen dies bereits von Kompressionsverfahren für Musik (MP3), Bilder (JPG) aber auch in GPU-Architekturen in Form einer Speicherkomprimierung.

Normalerweise wird jeder Pixel pro Shading-Vorgang einmal gezeichnet. Bei mehreren Frames pro Sekunde, werden viele Objekte aber immer wieder mehrfach gleich gezeichnet, denn in den seltensten Fällen ändert sich die komplette Szene von Frame zu Frame. Dies macht sich das Variable Rate Shading zu Nutze.

Für das Variable Rate Shading wird der Frame in mehrere Blöcke aufgeteilt. Abhängig vom Inhalt des jeweiligen Frame und der Geschwindigkeit, in der sich Änderungen zum nächsten Frame ergeben, können diese Blöcke unterschiedlich groß sein. Es gibt daher unterschiedliche Methoden des Variable Rate Shading.

Die VRS API für DirectX 12 kann auf dreierlei Wege implementiert werden:

  • Pro Draw: Der Entwickler entscheidet welche Objekte in welcher Detailstufe berechnet werden. Beispielsweise müssen entfernte Objekte nicht in voller Qualität berechnet werden, während nahe Objekte in voller Qualität dargestellt werden.
  • In einem Draw auf Basis eines Screenspace Images: Für einen Fist-Person-Shooter bedeutet dies eine Berechnung mit allen Details in der Mitte, also dem Fokus des Spielers, während die Randbereiche in reduzierter Qualität dargestellt werden.
  • In einem Draw auf Basis von Primitives: Der Entwickler bestimmt durch das LOD welche Objekte mit welcher Shading Rate berechnet werden. Entfernte Objekte also mit dementsprechend geringerer Qualität. Dieser Automatismus fehlt im ersten Verfahren, denn dort muss jedes Objekt manuell bestimmt werden.

Es gibt aber auch unterschiedliche Level (Tier 1 und Tier 2) an Hardware, die VRS unterstützen kann. Tier 1 unterstützt das VSR pro Draw. Tier 2 muss durch die Hardware explizit unterstützt werden und kann auf Basis eines Screenspace Images oder von Primitives arbeiten. Es wird auch Mischformen der drei Verfahren geben, wobei die die Hardwarebasis bestimmt, welche Verfahren überhaupt zum Einsatz kommen können.

Microsoft hat zusammen mit Firaxis eine erste Implementierung in Civilization VI vorgenommen und konnte je nach Verfahren eine Leistungssteigerung von bis zu 20 % feststellen.

Im Hinblick auf die Hardwareunterstützung spricht Microsoft von den aktuellen Grafikkarten aus dem Hause NVIDIA (vermutlich Turing und Pascal) sowie zukünftigen Intel-GPUs. Dabei spricht Microsoft von der Gen11-Grafikeinheit, die ab der zweiten Jahreshälfte den Weg in die ersten Intel-Prozessoren finden wird.

Softwareentwickler können ab sofort mit der VSR-API arbeiten. Konkrete Ankündigungen zu Spielen, die VSR einsetzen werden, gibt es aber noch nicht. Eine Leistungssteigerung im zweistelligen Bereich dürfte für den ein oder anderen Spieler aber sicherlich interessant sein.