D3D12DDI_TEXTURE_BARRIER_0088-Struktur (d3d12umddi.h)
Eine D3D12DDI_TEXTURE_BARRIER_0088-Struktur beschreibt Zugriffsübergänge für Texturen.
Syntax
typedef struct D3D12DDI_TEXTURE_BARRIER_0088 {
D3D12DDI_BARRIER_SYNC SyncBefore;
D3D12DDI_BARRIER_SYNC SyncAfter;
D3D12DDI_BARRIER_ACCESS AccessBefore;
D3D12DDI_BARRIER_ACCESS AccessAfter;
D3D12DDI_BARRIER_LAYOUT LayoutBefore;
D3D12DDI_BARRIER_LAYOUT LayoutAfter;
D3D12DDI_HRESOURCE hResource;
D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 Subresources;
D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 Flags;
} D3D12DDI_TEXTURE_BARRIER_0088;
Member
SyncBefore
Ein D3D12DDI_BARRIER_SYNC Wert, der den Synchronisierungsbereich aller vorherigen GPU-Arbeiten angibt, die vor dem Ausführen der Barriere abgeschlossen werden müssen.
SyncAfter
Ein D3D12DDI_BARRIER_SYNC Wert, der den Synchronisierungsbereich aller nachfolgenden GPU-Arbeiten angibt, die warten müssen, bis die Ausführung der Barriere abgeschlossen ist.
AccessBefore
Ein D3D12DDI_BARRIER_ACCESS Wert, der den Zugriffsstatus der Textur vor der Ausführung der Barriere angibt.
AccessAfter
Ein D3D12DDI_BARRIER_ACCESS Wert, der den Zugriffsstatus der Textur nach Abschluss der Barriereausführung angibt.
LayoutBefore
Ein D3D12DDI_BARRIER_LAYOUT Wert, der das Layout der Textur vor der Ausführung der Barriere angibt.
LayoutAfter
Ein D3D12DDI_BARRIER_LAYOUT Wert, der das Layout der Textur nach Abschluss der Barriereausführung angibt.
hResource
Der Handle der Texturressource unter Verwendung der Barriere.
Subresources
Eine D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088-Struktur , die den Bereich der Texturunterressourcen angibt, die behindert werden.
Flags
Ein D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 Wert, der optionale Flags angibt.
Hinweise
Allgemeine Informationen finden Sie unter Erweiterte Barrieren .
Synchronization
Grafikprozessoren sind so konzipiert, dass sie so viel Arbeit wie möglich parallel ausführen. Alle GPU-Arbeiten, die von früheren GPU-Arbeiten abhängen, müssen synchronisiert werden, bevor sie auf abhängige Daten zugreifen. Die Werte SyncBefore und SyncAfter sind logische Bitfeldmasken, die alle zu synchronisierenden Arbeiten identifizieren.
Eine Barriere muss warten, bis alle vorherigen Befehlsbereiche SyncBefore abgeschlossen sind, bevor die Barriere ausgeführt wird. Ebenso muss eine Barrier alle nachfolgenden SyncAfter-Bereiche blockieren, bis die Barriere abgeschlossen ist.
Layoutübergänge
Texturunterressourcen können unterschiedliche Layouts für verschiedene Zugriffsmethoden verwenden. Texturen werden z. B. häufig komprimiert, wenn sie als Renderziel oder Tiefenschablone verwendet werden, und werden häufig für Shader-Lese- oder Kopierbefehle nicht komprimiert. Texture Barrieren verwenden LayoutBefore und LayoutAfter , um Layoutübergänge zu beschreiben.
Layoutübergänge werden nur für Texturen benötigt, daher werden sie nur in dieser Datenstruktur ausgedrückt.
Sowohl LayoutBefore als auch LayoutAfter müssen mit dem Typ der Warteschlange kompatibel sein, die die Barriere ausführt. Beispielsweise kann eine Computewarteschlange eine Unterressource nicht in oder aus D3D12_BARRIER_LAYOUT_RENDER_TARGET übertragen.
Um eine klar definierte Barrierereihenfolge bereitzustellen, ist das Layout einer Unterressource nach Abschluss einer Abfolge von Barrieren das endgültige LayoutAfter in der Sequenz.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 11 (WDDM 3.0) |
Kopfzeile | d3d12umddi.h |
Weitere Informationen
D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088