Das DirectX-Team hat am 26. Februar 2026 im DirectX Developer Blog Fence Barriers vorgestellt, eine Erweiterung der Enhanced Barriers in Direct3D 12. Das Konzept erlaubt das Signalisieren und Abwarten von Fences während der Ausführung eines Command Buffers, statt Synchronisationspunkte ausschließlich an den Grenzen der Queue-Submission zu setzen. Damit lassen sich weiter auseinanderliegende Abhängigkeiten im Command Stream koordinieren, ohne den klassischen Mechanismus der Split Barriers zu nutzen. Die Funktion ist als Vorschau in der AgilitySDK 1.719-preview enthalten und richtet sich an Entwickler, die die Nebenläufigkeit zwischen GPU- und CPU-Timeline sowie zwischen mehreren GPU-Queues feiner steuern wollen.
Signal- und Wait-Operationen innerhalb des Command Buffers
Fence Barriers fügen dem Barrier-Modell zwei Operationen hinzu. SignalBarrier signalisiert eine Fence, sobald eine Barriere ihre Ausführung abgeschlossen hat. WaitBarrier pausiert die Ausführung, bis eine oder mehrere Fences signalisiert wurden, bevor eine abhängige Barriere ausgegeben wird. Beide Operationen arbeiten innerhalb der Command Lists und damit auf einer feineren Granularitätsebene als die bisherigen Signal- und Wait-Aufrufe auf Ebene der ID3D12CommandQueue, die an den Submission-Grenzen ansetzen. Voraussetzung auf API-Seite ist eine Fence, die mit dem Flag D3D12_FENCE_FLAG_ALLOW_COMMAND_LIST_BARRIERS erzeugt wurde. Die Verfügbarkeit lässt sich über D3D12_FEATURE_FENCE_BARRIERS mittels CheckFeatureSupport abfragen. Für die Synchronisation über Queues hinweg steht das Access-Bit D3D12_BARRIER_ACCESS_GLOBAL bereit.
Microsoft beschreibt das Verfahren als sauberere und ausdrucksstärkere Option gegenüber Split Barriers. Bei Split Barriers werden Beginn und Abschluss einer Barriere getrennt ausgegeben, um die GPU zwischenzeitlich weiterarbeiten zu lassen. Fence Barriers ersetzen dieses Muster durch eine explizite, fence-basierte Synchronisation, die laut DirectX-Team mehr Flexibilität für die Koordination weiter entfernter Abhängigkeiten im Command Stream bietet und die Nebenläufigkeit zwischen GPU und CPU sowie zwischen GPU-Queues verbessert. Damit setzt sich die Linie fort, die seit der Einführung der Low-Level-API auf möglichst direkte Kontrolle über die GPU-Auslastung zielt.
Tier-1-Vorschau und geplante Erweiterung
Die Vorschau exponiert Tier-1 Fence Barriers. In dieser Stufe unterstützt WaitBarrier ausschließlich Command List Scoped Fences, die früher im selben Ausführungskontext des Command Buffers signalisiert wurden. Die geplante Stufe Tier-2 soll die Unterstützung von WaitBarrier auf Fences ausweiten, die von der CPU oder anderen GPU-Queues signalisiert werden. Dafür werden Treiberunterstützung für native Fences sowie eine entsprechende Kernel-Unterstützung des Betriebssystems für das User-Mode-Submission benötigt.
Für die Tier-1-Vorschau gelten Windows-11-Release-Builds und die AgilitySDK 1.719-preview als Basis. Treiberseitig nennt der Blog für AMD die AgilitySDK-Developer-Preview ab Version 25.30.21.01 sowie die aktuellen öffentlichen Treiber von Intel. Laut DirectX-Team planen weitere GPU-Hersteller, die Tier-1 Fence Barriers in Kürze zu unterstützen. Verfasst wurde die Ankündigung von Bill Kristiansen, Principal Developer bei Microsoft DirectX.
