Agility SDK 1.716.0-preview: Tight Alignment senkt GPU-Speicherbedarf von Buffern

Das DirectX-Team hat am 17. Dezember 2024 die Vorschauversion 1.716.0-preview des Agility SDK veröffentlicht. Zentrale Neuerung ist die Funktion Tight Alignment, die die Ausrichtungsanforderungen für Buffer in Direct3D 12 deutlich reduziert. Laut Microsoft handelt es sich dabei um eine häufige Anforderung aus der Entwicklerschaft, da Buffer der Ressourcentyp seien, der am stärksten von verschwendetem Padding betroffen ist.

Geringere Ausrichtung, kompaktere Allokationen

Bislang erzwang Direct3D 12 für Buffer vergleichsweise große Ausrichtungsgrenzen, wodurch beim Packen vieler kleiner Ressourcen erhebliches Padding entstand. Mit Tight Alignment lassen sich platzierte Buffer (placed resources) auf bis zu 8 Byte genau ausrichten, committed resources auf 4 KiB. Technisch wird die Funktion über das neue Flag D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT bei der Ressourcenerstellung aktiviert. Entwickler müssen für die korrekten Offsets weiterhin ID3D12Device::GetResourceAllocationInfo() abfragen, da die tatsächliche Größe vom Treiber bestimmt wird.

Die Einsparungen fallen je nach Allokationsmuster unterschiedlich aus. Bei platzierten Ressourcen nennt Microsoft Werte von 25 bis 50 Prozent für mittlere Größenbereiche und über 95 Prozent in Szenarien mit zahlreichen sehr kleinen Buffern. Bei committed resources sind die Gewinne moderater und konzentrieren sich auf kleine Allokationen. Die Funktion zielt damit primär auf Anwendungen, die viele Buffer-Objekte verwalten und bisher Speicher für Padding reservieren mussten.

Treiber- und Hardwareunterstützung

Zum Zeitpunkt der Vorschau steht Tight Alignment über mehrere Hersteller bereit. AMD unterstützt die Funktion ab dem Adrenalin-Treiber 25.9.1, Intel mit der Arc-B-Serie sowie der Core-Ultra-Series-2-Generation mit Arc Graphics. NVIDIA bestätigte die Unterstützung, für Qualcomms Adreno-Familien stand der entsprechende Treiber noch aus. Für Tests ohne passende Hardware liefert Microsoft eine Implementierung über den Software-Rasterizer WARP. Verteilt wird die Funktion über das NuGet-Paket Microsoft.Direct3D.D3D12 und reiht sich damit in die laufende Pflege der Werkzeuge ein, die Microsoft auch über das Microsoft Game Development Kit vorantreibt. Sie richtet sich an Entwickler, die den Speicherverbrauch ihrer Direct3D-12-Anwendungen optimieren wollen.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein