Der grafische Standard Vulkan 1.2 wurde veröffentlicht

Khronos-Konsortium, das an der Entwicklung grafischer Standards arbeitet,
veröffentlichte Spezifikation Vulkan 1.2, das die API für den Zugriff auf die grafischen und rechnerischen Möglichkeiten von GPUs definiert. Die neue Spezifikation fasst die in zwei Jahren gesammelten Korrekturen zusammen und für die Arbeit mit Modulen, die anstelle von Header-Dateien verwendet werden können. Module bieten einen neuen Weg zur Organisation von Quelltexten, basierend auf der Definition von Komponentenbereichen, ohne über „#include“ eingebundene Header-Dateien.. Treiber, die die neue Vulkan-Version unterstützen, sind bereits wurde veröffentlicht von Intel, AMD, ARM, Imagination Technologies und NVIDIA. In Mesa wird die Unterstützung von Vulkan 1.2 für die Treiber RADV (AMD-Karten) und ANV (Intel) angeboten. Die Unterstützung von Vulkan 1.2 wird auch im Debugger RenderDoc 1.6, LunarG Vulkan SDK und im Beispielset Vulkan-Samples.

Haupt- Neuheiten:

  • ist abgeschlossen. Die Implementierung der Programmiersprache für Shader HLSL, entwickelt von Microsoft für DirectX, ist bereit für den breiten Einsatz. Die Unterstützung von HLSL in Vulkan ermöglicht die Verwendung derselben HLSL-Shader in Anwendungen, die auf Vulkan und DirectX basieren, und vereinfacht die Transpilation von HLSL nach SPIR-V. Zum Kompilieren der Shader wird empfohlen, den standardmäßigen Compiler
    DXC, der 2017 von Microsoft eröffnet wurde und auf der LLVM-Technologie basiert, zu verwenden. Die Vulkan-Unterstützung wird über ein separates Backend bereitgestellt, das eine Transpilation von HLSL in ein intermediäres Shader-Format SPIR-V ermöglicht. Die Implementierung deckt nicht nur alle integrierten Funktionen
    HLSL ab, einschließlich mathematischer Typen, Steuerflüsse, Funktionen, Mengen, Ressourcentypen, Namensräume, Shader Model 6.2, Strukturen und Methoden, sondern ermöglicht auch die Verwendung von vulkan-spezifischen Erweiterungen wie VKRay von NVIDIA. Mit HLSL über Vulkan wurde die Ausführung von Spielen wie Destiny 2, Red Dead Redemption II, Assassin’s Creed Odyssey und Tomb Raider ermöglicht.

    Der grafische Standard Vulkan 1.2 wurde veröffentlicht
  • Die Spezifikation SPIR-V 1.5, die eine plattformunabhängige Zwischenrepräsentation von Shadern definiert, die sowohl für Grafik als auch für parallele Berechnungen verwendet werden kann.
    SPIR-V sieht eine separate Phase für die Kompilation von Shadern in eine Zwischenrepräsentation vor, was die Erstellung von Frontends für verschiedene Hochsprachen ermöglicht. Auf der Grundlage verschiedener Hochsprachimplementierungen wird ein einheitlicher Zwischenkode generiert, der von den Treibern OpenGL, Vulkan und OpenCL ohne Verwendung eines eingebetteten Shadercompilers genutzt werden kann.

    Der grafische Standard Vulkan 1.2 wurde veröffentlicht
  • In die Haupt-API von Vulkan wurden 23 Erweiterungen integriert, die die Leistung steigern, die visuellen Qualitäten verbessern und die Entwicklung vereinfachen. Zu den hinzugefügten Erweiterungen gehören:
    • Chronologische Semaphore (Timeline-Semaphore), vereinheitlichende Synchronisationen mit Host und Ressourcenwarteschlangen (ermöglicht die Verwendung eines einzigen Primitivs für die bidirektionale Synchronisation zwischen Gerät und Host, ohne separate Primitiven wie VkFence und VkSemaphore einzusetzen). Neue Semaphore werden durch ein monoton ansteigendes 64-Bit-Wert dargestellt, das in mehreren Threads verfolgt und aktualisiert werden kann.
      Der grafische Standard Vulkan 1.2 wurde veröffentlicht
    • Die Möglichkeit, in Shaders Zahlen mit reduzierter Genauigkeit zu verwenden;
    • HLSL-kompatible Speicherdarstellung;
    • Bindless-Ressourcen, die die Begrenzung der verfügbaren Ressourcen für Shaders durch die Nutzung eines gemeinsamen virtuellen Adressraums für System- und GPU-Speicher aufheben;
    • Formelles Modell des Speichers, das definiert, wie parallel ausgeführte Threads auf gemeinsam genutzte Daten und Synchronisationsoperationen zugreifen können;
    • Indexierung von Deskriptoren zur Wiederverwendung von Layout-Deskriptoren in mehreren Shaders;
    • Puffer-Referenzen.

    Vollständige Liste der hinzugefügten Erweiterungen:

  • Hinzugefügt über 50 neue Strukturen und 13 Funktionen;
  • Es wurden verkürzte Spezifikationen für typische Zielplattformen erstellt, die die Arbeit auf Plattformen vereinfachen, für die noch nicht alle Erweiterungen unterstützt werden, und die eine selektive Aktivierung grundlegender Vulkan API-Funktionen überflüssig machen.
  • Die Arbeiten am Projekt zur Sicherstellung der Portabilität mit anderen Grafik-APIs wurden fortgesetzt. Beispielsweise wurden in Vulkan Erweiterungen vorgeschlagen, die es ermöglichen, OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) und DirectX (DXVK, vkd3d) durch die Vulkan API zu translatieren und umgekehrt, um die Ausführung von Vulkan auf Plattformen ohne native Unterstützung (gfx-rs und Ashes für die Ausführung über OpenGL und DirectX, MoltenVK und gfx-rs für die Ausführung über Metal zu ermöglichen.
    Um die Kompatibilität mit DirectX und HLSL zu verbessern, wurden die Erweiterungen
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts sowie spezifische HLSL-Funktionen in SPIR-V implementiert.

In den zukünftigen Plänen wird die Entwicklung von Erweiterungen für maschinelles Lernen, Raytracing, Video-Encoding und -Decoding, die Unterstützung von VRS (variable-rate shading) und Mesh-Shader hervorgehoben.

Wir erinnern uns daran, dass die Vulkan API bemerkenswert eine grundlegende Vereinfachung der Treiber, die Verlagerung der GPU-Befehlsgenerierung auf die Anwendungsebene, die Möglichkeit zur Anbindung von Debugging-Schichten, die Vereinheitlichung der API für verschiedene Plattformen und die Verwendung von vorkompiliertem Zwischenrepräsentationscode zur Ausführung auf der GPU ermöglicht. Um hohe Leistung und Vorhersehbarkeit zu gewährleisten, bietet Vulkan Anwendungen Mittel für die direkte Steuerung der GPU-Operationen und integrierte Unterstützung für die multithreaded Bearbeitung von GPU-Befehlen, was die durch den Treiber verursachten Overheads minimiert und die im Treiber implementierten Funktionen erheblich vereinfacht und vorhersehbarer macht. Zum Beispiel werden Operationen wie das Speicher-Management und die Fehlerbearbeitung, die in OpenGL im Treiber implementiert sind, in Vulkan auf die Anwendungsebene verlagert.

Vulkan deckt alle verfügbaren Plattformen ab und bietet eine einheitliche API für Desktop-, mobile Systeme und Web, sodass eine gemeinsame API für verschiedene Grafikprozessoren und Anwendungen verwendet werden kann. Dank der mehrschichtigen Architektur von Vulkan, die die Erstellung von Werkzeugen ermöglicht, die mit beliebigen GPUs arbeiten, können Hardwarehersteller bei der Entwicklung gängige Werkzeuge zur Codeüberprüfung, Debugging und Profilerstellung nutzen. Für die Erstellung von Shadern wird ein neues transportables Zwischenrepräsentationsformat SPIR-V vorgeschlagen, das auf LLVM basiert und die gleichen grundlegenden Technologien wie OpenCL verwendet. Zur Verwaltung von Geräten und Bildschirmen bietet Vulkan die WSI (Window System Integration)-Schnittstelle, die ähnliche Aufgaben wie EGL in OpenGL ES erfüllt. Die Unterstützung von WSI ist bereits in Wayland verfügbar – alle Anwendungen, die Vulkan verwenden, können in einer Umgebung mit unmodifizierten Wayland-Servern ausgeführt werden. Die Möglichkeit, über WSI zu arbeiten, wird auch für Android, X11 (mit DRI3), Windows, Tizen, macOS und iOS bereitgestellt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4