
Vulkan-APIs sind plattformübergreifende Softwareschnittstellen auf niedriger Ebene, die aufgrund geringerer Kosten im Vergleich zu anderen APIs wie OpenGL eine höhere 3D-Grafikleistung bieten, insbesondere mit speziellen GPU-Funktionen (die API eignet sich auch für das 2D-Rendering). Bei ordnungsgemäßer Implementierung bietet Vulkan "eine Erhöhung der Geschwindigkeit von geringfügig auf polynomial im Vergleich zu anderen APIs auf demselben Gerät".
Der Entwickler der Khronos Group stellte die Vulkan API auf der GDC 2015-Konferenz vor. Die erste Veröffentlichung erfolgte im Februar 2016. Ursprünglich hieß die Vulkan-API "die nächste Generation von OpenGL" oder einfach glNext, dann wurde der Name in Vulkan geändert.
Viele warteten gespannt auf die Veröffentlichung dieser revolutionären Technologie, die 3D-Grafiken erheblich beschleunigt und den Prozessor wie Direct3D 12, Metal und Mantle entlastet. Das Problem war jedoch, dass die Vulkan-API viel mehr Arbeit vom Entwickler erforderte, während übergeordnete APIs wie OpenGL und DirectX 11 viele Dinge vereinfachten, wie z. B. die Speicherverwaltung. Um die Zusammenarbeit mit Vulkan zu erleichtern, hat AMD einen Wrapper und eine Abstraktionsschicht V-EZ entwickelt und nun den Quellcode für dieses Tool unter der kostenlosen MIT-Lizenz (
GitHub-Repository ) veröffentlicht.
Ursprünglich wurde V-EZ im März 2018 mit geschlossenen Quellen veröffentlicht, jetzt wurde diese Einschränkung aufgehoben.
Vulkan APIV-EZ ist eine Zwischenstufe (Middlware), die während der Entwicklung viele Zusatzfunktionen übernimmt, sodass der Entwickler nicht sofort alle Feinheiten von Vulkan kennen und manuell bearbeiten muss. V-EZ wird viele Dinge selbst erledigen. Die Auxiliary-Shell verwendet dieselbe Semantik wie die Vulkan-API, dh sie kann als eine Art Trainingswerkzeug verwendet werden. Beginnend mit V-EZ können sich Entwickler allmählich daran gewöhnen - und schließlich Vulkan direkt verwenden. Dies bedeutet auch, dass in vielen Fällen die Vulkan-Dokumentation auf V-EZ anwendbar ist.
Vorteile von Vulkan gegenüber APIs der vorherigen Generation:
- Die Vulkan API eignet sich gut für High-End-Grafikkarten und für Grafikgeräte auf Mobilgeräten.
- Im Gegensatz zu Direct3D 12 ist Vulkan in vielen modernen Betriebssystemen verfügbar, die nicht an ein Betriebssystem oder einen Formfaktor gebunden sind. Vulkan-APIs funktionieren von Anfang an unter Android, Linux, Tizen, Windows 7, Windows 8 und Windows 10. Es gibt Unterstützung von Drittanbietern für iOS und macOS.
- Reduzierter Treiber-Overhead, reduzierte CPU-Auslastung.
- Reduzierung der CPU-Belastung durch Stapelverarbeitung.
- Bessere Skalierung für Multi-Core-Prozessoren.
- OpenGL verwendet die Hochsprache GLSL zum Schreiben von Shadern, wodurch jeder OpenGL-Treiber gezwungen wird, einen eigenen Compiler für GLSL zu implementieren, der zur Laufzeit ausgeführt wird, um Programm-Shader in GPU-Maschinencode zu übersetzen. Stattdessen sollten Vulkan-Treiber Shader akzeptieren, die bereits in das SPIR-V-Zwischenbinärformat konvertiert wurden, ähnlich dem Binärformat, in das HLSL-Shader in Direct3D kompiliert werden.
- Dank der vorläufigen Kompilierung der Shader wird die Initialisierungsgeschwindigkeit von Anwendungen erhöht, und Sie können für jede Szene eine größere Anzahl von Shadern verwenden. Ein Treiber benötigt nur eine bestimmte GPU-Optimierung und Codegenerierung, was die Treiberwartung vereinfacht und deren Größe verringert.
- Einheitliche Verwaltung von Rechenkernen und Grafik-Shadern, sodass keine separate Computer-API in Kombination mit einer Grafik-API verwendet werden muss.
Zwischenschicht V-EZObwohl der Schöpfer der Vulkan-API die Khronos-Gruppe ist, basiert die Technologie auf der Mantle-API, die AMD der Khronos-Gruppe gespendet hat. Die Idee war, eine fortschrittlichere Technologie zu entwickeln, die nicht an einen bestimmten Hersteller gebunden war, damit sie als allgemein anerkannter Industriestandard wie OpenGL übernommen werden konnte. Daher hilft AMD jetzt bei der Weiterentwicklung der Vulkan-API und erstellt unterstützende Tools wie V-EZ.
Installationsvoraussetzungen für V-EZ
- 64-Bit-Windows 7, 8.1, 10
- 64-Bit-Linux (getestet unter Fedora und Ubuntu)
- Visual Studio 2015 oder höher
- GCC 4.9 oder höher
- CMake 3.8 oder höher
- LunarG Vulkan SDK 1.1.70
V-EZ ist nicht an einen bestimmten Anbieter gebunden und sollte mit Geräten funktionieren, die nicht von AMD stammen.
Die Entwickler von V-EZ hoffen, dass die Veröffentlichung von Quellcode unter einer kostenlosen Lizenz zur größeren Popularität der V-EZ-Shell und folglich neuer Programmierschnittstellen auf niedriger Ebene beitragen wird. Dies wiederum wird Entwicklern helfen, neue APIs einzuführen, was zu einer besseren Spieleleistung und mehr plattformübergreifenden Spielen führen wird.
Vulkan wird derzeit von einer Reihe von Spiel-Engines unterstützt, darunter Source 2, Serious Engine 4, Unreal Engine 4, Torque 3D, ID Tech 3, ID Tech 4, ID Tech 6, Xenko, Unity, CryEngine, Intrinsic, Unigine und Abyss Engine , Banshee 3D und Godot.