Freigeben über


Arbeitsübermittlung in Direct3D 12

Um die CPU-Effizienz von Direct3D-Apps zu verbessern, unterstützt Direct3D ab Version 12 keinen unmittelbaren Kontext mehr, der einem Gerät zugeordnet ist. Stattdessen werden ihre Anwendungseinträge aufgezeichnet und dann Befehlslistenübermittelt, die Zeichnungs- und Ressourcenverwaltungsaufrufe enthalten. Sie können diese Befehlslisten aus mehreren Threads an eine oder mehrere Befehlswarteschlangen übermitteln, die die Ausführung der Befehle verwalten. Diese grundlegende Änderung erhöht die Effizienz von Singlethreads, indem Ihre Anwendung das Vorberechnungsrendering für die spätere Wiederverwendung ermöglicht, und es nutzt Multi-Core-Systeme, indem Renderingarbeit über mehrere Threads verteilt wird.

In diesem Abschnitt

Thema Beschreibung
Entwurfsphilosophie von Befehlswarteschlangen und Befehlslisten Die Ziele, die Wiederverwendung von Renderingarbeit und multithreadbasierter Skalierung zu ermöglichen, erfordern grundlegende Änderungen an der Art und Weise, wie Direct3D-Apps Rendering an die GPU übermitteln.
Erstellen und Aufzeichnen von Befehlslisten und Bündeln In diesem Thema werden Die Aufzeichnungsbefehlslisten und -Bündel in Direct3D 12-Apps beschrieben. Befehlslisten und Bundles ermöglichen Apps das Aufzeichnen von Zeichnungs- oder Zustandsänderungsaufrufen für die spätere Ausführung der Grafikverarbeitungseinheit (GPU).
Ausführen und Synchronisieren von Befehlslisten In Microsoft Direct3D 12 ist der sofortige Modus früherer Versionen nicht mehr vorhanden. Stattdessen erstellen Apps Befehlslisten und -Bündel und zeichnen dann Sätze von GPU-Befehlen auf. Befehlswarteschlangen werden verwendet, um Auszuführende Befehlslisten zu übermitteln. Mit diesem Modell können Entwickler mehr Kontrolle über die effiziente Nutzung von GPU und CPU haben.
Verwalten des Grafikpipelinestatus in Direct3D 12- In diesem Thema wird beschrieben, wie der Grafikpipelinestatus in Direct3D 12 festgelegt wird.
Verwenden von Ressourcenbarrieren zum Synchronisieren von Ressourcenzuständen in Direct3D 12- Um die cpu-Auslastung insgesamt zu reduzieren und Treiber-Multithreading und Vorverarbeitung zu ermöglichen, verschiebt Direct3D 12 die Verantwortung für die Verwaltung des Ressourcenstatus vom Grafiktreiber in die Anwendung.
Pipelines und Shader mit Direct3D 12- Die programmierbare Direct3D 12-Pipeline erhöht die Renderingleistung im Vergleich zu Grafikprogrammierschnittstellen der vorherigen Generation erheblich.
Schattierung (Variable Rate Shading, VRS) Die Variable-Rate-Schattierung (oder grobe Pixelschattierung) ist ein Mechanismus, mit dem Sie renderingleistungs-/Leistungsraten zuweisen können, die in Ihrem gerenderten Bild variieren.
Renderdurchläufe Das Renderdurchlauffeature hilft Ihrem Renderer dabei, die GPU-Effizienz zu verbessern, indem der Speicherdatenverkehr auf/vom Off-Chip-Speicher reduziert wird. dies geschieht, indem Ihre Anwendung die Anforderungen an das Rendern von Ressourcen und Datenabhängigkeiten besser identifizieren kann.