Vulkan 1.1: Mehr Effizienz, Multi-GPU und DRM für die Low-Level-API

Wolfgang Andermahr
56 Kommentare
Vulkan 1.1: Mehr Effizienz, Multi-GPU und DRM für die Low-Level-API

Die im Gegensatz zu DirectX 12 plattformübergreifend nutzbare Low-Level-API Vulkan wird mächtiger. Die von der Khronos Group veröffentlichte Version 1.1 verspricht noch effizienter zu sein und integriert bereits verfügbare Erweiterungen wie Multi-GPU in der Hauptversion. Unterstützt werden auch DRM und die Shadersprache HLSL.

Neue Funktionen

Möglich macht das der Einsatz der Shaderzwischensprache SPIR-V (Standard Portable Intermediate Representation) in Version 1.3. Dieser Shadercompiler ist mittlerweile dazu in der Lage, sowohl in GLSL (Shadersprache von OpenGL) als auch in HLSL (Shadersprache von DirectX) geschriebene Shader zu kompilieren und für Vulkan umzusetzen. Ebenso möglich ist das mit OpenCL (in C, C++ oder SYCL geschriebener Code).

Gruppierte Operationen und DRM-Unterstützung

Als weitere wirkliche neue Funktion gibt es „Subgroup Operations“. Sie ermöglichen es, einzelne Daten aus unterschiedlichen aber parallel ausgeführten Rechenaufgaben in Gruppen zu kopieren oder abzuändern – typisch sind Gruppengrößen von 32 oder 64 Operationen. Bis jetzt mussten sie in einem Zwischenspeicher abgelegt werden, bevor andere Einheiten auf die Daten zugreifen konnten. Der neue Modus erhöht die Parallelität.

Darüber hinaus kann Vulkan 1.1 den Zugriff auf oder das Kopieren von Daten verhindern, die für das Rendering oder die Displayausgabe vorgesehen sind. Damit lässt mit Vulkan erstmals auch ein DRM-Kopierschutz für die Multimediawiedergabe umsetzen.

Vulkan 1.1 hat darüber hinaus mehrere bisher optional verfügbare Vulkan-Erweiterungen in die Haupt-API aufgenommen. Dazu gehört zum Beispiel die Unterstützung von mehr als einer GPU in Multi-GPU-Systemen, in diesem Punkt war DirectX 12 bisher voraus. Die Anzahl der GPUs ist dabei auch hier nicht beschränkt. Für VR relevantes Multiview-Rendering, bei dem mehrere Viewports in einem Renderdurchgang genutzt werden, wird jetzt ebenfalls von der Hauptversion unterstützt. AMDs Vega- sowie Nvidias Pascal-Architektur können damit bereits umgehen. Ferner wird neben RGB nun auch der Farbraum YCbCr unterstützt, was in Zusammenhang mit dem möglichen Kopierschutz die Kette für die Videowiedergabe vollendet – der Heimkinobereich arbeitet mit YCbCr anstatt RGB.

Treiber für Vulkan 1.1 sind bereits verfügbar

Alle gängigen GPU-Hersteller bieten bereits Treiber für Vulkan 1.1 an. Dazu gehören AMD, Intel und Nvidia auf dem PC-Sektor sowie ARM, Imagination sowie Qualcomm bei mobilen Endgeräten. Tests, um Programme auf ihre Konformität mit der neuen API zu prüfen, sind ab sofort unter Open-Source-Lizenz verfügbar.

Über den Wrapper MoltenVK ist Vulkan seit Februar 2018 neben Windows, Linux, SwitchOS und Android auch auf macOS und iOS verfügbar.