Khronos Group stellt C++-API für Vulkan vor

Unter anderem mit höherer Typsicherheit soll das Open-Source-Projekt Vulkan-Hpp den Schwächen begegnen, die Vulkan als C-API vom Einsatz allgemeiner C-Bibliotheken erbt.

In Pocket speichern vorlesen Druckansicht
Khronos Group stellt C++-API für Vulkan vor
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Zwar ist Vulkan-Hpp schon seit Anfang des Jahres in Arbeit, allerdings scheint die Khronos Group erst den aktuellen Stand für gut genug zu befinden, um das Projekt der Allgemeinheit vorzustellen und es auf Twitter zu bewerben. Die unter der Apache-2-Lizenz geschützte Vulkan-C++-API soll vor allem dazu dienen, bekannte Fallstricke beim Einsatz allgemeiner C-Bibliotheken zu umgehen und sichereren Code zu produzieren. Da zugleich kein zusätzlicher Overhead geschaffen werden sollte, besteht das Projekt nur aus Header-Dateien mit Inline-Funktionen.

Um die anvisierten Ziele zu erreichen, ist Vulkan-Hpp mit eigenen Konventionen und Funktionen ausgestattet. Beispielsweise haben die Entwickler alle Symbole im vk-Namensraum definiert und alle redundanten vk-, Vk- und VK_-Präfixe entfernt. Für enum-Typen ist die CamelCase-Schreibweise und der Präfix e zu verwenden um Kompilierungsfehler zu vermeiden. Außerdem kommen nur Scoped Enums und das Template vk::Flags<> für Flags zum Einsatz, um Typsicherheit zu gewähren. Darüber hinaus besitzen structs einen Konstruktor, Vulkan-Handles Wrapper-Klassen und entsprechende Member-Funktionen.

Wer die C++-Variante der Vulkan-API ausprobieren möchte, kann sie aus dem Repository des Projekts extrahieren, in einem eigenem Vulkan-Unterverzeichnis ablegen und mit #include <vulkan/vulkan.hpp> einbinden. Ein Header für vk.xml-Spezifikationen im aktuellen Arbeitsverzeichnis lässt sich im Anschluss durch den Build von VulkanHppGenerator und das Ausführen von VulkanHppGenerator <vk.xml> generieren.

Mit Vulkan arbeitet Khronos an einem Nachfolger für OpenGL. Die Schnittstelle soll laut der Gruppe die nächste Generation der Grafik- und Berechnungs-API darstellen und neben hoher Effizienz plattformübergreifenden Zugriff auf moderne GPUs auf Geräten von PCs und Mobilgeräten bis hin zu eingebetteten Plattformen bieten. Version 1.0 der Spezifikation gab die Khronos Group im Februar 2016 frei. Mittlerweile sind unter anderem Treiber für AMD-, Intel- und Nvidia-Hardware verfügbar. Zudem lassen sich SDKs für Windows, Linux und Android herunterladen. (jul)