Grafikschnittstelle: Vulkan bekommt eine Anbindung an Apples Metal

Mit der Vulkan Portability Extension veröffentlicht die Khronos Group eine Brücke für Metal und weiteren Grafik-APIs.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 28 Beiträge
Grafikschnittstelle: Vulkan bekommt eine Anbindung zu anderen 3D-Plattformen
Von
  • Rainald Menge-Sonnentag

Die Khronos Group hat die Vulkan Portability Extension in Version 1.0 herausgegeben. Trotz der Versionsnummer gilt die Erweiterung, die den Einsatz von Vulkan-Aufrufen auf anderen Grafikschnittstellen ermöglichen beziehungsweise vereinfachen soll, derzeit noch als provisorisch. Das Release arbeitet unter anderem mit MoltenVK und gfx-portability auf Metal zusammen.

Vulkan ist eine Open-Source-Schnittstelle zur Grafik-Programmierung, die von AMD Mantle abgeleitet ist. Sie gilt als Nachfolger der ebenfalls von der Khronos Group geführten OpenGL-API. Vulkan ist deutlich hardwarenäher und abstrahiert somit weniger als OpenGL

Vulkan bietet eine Integration der plattformübergreifenden Zwischensprache SPIR-V (Standard Portable Intermediate Representation). Das beim Schreiben dieser Meldung aktuelle Release der Grafikschnittstelle trägt die Versionsnummer 1.2.153, und das jüngste Minor Release 1.2 brachte im Februar zahlreiche Ergänzungen für die Core API.

Das Vulkan-Portability-Projekt stellt Vulikan-Funktionen auf anderen 3D-Schnittstellen bereit.

(Bild: Khronos Group)

Das Vulkan-Portability-Projekt ist das Gegenstück zu Implementierungen wie Zink oder vkd3d, die OpenGL beziehungsweise Direct3D auf der Vulkan-API aufsetzen. Die Portability Extension ermöglicht das Programmieren mit Vulkan-Aufrufen auf anderen Grafikschnittstellen wie OpenGL, DirectX und Metal.

Die Anbindung an Apples Metal-Schnittstelle hat dabei eine besondere Bedeutung: Vulkan ist auf Apples Betriebssystemen nicht verfügbar, da keine nativen Vulkan-Treiber für macOS und iOS zugelassen sind.

Für Metal existieren zwei Open-Source-Projekte, die Vulkan-Funktionen unter Metal bereitstellen: MoltenVK ist ein zentraler Baustein der Vulkan Portability Initiative, zu der auch die nun veröffentlichte Portability Extension gehört, und gfx-portability ist eine derzeit noch als Prototyp geführte Library zum Umsetzen der Portabilität über die Abstraktionsschicht gfx-hal.

Auf macOS arbeitet die Vulkan Portability Extension mit MoltenVK und gfx-portability zusammen.

(Bild: Khronos Group)

Sowohl MoltenVK als auch gfx-portability nutzen mit SPIRV-Cross ein Werkzeug zum Übersetzen des SPIR-V-Zwischencodes (der Khronos Group in die Metal Shading Language. MoltenVK hatte die Khronos Group im Rahmen ihrer Portability Initative bereits Anfang 2018 zusammen mit dem LunarG-SDK vorgestellt.

Die Vulkan Portability Extension übernimmt auf Metal und den anderen Grafik-Schnittstellen das Abfragen der bereitgestellten Funktionen. Die Umsetzung heißt VK_KHR_portability_subset. Entwickler können darüber plattformübergreifend das jeweilige Subset der Vulkan-API ermitteln, das die zugrundeliegende API bereitstellt.

Die Portability Extension gehört wie MoltenVK zu den Bausteinen des Vulkan-Portability-Projekts.

(Bild: Khronos Group)

Weitere Details lassen sich dem Khronos-Blog entnehmen. Die Khronos Group bittet Entwickler, sich mit Freedback und Vorschlägen an der Diskussion im offiziellen Repository des Vulkan-Portability-Projekts auf GitHub zu beteiligen.

(rme)