Heute gab die Khronos-Gruppe die Ratifizierung und öffentliche Freigabe der provisorischen Extensions des Vulkan Ray Tracing bekannt. Die Kernfunktionalität baut auf den bereits bestehenden Erweiterungen der Nvidia-Anbieter auf, jedoch mit einigen neuen Funktionen und als offizielle Erweiterungen der API. Die Änderungen an der Funktionalität sind relativ geringfügig und die Portierung von den Nvidia-Erweiterungen auf die neuen Vulkan-Erweiterungen sind ein trivialer Prozess. Das Ziel ist es nun, Feedback von Entwicklern und der Industrie zu erhalten, mit dem Ziel, die Funktionalität in den kommenden Monaten in die zentrale Vulkan-API (d.h. statt als API-Erweiterungen) zu integrieren. Die zusätzliche Unterstützung von Raytracing bringt die plattformübergreifende API auf eine Stufe mit Microsofts DirectX Raytracing (DXR) API, mit einigen geringfügigen Unterschieden. In dem folgenden Beitrag werden wir Ihnen grundlegende Informationen zum RT-Support von Vulkan bereitstellen und Ihnen erläutern, warum sie von hoher Bedeutung ist.
Der CEO der Khronos-Gruppe, Neil Trevett, der auch Vizepräsident für Entwickler-Ökosysteme bei Nvidia ist, sprach mit der Presse über die aktuelle Situation. Zwei Hauptfragen, die gestellt wurden, waren:
- Was sind die Unterschiede zwischen den Vulkan RT-Extensions und dem, was derzeit über den Nvidia RT Vendor Extensions verfügbar ist?
- Was ist der Unterschied zwischen DXR und Vulkan RT?
Die wichtigsten Änderungen gegenüber den Nvidia Vendor Extensions bestehen in der Umbenennung der Funktionspräfixe von „NV_“ in „VK_“. Die Portierung bestehender Vulkan RT-Anwendungen (wie Quake II RTX und Wolfenstein Youngblood) auf die offizielle Erweiterung „trivial“ werden trivial sein.
Vulkan Raytracing und DXR.
Ähnliche Beschleunigungsstruktur / Raytracing-Shader-Architekturen ermöglichen eine einfache Portierung der Raytracing-Funktionalität zwischen Vulkan Raytracing und DXR.
Wiederverwendung von Ray-Tracing-Shadern in HLSL.
Vulkan Ray Tracing | DX 12 / DXR | |
---|---|---|
Ray Tracing Pipelines | Ja | Ja |
Ray Abfragen | Optional | DXR 1.1 |
Sprachen für Ray Tracing Shader | GLSL oder HLSL | HLSL |
Pipeline Bibliotheken | Ja | Ja |
Beschleunigungsstruktur auf dem Host | Optional | Nein |
Verschiebung von Host-Operationen | Optional | Nein |
Capture/Replay-Support für Tools | Optional | Nein |
Was die Unterschiede zwischen den Funktionen von Vulkan RT und DXR betrifft, so zeigt die obige Tabelle, dass die beiden APIs weitgehend gleichwertig sein werden. Vulkan RT unterstützt sowohl Raytracing-Pipelines als auch Raytracing-Abfragen, wobei letztere eine neue Ergänzung der DXR 1.1-Spezifikation darstellen. Es sind keine Hardware-Änderungen erforderlich und es stellt lediglich einen optionalen Pfad für das Hinzufügen von Ray-Tracing-Effekten zu einer Anwendung dar. Vulkan hat auch Unterstützung für das Schreiben von Shadern in GLSL (OpenGL Shading Language) oder HLSL (High Level Shading Language) hinzugefügt, was die Portierung von Anwendungen zwischen DirectX 12 und Vulkan wesentlich erleichtert. HLSL ist die für DirectX verwendete Sprache, so dass Entwickler ihre Shader nicht mehr neu schreiben müssen, wenn sie die Vulkan-API verwenden möchten.
Die letzten drei Punkte in der Liste sind die Bereiche, in denen Vulkan RT einen potenziellen Vorteil gegenüber DirectX 12 hat. Der Aufbau der Beschleunigungsstruktur auf dem Host bezieht sich auf die Verwendung der Host-CPU zur Bewältigung dieser Aufgabe. Es mag vielleicht kontraintuitiv erscheinen, dass die CPU diese Grafikarbeit übernimmt, aber bei modernen CPUs mit 8, 12, 16 und mehr Kernen sitzen diese zusätzlichen Kerne oft einfach nur im Leerlauf. Wenn die GPUs voll ausgelastet sind, wie es oft in Spielen der Fall ist, kann die Verlagerung einiger Arbeiten zurück auf die CPU zu einer insgesamt verbesserten Leistung führen. Die verzögerten Host-Operationen sind eng miteinander verbunden und ermöglichen eine asynchrone Ausführung über mehrere CPU-Kerne. Zudem soll schließlich die Unterstützung für die Aufnahme/Wiedergabe bei der Fehlersuche im Code helfen.
Die anderen Dias, die Khronos zur Verfügung stellte, sind zumeist eine Wiederholung dessen, was seit der Ankündigung von DXR im Jahr 2018 über das Raytracing der Allgemeinheit schon bekannt sind. Die Bounding Volume Hierarchie ist nach wie vor die Datenstruktur, die von der Nvidia-Hardware verwendet wird, um die Geometrie einer Szene zu durchlaufen und zu bestimmen, ob und wo ein Strahl ein Dreieck schneidet. Andere Anbieter könnten einen anderen Ansatz verwenden, da die Beschleunigungsstruktur im Grunde eine Black Box ist: Sie wird an die Hardware weitergegeben, die ein Ergebnis liefert und wie sie zu diesem Ergebnis gelangt, ist für verschiedene Implementierungen offen.
Die Details der Ray-Tracing-Pipeline und der Ray-Abfragen sind interessant, falls Sie noch nie von Ray-Abfragen gehört haben. Im Grunde genommen erlauben sie eine Art Abkürzung, um nur einzelne Strahlen durchzuführen, während die traditionelle Pipeline größere Raster von Arrays erstellt. Die Pipeline-Bibliotheken hingegen dienen dazu, Entwicklern das Leben zu erleichtern, da beim Raytracing viele Shader verwendet werden können.
Warum ist Vulkan RT wichtig?
Die wichtigere Frage für viele ist, warum dies alles wichtig ist und die Antwort ist einfach: Vulkan ist plattformübergreifend. Wenn Sie nur eine Anwendung (oder ein Spiel) für Windows erstellen, ist DirectX vielleicht die beste Wahl. Die PlayStation 5 und die Xbox-Serie X werden jedoch im Laufe dieses Jahres veröffentlicht und die Konsolen sind nicht aus dem Microsoft-Ökosystem. Auch Googles Stadia verwendet Vulkan ausschließlich für seine Rendering-Pipeline. Die Bereitstellung einer einzigen API für Spiele- und Anwendungsentwickler, die auf allen Plattformen – einschließlich älterer Windows-Versionen – verwendet werden kann, macht die Portierung wesentlich einfacher. Es gilt auch den Aspekt des Rechenzentrums zu berücksichtigen. Linux-Server sind im Allgemeinen kostengünstiger als Windows-Server und große Rendering-Farmen können Hunderte von Nodes haben. Die Möglichkeit, hardwarebeschleunigte Raytracing-Anwendungen zu entwickeln, die mit Linux arbeiten, kann Kosten senken und mehr Flexibilität bieten.
Die Khronos Group bittet um Feedback zu ihren neuen Erweiterungen und Nvidia stellt neue Entwicklertreiber zur Verfügung, die die API unterstützen. Im Moment ist Nvidia noch der einzige Grafikanbieter mit DXR- oder Vulkan RT-Unterstützung, aber nach den Kommentaren der anderen Support-Industrie zu urteilen, wird das nicht mehr lange so bleiben.
AMD plant natürlich die Unterstützung von Vulkan RT mit seinen zukünftigen Navi-2x-GPUs. Andrej Zdravkovic, Senior VP der Software-Entwicklung bei AMD, sagte: „Die Standardisierung des Raytracing in Vulkan ist ein wichtiger Schritt, um das Raytracing für eine breite Palette von Geräten verfügbar zu machen und es Entwicklern zu ermöglichen, diese Technologie in vollem Umfang zu nutzen. AMD beabsichtigt, alle wichtigen Funktionen dieser Erweiterung zu unterstützen, einschließlich Ray-Shading, Ray-Abfragen und Verwaltung der CPU-Beschleunigungsstruktur.“
Interessanter ist vielleicht das folgende Statement von Intel. „Die Intel Xe-Architektur-Roadmap beinhaltet Unterstützung für hardwarebeschleunigtes Raytracing und wir freuen uns, mit Khronos zusammenzuarbeiten, um volle Unterstützung in Vulkan zu implementieren“, sagte Joshua Barczak, Grafiksoftware-Architekt bei Intel.
Schließlich gab Rys Sommefeldt, Senior Director of Product, Ray Tracing and High Performance Graphics bei Imagination Technologies, den Startschuss: „Imagination Technologies freut sich sehr, dass das Ray Tracing zu einem Standardteil von Vulkan geworden ist und das gesamte Ray Tracing-Ökosystem aufgrund der großen Reichweite von Vulkan über viele Plattformen und Geräte hinweg erheblich wächst. Wir unterstützen den Standard sehr, was uns dabei helfen wird, die effiziente, schnelle und zielgerichtete Hardware-Lösung zu liefern, die wir für unsere Kunden entwickeln.“
Nvidia und AMD unterstützen die Raytracing-Hardware selbstverständlich und Intel hat in der Vergangenheit bereits kommuniziert, dass es erwartet, dass auch Hardware für das Raytracing unterstützt wird, obwohl nicht klar ist, ob dies in der ersten Generation von Intel Xe Graphics in diesem Jahr oder in einer zukünftigen Iteration der Fall sein wird – letzteres scheint wahrscheinlicher. Das Einklinken von Imagination Technologies könnte bedeuten, dass irgendwann RT-Hardware zu Smartphone- und Tablet-Chips hinzukommen wird, obwohl es auch Gerüchte über eine „vierte Partei“ gibt, die in den Bereich der PC-Grafikkarten eintritt.
Vielen Dank für Ihren Besuch.