Ressourcenbindung
Bindung ist der Prozess, bei dem Ressourcenobjekte mit den Shadern der Grafikpipeline verknüpft werden.
In diesem Abschnitt
Thema | BESCHREIBUNG |
---|---|
Übersicht über Ressourcenbindungen | Der Schlüssel zur Ressourcenbindung in DirectX 12 sind die Konzepte eines Deskriptors, Deskriptortabellen, Deskriptorheaps und einer Stammsignatur. |
Unterschiede im Bindungsmodell von Direct3D 11 | Eine der Standard Entwurfsentscheidungen hinter der DirectX12-Bindung besteht darin, sie von anderen Verwaltungsaufgaben zu trennen. Dies stellt einige Anforderungen an die App, um bestimmte potenzielle Gefahren zu verwalten. |
Deskriptoren | Deskriptoren sind die primäre Bindungseinheit für eine einzelne Ressource in D3D12. |
Deskriptorheaps | Ein Deskriptorheap ist eine Sammlung zusammenhängender Zuordnungen von Deskriptoren, eine Zuordnung für jeden Deskriptor. |
Deskriptortabellen | Eine Deskriptortabelle ist logisch ein Array von Deskriptoren. |
Stammsignaturen | Die Stammsignatur definiert, welche Arten von Ressourcen an die Grafikpipeline gebunden sind. |
Funktionsabfragen | Ihre Anwendung kann die Ebene der Unterstützung für die Ressourcenbindung und viele andere Features mit einem Aufruf von ID3D12Device::CheckFeatureSupport ermitteln. |
Ressourcenbindung in HLSL | In diesem Thema werden einige spezifische Features der Verwendung des HLSL-Shadermodells 5.1 mit Direct3D 12 beschrieben. Alle Direct3D 12-Hardware unterstützt das Shadermodell 5.1. Daher hängt die Unterstützung für dieses Modell nicht von der Hardwarefeatureebene ab. |
UMA-Optimierungen: CPU-barrierefreie Texturen und Standard Swizzle | UMA-GPUs (Universal Memory Architecture) bieten einige Effizienzvorteile gegenüber diskreten GPUs, insbesondere bei der Optimierung für mobile Geräte. Das Gewähren von CPU-Zugriff für Ressourcen, wenn die GPU UMA ist, kann den Kopieraufwand zwischen CPU und GPU verringern. Es wird zwar nicht empfohlen, Anwendungen blind cpu-Zugriff auf alle Ressourcen in UMA-Designs zu gewähren, aber es gibt Möglichkeiten, die Effizienz zu verbessern, indem den richtigen Ressourcen CPU-Zugriff erteilt wird. Im Gegensatz zu diskreten GPUs kann die CPU technisch gesehen über einen Zeiger auf alle Ressourcen verfügen, auf die die GPU zugreifen kann. |
Typisierte, ungeordnete Zugriffsansichtsladevorgänge | Unordered Access View (UAV) Typed Load ist die Möglichkeit für einen Shader, aus einem UAV mit einem bestimmten DXGI_FORMAT zu lesen. |
Menge gekachelter Ressourcen | Volumentexturen (3D) können als kachelnde Ressourcen verwendet werden, wobei die Kachelauflösung dreidimensional ist. |
Unterressourcen | Beschreibt, wie eine Ressource in Unterressourcen unterteilt wird und wie auf eine einzelne, mehrere oder mehrere Unterressourcen verwiesen wird. |