Der Tanz auf dem Vulkan: Die Low-Level-API auf der GDC 2018

9
Special Roland Austinat (US-Korrespondent) Als bevorzugte Quelle auf Google hinzufügen
GDC 2018: Der Tanz auf dem Vulkan
Quelle: Khronos Group

Die Vulkan-Schnittstelle für systemübergreifende Grafik-Anwendungen erfreut sich steigender Beliebtheit. Außerdem erschien diese Woche die Version 1.1 der API, die mit einem Trick jetzt auch auf Apple-Systemen läuft - und dabei OpenGL die Rücklichter zeigt. PC Games Hardware hat einem Vortrag der Khronos Group auf der GDC 2018 beigewohnt.

Auch wenn viele PC-Spieler beim Begriff Vulkan an den Heimatplaneten von Mr. Spock denken mögen: Hinter diesem Namen steckt eine offene Grafikschnittstelle, die als Quasi-Nachfolger von OpenGL bessere Leistung bei weniger Treiberüberbau liefern soll. Analog zu DirectX 12 handelt es sich um eine Low-Level-Schnittstelle. Auf der GDC 2018 in San Francisco gaben einige Vertreter der Khronos Group, die diesen und weitere Open-Source-Standards für Computergrafik, VR, Neurale Netzwerke und viele weitere betreut, einen Überblick über die Lage der Vulkan-Nation.

Alle lieben Vulkan

ARM-Mitarbeiter Tom Olson ist der Vorsitzende der Vulkan-Arbeitsgruppe. Er berichtete erfreut, dass es heute Vulkan-Treiber von allen wichtigen GPU-Herstellern gibt - sowohl für Desktop- als auch für Mobilgeräte. Windows, Linux und Android arbeiten mit der Schnittstelle tadellos zusammen, für Mac OS beziehungsweise iOS setzt Vulkan auf Apples Metal-Schnittstelle auf. Dazu gleich mehr.

"Alle großen Grafik-Engines setzen auf Vulkan", freut sich Tom Olson. "In einigen Engines ist Vulkan sogar der bevorzugte Renderpfad." Und die Inhalte rollen zwei Jahre nach der Vulkan-Premiere ebenfalls an: Olson nennt Doom (VFR), Rise of the Tomb Raider (im Linux-Port von Feral Interactive) und Wolfenstein 2 - Letzteres setzte beim Start ausschließlich auf die Vulkan-API. Das macht inzwischen auch Valves Dota 2, sowohl auf Windows- und Linux-PCs als auch auf Macs.

"Im August 2016 gab es auf Github gerade mal 431 Vulkan-Projekte, heute sind es 1.880", sagt Tom Olson. Und einer Auswertung des Grafik-Debuggers Renderdoc zufolge hat Vulkan als zweitplatzierte Schnittstelle mit 30 Prozent Marktanteil den Abstand zum Platzhirsch Direct3D 11 auf 20 Prozent verkleinern können. Mit Microsofts API entstehen derzeit noch rund 50 Prozent aller erfassten Renderdoc-Projekte.

Von links nach rechts: David Neto (Google), Tom Olson (ARM) und Dan Ginsburg (Valve) lauschen Fragen aus dem GDC-Publikum. Neben ihrem regulären Job kümmern die drei sich um die Verbreitung und Verbesserung der Vulkan-Schnittstelle. Quelle: PC Games Hardware Von links nach rechts: David Neto (Google), Tom Olson (ARM) und Dan Ginsburg (Valve) lauschen Fragen aus dem GDC-Publikum. Neben ihrem regulären Job kümmern die drei sich um die Verbreitung und Verbesserung der Vulkan-Schnittstelle.

Brandaktuell: Vulkan 1.1

Vor zwei Tagen erschien dann auch offiziell die aktuelle Vulkan-Version 1.1 - Treiber-Support aller großen Hersteller inklusive. Nach Tom Olsons Informationen arbeitet derzeit auch Samsung daran, die Schnittstelle für seine Smartphone-Flaggschiffe mit hauseigenen Exynos-SoCs startklar zu machen.

Zu den größten Änderungen der neuen Fassung gehören Multiview-Funktionen, die mehrere Bilder gleichzeitig rendern, etwa um VR-Brillen zu befeuern. Cross Process beziehungsweise API Sharing bezeichnet die Fähigkeit, Speicher und Daten mit anderen Nicht-Vulkan-Anwendungen zu teilen. Vulkan 1.1 unterstützt auch andere Compute-Programmiersprachen als GLSL, darunter eine erweiterte Unterstützung von Microsofts HLSL, womit DirectX-Portierungen vereinfacht werden. Hinzu kommen Multi-GPU-Systeme, ohne auf API-Erweiterungen zurückgreifen zu müssen..

Neben zahlreichen Bug-Bereinigungen schützt die neue Fassung der Schnittstelle mittels Content Protection auf Wunsch Inhalte vor dem Zugriff anderer Prozesse. Außerdem gibt es mehr Parallelberechnungsoptionen, etwa zum gleichzeitigen Aufruf mehrerer Shader, die untereinander kommunizieren können.

Tools, Tools, Tools

LunarGs Vulkan-SDK unterstützt die neueste Schnittstellenversion ebenfalls. Die Vulkan Layer Factory hilft bei der Entwicklung, indem sie die Programmierer nicht mit allen Details erschlägt, mit der Device Simulation Layer lassen sich auf schnellen Grafikkarten weniger flinke Kollegen simulieren, während die Assistent Layer Probleme bei der Entwicklung aufzeigt. Per E-Mail an public_vulkan_ecosystem@khronos.org können interessierte Programmierer der offiziellen Mailing-Liste beitreten.

David Neto von Google betreut die Arbeitsgruppe SPIR, die ebenfalls auf Vulkan 1.1 setzt. Hinter dieser Abkürzung verbirgt sich eine weitere Programmiersprache, die als Zwischencode zwischen Vulkan und der maschinennahen Zielsprache steht: Standard Portable Intermediate Representation - bei Vulkan kommt die neuere Version SPIR-V zum Einsatz. Ursprünglich wurde SPIR für OpenCL-Anwendungen entwickelt, heute hilft sie dabei, Informationen der Shader-Programmiersprachen GLSL und HLSL so umzusetzen, dass der daraus resultierende Programmcode von Vulkan verstanden wird - und den Entwicklern das Erstellen von systemübergreifenden Anwendungen erleichtern soll.

Vulkan: 50 Prozent schneller als OpenGL

Dan Ginsburg von Valve gab abschließend einen kurzen Überblick über den Vulkan-Einsatz bei seiner Firma. So setzt Valve bei der HTC Vive auf einen Vulkan-Renderer und beschreibt, wie die Schnittstelle trickreich sogar mit Apples eigener Metal-Schnittstelle zusammenarbeitet. Mit Hilfe der Molten-VK-Schnittstelle nutzt Vulkan Apples Metal-Standard, um die Hardware anzusprechen - SPIR-V-Code wird in die Metal Shader Language übersetzt. Allerdings sind nicht alle Vulkan-Funktionen verfügbar, sondern nur solche, die auch ein Metal-Äquivalent besitzen. Das sollten im Laufe der Zeit immer mehr werden, ist sich Dan Ginsburg sicher.

All diese Frickeleien lohnen sich: Valves MOBA Dota 2 verzeichnet mit Vulkan verglichen mit OpenGL einen Leistungszuwachs von 50 Prozent. Zukunftsmusik ist neben einer kompletten Vulkan-Umsetzung für Metal eine ähnliche Vorgehensweise für das noch eher zaghaft adaptierte Direct3D 12. "Je mehr API-Features die Entwickler Metal und DX 12 oder eines Tages 13 spendieren, umso mehr Features können wir auch in Vulkan nutzen", fasst Dan Ginsburg zusammen.

Die Programmierergemeinde dürfte das freuen - schließlich ist es immer besser, mehrere Schnittstellen zur Auswahl zu haben, um die optimale für das eigene Projekt zu finden, statt auf nur eine einzige kompromissbehaftete API setzen zu müssen. Und nicht nur für die Windows-Welt, sondern plattformübergreifend entwickeln zu können.

9
    • Kommentare (9)

      Zur Diskussion im Forum
      • Von KaneTM Software-Overclocker(in)
        Zitat von Locuza
        Bei Mantle war klar, dass die Konsolen es nicht verwenden werden, bei der Vulkan-Vorstellung wurde die Frage geäußert, ob auch Konsolen-Support realistisch sei und darauf hat einer geantwortet das er nichts konkretes sagen darf, es aber gut aussieht. Einige Hinweise haben dann auf Nintendo gedeutet und so ist es dann auch am Ende, die Nintendo Switch unterstützt offiziell Vulkan und hat auch schon das neuste 1.1 Update integriert.
        Danke!!
      • Von KaneTM Software-Overclocker(in)
        Zitat von Locuza
        Bei Mantle war klar, dass die Konsolen es nicht verwenden werden, bei der Vulkan-Vorstellung wurde die Frage geäußert, ob auch Konsolen-Support realistisch sei und darauf hat einer geantwortet das er nichts konkretes sagen darf, es aber gut aussieht. Einige Hinweise haben dann auf Nintendo gedeutet und so ist es dann auch am Ende, die Nintendo Switch unterstützt offiziell Vulkan und hat auch schon das neuste 1.1 Update integriert.
        Danke!!
      • Von Locuza Lötkolbengott/-göttin
        Zitat von Eckism
        Ich verstehe eh nicht, wieso man Vulkan nicht öfter benutzt...man erreicht damit ja mehr Nutzer/Kunden als mit DirectX.
        Die Umstände haben das nicht attraktiv gemacht.
        Linux hat wirtschaftlich keine Bedeutung, es gab keine Aussicht DX11 fallen zu lassen, entsprechend spricht auch W7/8-Support wenig für die neuen APIs, wenn man nicht auch schon deutlich von den neuen APIs profitieren kann und das benötigt große Engine Umstrukturierungen, wo am Anfang noch die wenigsten Studios waren.
        Vulkan kam auch später, als DX12, unterstützte keine HLSL-Shader was ein großes No-Go für viele Projekte war und ebenso fehlte MultiGPU-Support, auch wenn das nur ein kleiner Nachteil ist.

        Mit Vulkan 1.1 hat man die größten Show-Stopper beseitigt (Nicht alle) und es ist einiges an Zeit vergangen, in naher Zukunft könnte man eine höhere Adaptionsrate erwarten.

        Zitat von KaneTM
        Das ist mit klar. Das letzte was ich Ende 2016 / Anfang 2017 dazu gelesen habe, war, dass Nintendo und Sony angekündigt hätten, Vulkan supporten zu wollen und noch-etwas-davor eben auch von der XBox. Ich hatte die Hoffnung, dass es da inzwischen mal was offiziell aktuelles zu gibt - also "ist geplant / gibt es" oder "nein, abgesagt wegen is nich".
        Bei Mantle war klar, dass die Konsolen es nicht verwenden werden, bei der Vulkan-Vorstellung wurde die Frage geäußert, ob auch Konsolen-Support realistisch sei und darauf hat einer geantwortet das er nichts konkretes sagen darf, es aber gut aussieht.
        Einige Hinweise haben dann auf Nintendo gedeutet und so ist es dann auch am Ende, die Nintendo Switch unterstützt offiziell Vulkan und hat auch schon das neuste 1.1 Update integriert.
      • Von KaneTM Software-Overclocker(in)
        Zitat von Bevier
        Technisch könnten sie das problemlos aber echtes Interesse daran haben die Konsolenhersteller sicher nicht. MS wegen DX 12 nicht und auch Sony hat eine sehr performante LL-API, die für die spezielle Hardware eben doch noch etwas leistungsfähiger ist. Für Multiplattform-Spiele wäre Vulkan selbstverständlich ein Traum aber der Aufwand die API zu wechseln scheint nicht groß genug zu sein...
        Das ist mit klar. Das letzte was ich Ende 2016 / Anfang 2017 dazu gelesen habe, war, dass Nintendo und Sony angekündigt hätten, Vulkan supporten zu wollen und noch-etwas-davor eben auch von der XBox. Ich hatte die Hoffnung, dass es da inzwischen mal was offiziell aktuelles zu gibt - also "ist geplant / gibt es" oder "nein, abgesagt wegen is nich".
      • Von Bevier Volt-Modder(in)
        Zitat von KaneTM
        Ich meine mich aus den Ankündigungstagen noch zu erinnern, dass Vulkan (bzw. da ja noch Mantel) auch auf XBox und PS4 laufen soll... ist das jetzt in der Realität eigentlich der Fall? Spätestens dann macht DX-12 einfach keinen Sinn mehr, so vonwegen Multiplattform
        Technisch könnten sie das problemlos aber echtes Interesse daran haben die Konsolenhersteller sicher nicht. MS wegen DX 12 nicht und auch Sony hat eine sehr performante LL-API, die für die spezielle Hardware eben doch noch etwas leistungsfähiger ist. Für Multiplattform-Spiele wäre Vulkan selbstverständlich ein Traum aber der Aufwand die API zu wechseln scheint nicht groß genug zu sein...
      • Von KaneTM Software-Overclocker(in)
        Ich meine mich aus den Ankündigungstagen noch zu erinnern, dass Vulkan (bzw. da ja noch Mantel) auch auf XBox und PS4 laufen soll... ist das jetzt in der Realität eigentlich der Fall? Spätestens dann macht DX-12 einfach keinen Sinn mehr, so vonwegen Multiplattform
      Direkt zum Diskussionsende
  • Print / Abo
    Apps
    PCGH Magazin 08/2026 PC Games 07/2026 play5 08/2026 N-Zone 07/2026 Linux Magazin 07/2026 LinuxUser 07/2026 Raspberry Pi Geek 07/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk