Die Vulkan API der Khronos Group weckt bei vielen Gamern die Hoffnung mehr Leistung aus ihrer Hardware holen zu können und bietet insbesondere für Linux-Gamer endlich eine vielversprechende Alternative zu Microsofts DirectX. Aber was ist eigentlich eine API, was macht Vulkan anders und von wem wird die API unterstützt?
Die Vulkan API startete mit dem Namen glNext und sollte als „spiritueller Nachfolger“ von OpenGL dienen. Eine offene und plattformübergreifende Low-Level-API, die DirectX 12 die Stirn bieten soll. Die Vulkan API basiert dabei auf Mantle, AMDs alleinigen Versuch, eine API mit möglichst wenig Treiber-Overhead zu entwickeln. In den nächsten Absätzen wollen wir versuchen, Vulkan möglichst einfach zu erklären.
Update 12. Juli
DOOM: Ab sofort mit Vulkan-Unterstützung
Nach The Talos Principle ist das neue DOOM nun der erste Triple-A-Titel, welcher die Vulkan API unterstützt. Und das bereits mit Erfolg, wie die Benchmarks von AMD mit ihrer neuen Radeon RX 480 Grafikkarte zeigen. Diese haben einen Performancezuwachs gegenüber der Nutzung von OpenGL von 23 (1080p) bis 27 Prozent (1440p) messen können. Ältere Hardware könnte aber noch stärkere Vorteile aus der neuen API der Khronos Group ziehen.
Der zweite große Patch mit der Vulkan-Unterstützung von DOOM solltet ihr über Steam automatisch erhalten. Darüber hinaus müsst ihr aber auch die neusten Vulkan-kompatiblen Treiber für eure Grafikkarte installieren, um die Hölle mit Vulkan rendern zu können.
Ursprüngliche Nachricht
Vulkan API: Was ist eigentlich eine API?
API vereinfacht erklärt: Programmierschnittstellen, sogenannte APIs (Application Programming Interface), übersetzen die Programmbefehle von beispielsweise einem Spiel an die Hardware. Die Grafik-Programmierschnittstellen wie Microsofts DirectX, OpenGL, Mantle oder Vulkan ermöglichen es somit erst, dass die Software (Spiel, 3D Andwendung etc.) mit der Hardware (Grafikkarte) kommunizieren kann.
Was macht die Vulkan API anders?
Der große Vorteil von Spielekonsolen gegenüber Gamer-PCs ist die hardwarenahe Programmierung: Eine Konsole besteht für gewöhnlich immer aus denselben Bauteilen, sodass man die Programmierschnittstelle spezifisch für diese Hardware anpassen kann. Da es bei PCs aber nahezu unendliche Kombinationsmöglichkeiten und Hardwarekonfigurationen gibt, ist es schwerer, nah an der Hardware zu programmieren.
Damit ihr weiterhin jedes Spiel und jede Anwendung nutzen könnt, egal ob ihr beispielsweise eine Grafikkarte von Nvidia, AMD oder Intel besitzt ist viel Aufwand nötig. Durch die Vielfalt der Hardwarekonfigurationen entsteht ein Treiber-Overhead, der es verhindert, dass man die wahre Performance seiner Hardware zu sehen bekommt. Vulkan ist eine sogenannte Low-Level-API, die es erlaubt, näher an der eigentlichen Hardware zu arbeiten und den Treiber-Overhead zu verringern. So erreicht man mehr Performance, zum Beispiel höhere FPS in Spielen. Im Gegenzug wird jedoch die Programmierung der Game-Engine selber wieder komplexer, da auf bestimmte Befehle, welche zuvor von einer High-Level-API standardisiert wurden, wieder manuell eingegangen werden muss.
Auch Mircosofts DirectX 12 ist als Low-Level-Programmierschnittstelle ausgelegt. Im Gegensatz zu DirectX 12 ist Vulkan jedoch quelloffen und kann plattformübergreifend genutzt werden, das heißt: Vulkan funktioniert nicht nur auf Windows, sondern kann auch auf anderen Betriebssystemen wie GNU/Linux, Android oder SteamOS genutzt werden.
Welche Spiele und Engines werden von Vulkan unterstützt?
Die Spieleauswahl ist bisher noch stark begrenzt. Bisher unterstützt nur der First-Person-Puzzler The Talos Principle des Serious-Sam-Teams Croteam, Dota 2 und die Tech-Demo Vulkan Chopper von Nvidia die neue API. Jedoch wird demnächst auch das neue Doom zu der Liste der Vulkan-Titel hinzugefügt. Die Spieleschmiede id zeigte bereits einen beeindruckenden Test, bei der Doom mit der Vulkan-API auf einem Rechner mit der neuen GeForce GTX 1080 bis zu 200 Bilder pro Sekunde erreichte.
Vulkan steht somit erst am Anfang, jedoch unterstützen die folgenden Game-Engines die API der Khronos Group bereits oder werden sie demnächst unterstützen:
- id Tech 6
- Unreal Engine 4
- Source 2
- Serious Engine
Damit wird weiteren Entwicklern, die diese Engines für ihr Spiel nutzen, die Möglichkeit eröffnet, Vulkan mit relativ wenig Aufwand zu integrieren.