AMDs Vulkan Memory Allocator 2.1 unterstützt lineare Allocation-Algorithmen

Die GPUOpen-Gruppe des Chipherstellers veröffentlicht die Betaversion des Vulkan Memory Allocator 2.1 mit zahlreichen Neuerungen.

In Pocket speichern vorlesen Druckansicht
AMDs GPUOpen: Zahlreiche SDKs und Tools auf GitHub im Source verfügbar
Lesezeit: 1 Min.
Von
  • Matthias Parbel

Die für Open Source zuständige GPUOpen-Gruppe von AMD hat das erste Beta-Release des Vulkan Memory Allocator 2.1 vorgelegt. In der neuen Version bietet die Library für die Grafik-API Vulkan neben einigen Fehlerbereinigungen eine Reihe neuer Funktionen. Die Rückwärtskompatibilität der API konnten die AMD-Entwickler dabei erhalten.

Neu zur Verfügung stehen beispielsweise lineare Allocation-Algorithmen VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT und VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT, die sich in benutzerdefinierten Speicherpools für verschiedene Puffertypen einsetzen lassen, darunter Free-at-once-, Stack-, Double-Stack- oder Ring-Buffer. Darüber hinaus kann der Vulkan Memory Allocator nun besser mit nicht kohärentem Speicher umgehen. Dafür stehen unter anderen die neuen Funktionen vmaFlushAllocation, vmaInvalidateAllocation parat, während nonCoherentAtomSize automatische Berücksichtigung erfährt.

Um den im Vergleich zu D3D11 und OpenGL besonderen Herausforderungen der Low-Level-Schnittstelle Vulkan gerecht zu werden, stellt die Vulkan Memory-Allocator-Library ein leicht zu integrierendes API zur Verfügung, über das Entwickler die Memory Allocation sowie das Anlegen von Puffer- und Bildspeichern in Vulkan steuern können. Zahlreiche Anwendungen nutzen den Vulkan Memory Allocator zu diesem Zweck – darunter beispielsweise Googles Render Engine Filament und die Cross-Platform-Frameworks Anvil sowie The Forge, aber auch vkDOOM3 und die Lightweight Java Game Library (LWJGL).

Weitere Informationen zur Library finden sich auf der GPUOpen-Website. Die Projektseite auf GitHub bietet einen vollständigen Überblick aller Neuerungen in der Betaversion Vulkan Memory Allocator 2.1. (map)