Variable Rate Shading: Microsoft bringt noch Turing-exklusives Feature für DX12
Nvidias Turing-Grafikkarten unterstützen Variable Rate Shading. Durch die Technik kann die Leistung in Spielen bei (fast) gleichbleibender Qualität gesteigert werden. VRS auf Turing funktioniert derzeit über das Nvidia-exklusive NVAPI. Nun hat Microsoft VRS für DirectX 12 angekündigt – und damit potenziell für jede Grafikkarte.
Doch was macht VRS überhaupt? Mit VRS ist es möglich, die Auflösung einzelner Shader (Shading Rate) unabhängig von der eigentlich gerenderten Auflösung zu verringern. Der Entwickler kann einzelne Shader selektiv in einer niedrigeren Auflösung rendern lassen, da nicht alle Shader die maximale Auflösung für das gewünschte Aussehen benötigen. Dadurch verringert sich die Rechenlast und die Performance steigt. Nvidia hat durch quasi denselben Effekt in Wolfenstein 2 auf Turing bis zu 13 Prozent an FPS gewinnen können – auch wenn die Qualität stellenweise etwas gelitten hat. Microsoft erwähnt zudem, dass VRS auch anders herum funktioniert. Genauso ist es möglich, einzelne Shader in einer höheren Auflösung als die eingestellte Auflösung berechnen zu lassen, falls dies qualitativ wünschenswert ist.
VRS in DX12 hat zwei verschiedene Feature-Stufen
Microsofts Umsetzung bietet zwei Stufen von VRS, die unterschiedliche Voraussetzungen an die Hardware haben: Tier 1 und Tier 2. Um Tier 1 zu erreichen, ist es unter anderem notwendig, dass jeder Draw Call eine unterschiedliche Shading Rate haben kann. Damit ist die Aufteilung im Bild aber ziemlich grob. Deutlich genauer arbeitet Tier 2. Tier 2 hat dieselben Voraussetzungen und zusätzlich muss es möglich sein, ebenso die Shading Rate innerhalb eines Draw Calls ändern zu können. So kann eine Tier-2-Umsetzung zum Beispiel verschiedene Shading-Rate-Stufen anhand von einer Kantenerkennung (Edge Detection) oder eines einzelnen Dreiecks festlegen. Möglich ist auch, verschiedene Erkennungsmechanismen gleichzeitig zu nutzen.
Microsoft hat eine experimentelle Integration von Variable Rate Shading mit Hilfe des Entwicklers Firaxis in Civilization VI umgesetzt. Ohne VRS schaffte eine GeForce RTX 2060 in einer ausgewählten Testszene und Ultra HD eine Framerate von 53 FPS. Mit VRS Tier 1 (geringere Shading Rate im Verhältnis 2:2 von Terrain und Wasser) ließ sich die Framerate um rund 20 Prozent steigern, allerdings sieht laut Microsoft die Grafik auch stellenweise schlechter aus.
Eine zweite Integration nutzt VRS Tier 2. Die bei der ersten Umsetzung zu sehenden Probleme sind laut Microsoft nur dann zu lösen, wenn innerhalb eines Draw Calls verschiedene Shading Rates genutzt werden. Mit der Tier-2-Umsetzung soll es laut Microsoft „fast unmöglich“ sein, einen Unterschied zwischen aktiviertem und deaktiviertem Variable Rate Shading zu sehen. Da Tier 2 in dem Spiel bei manchen Shadern eine höhere Auflösung als Tier 1 nutzt, sinkt der Leistungssprung auf 14 Prozent.
Nur Turing unterstützt derzeit VRS
Aktuell funktioniert VRS mit DirectX 12 nur auf Nvidias Turing-Grafikkarten, da die Hardware gewisse Voraussetzungen mitbringen muss. Microsoft erwähnt zwar weder explizit Tier 1, noch Tier 2 für die GeForce-Grafikkarten, anhand des Beispieles ist aber davon auszugehen, dass Turing Tier 2 unterstützt. Darüber hinaus soll Intels kommende integrierte GPU-Architektur Gen11 VRS unterstützen. AMD wird in dem Artikel nicht erwähnt, jedoch ist es wahrscheinlich, dass die kommende Radeon-Architektur Navi ebenso mit VRS wird umgehen können – und dasselbe gilt dann vermutlich auch für die Next-Gen-Spielekonsolen. Ein mit Variable Rate Shading betiteltes Patent von AMD wurde Ende Februar veröffentlicht.
Microsoft nennt verschiedene Spiele-Entwickler und Spiele-Engines, die in Zukunft VRS unterstützen sollen. Darunter fallen die Unity- sowie die Unreal Engine 4. Als Entwickler werden unter anderem Activision, Ubisoft und Massive genannt.