Unterzuweisung innerhalb von Puffern
Puffer verfügen über alle Funktionen, die in D3D12 erforderlich sind, damit Anwendungen einen großen Bereich vorübergehender Daten von der CPU auf die GPU übertragen können. In diesem Abschnitt werden vier gängige Szenarien für die Verwendung und Verwaltung von Ressourcen und Puffern behandelt.
Ähnlich wie bei D3D11 müssen Anwendungen in D3D12 weiterhin die Speichernutzung beim Zuweisen von Puffern in D3D12 im Vergleich zu dynamischen/Stagingressourcen in D3D11 deklarieren, aber in D3D12 haben Entwickler mehr Flexibilität und eine engere Kontrolle über die Speicherauslastung. Puffer verfügen über die Untergeordnete Zuordnung über alle Funktionen, die für die Speicherverwaltung auf niedriger Ebene erforderlich sind.
In diesem Abschnitt
Thema | BESCHREIBUNG |
---|---|
Hochladen verschiedener Ressourcentypen |
Zeigt, wie Sie einen Puffer verwenden, um sowohl Konstantenpufferdaten als auch Vertexpufferdaten auf die GPU hochzuladen, und wie Daten ordnungsgemäß untergeordnet und in Puffern platziert werden. Die Verwendung eines einzelnen Puffers erhöht die Flexibilität der Speicherauslastung und bietet Anwendungen eine engere Kontrolle der Speicherauslastung. Zeigt auch die Unterschiede zwischen den D3D11- und D3D12-Modellen zum Hochladen verschiedener Ressourcentypen an. |
Hochladen von Texturdaten über Puffer |
Das Hochladen von 2D- oder 3D-Texturdaten ähnelt dem Hochladen von 1D-Daten, mit der Ausnahme, dass Anwendungen die Datenausrichtung im Zusammenhang mit der Zeilenhöhe stärker beachten müssen. Puffer können orthogonal und gleichzeitig aus mehreren Teilen der Grafikpipeline verwendet werden und sind sehr flexibel. |
Zurücklesen von Daten über einen Puffer |
Das Zurücklesen von Daten von der GPU, z. B. das Erfassen eines Screenshots, umfasst die Verwendung des Readback-Heaps. |
Fence-basierte Ressourcenverwaltung |
Zeigt, wie Die Lebensdauer von Ressourcendaten durch Nachverfolgen des GPU-Fortschritts über Zäune verwaltet wird. Arbeitsspeicher kann effektiv mit Zäunen verwendet werden, die die Verfügbarkeit des freien Speicherplatzes im Arbeitsspeicher sorgfältig verwalten, z. B. in einer Ringpufferimplementierung für einen Upload-Heap. |