Freigeben über


D3D12DDI_VIDEO_DECODE_TIER_0020-Aufzählung (d3d12umddi.h)

Gibt die Videodecodierungsebene an. Decodierung von Videoebenen definiert eine Reihe von Hardwarefunktionen. Je höher die Ebene, desto besser ist die Hardware.

Syntax

typedef enum D3D12DDI_VIDEO_DECODE_TIER_0020 {
  D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED,
  D3D12DDI_VIDEO_DECODE_TIER_0020_1,
  D3D12DDI_VIDEO_DECODE_TIER_0020_2,
  D3D12DDI_VIDEO_DECODE_TIER_0020_3
} ;

Konstanten

 
D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED
Das Decodieren des Profils wird nicht unterstützt.
D3D12DDI_VIDEO_DECODE_TIER_0020_1
Videodecodierung der Ebene 1. Bei der Videodecodierung der Ebene 1 muss die Hardware Ausgabetexturen decodieren und Referenztexturen zum Decodieren eines Datenstroms physisch zusammenhängend sein, wenn Videovorgänge darauf verweisen.

Die Referenzressourcen werden von der Anwendung als D3D12-Texturarray zugeordnet. Der Treiber erhält keine expliziten Hinweise, dass die Zuordnung auf Videoszenarien ausgerichtet ist und anfänglich nicht-physisch zusammenhängenden Speicher zuweist. Treiber werden erwartet, dass ein neues Update Allocation Properties Feature verwendet wird, das vom Speicher-Manager bereitgestellt wird, um eine Konvertierung physisch zusammenhängend zu planen, wenn die Videoarbeit übermittelt wird, die es tatsächlich erfordert, physisch zusammenhängend zu sein.

Hardwaremerkmale, die Hardware in Stufe 1 platzieren:

* Decodierungshardware erfordert physisch zusammenhängenden Speicher für die Decodierung von Ausgabe und Verweisen. Eingabepuffer mit dem komprimierten Bitstream erfordern möglicherweise auch physisch zusammenhängende.

* Decodierungshardware verfügt möglicherweise über ein spezielles Tilingformat oder eine andere Speicherlayoutdefinition, die nicht mit anderen Engines oder Videovorgängen kompatibel ist.

Anforderungen für komprimierte Eingabepuffer:

* Alle Segmente für einen bestimmten Frame müssen in der Reihenfolge und zusammenhängend (keine Lücken zwischen Segmenten) platziert werden.

* Treiber dürfen keine zusätzlichen Kopien der Bitstreamdaten ausführen.

* Das erste Segment muss auf einer Grenze von 128 Byte beginnen.

* Hardware muss die Decodierung von einem Puffer unterstützen, der aus D3D12DDI_MEMORY_POOL_L0 zugeordnet ist (immer Systemspeicher).

* Hardware muss die Decodierung von D3D12DDI_MEMORY_POOL_L1 (Standardpool) mit D3D12DDI_CPU_PAGE_PROPERTY_NOT_AVAILABLE unterstützen.
D3D12DDI_VIDEO_DECODE_TIER_0020_2
Videodecodierung der Ebene 2. Die Decodierungsebene 2 ermöglicht es dem Aufrufer, Referenz- und Ausgabetexturen als separate 2D-Texturressourcen zuzuweisen. Die Anwendung ist nicht mehr erforderlich, um Texturarrays zuzuweisen, dies muss jedoch unterstützt werden.

Die Decodierungsebene 2 hat keine physisch zusammenhängenden Anforderungen. Hardware hat möglicherweise zusammenhängende VA-Anforderungen (Videodecodierungsbeschleunigung) in dieser Ebene, und Anwendungen müssen ein Texturarray erstellen, um dies zu unterstützen.

Zum Aktivieren der Ebene 2 müssen reservierte Ressourcen, auch als Tiled- oder Sparse-Ressourcen bezeichnet, für die vom Treiber unterstützten Referenz- und Ausgabeformate unterstützt werden. Dies kann auf zwei Arten erfolgen:

* Wenn hardware über Unterstützung für gpu-bezogene GPU VA verfügt und über ein Kachelmuster verfügt, das die Kachel-Shape-Anforderungen reservierter Ressourcen unterstützt, kann der bereits vorhandene D3D12-Tiled-Ressourcenmechanismus verwendet werden.

* Wenn hardware über Unterstützung für die gpubasierte GPU VA verfügt, das Kachelmuster jedoch nicht den Anforderungen der Kachelform reservierter Ressourcen entspricht, und die Hardware kann eine Kachelzuordnung unterstützen, die Kacheln für eine gesamte Unterressource ordnet und entordnet, für jede Ebene einer planaren Ressource, die eine separate Unterressource in D3D12 ist, erfordert der Mechanismus, dass sie kachelzuordnungen und Kacheln unabhängig zugeordnet werden können. Beachten Sie, dass sich dieser Mechanismus in der Entwicklung befindet, jedoch die Kachelform in der API verschleiert.

Hardwaremerkmale, die Hardware in Stufe 2 platzieren:

* Erfordert keinen physisch zusammenhängenden Speicher.

* Hardware hat eine zusammenhängende VA-Anforderung.

* Decodierungshardware verfügt möglicherweise über ein spezielles Tilingformat oder eine andere Speicherlayoutdefinition, die nicht mit anderen Engines oder Videovorgängen kompatibel ist.

Die komprimierten Eingabepufferanforderungen entsprechen den Anforderungen der Ebene 1.
D3D12DDI_VIDEO_DECODE_TIER_0020_3
Videodecodierung der Ebene 3. Diese Stufe wird in WDDM 2.3 unterstützt.

Die Decodierungsebene 3 ermöglicht dem Aufrufer das Zuweisen von Referenz- und Ausgabetexturen als Standardmäßige 2D-Texturressourcen. Die Anwendung ist nicht mehr erforderlich, um Texturarrays zuzuweisen, dies muss jedoch unterstützt werden.

Decodierungsebene 3 erfordert keine physisch zusammenhängenden Zuordnungen. Die Hardware muss die D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY nicht mehr benötigen, muss sie aber weiterhin unterstützen. Wenn abgefragt wird, muss das D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Element der D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020-Struktur auf FALSE festgelegt werden.

Um Stufe 3 zu aktivieren, müssen reservierte Ressourcen (auch als Tiled- oder Sparse-Ressourcen bezeichnet) für die vom Treiber unterstützten Referenz- und Ausgabeformate unterstützt werden. Dies kann auf zwei Arten geschehen:

* Wenn hardware über Unterstützung für gpu-bezogene GPU VA verfügt und über ein Kachelmuster verfügt, das die Kachel-Shape-Anforderungen reservierter Ressourcen unterstützt, kann der bereits vorhandene D3D12-Tiled-Ressourcenmechanismus verwendet werden.

* Wenn hardware über Unterstützung für die gpubasierte GPU VA verfügt, das Kachelmuster jedoch nicht den Anforderungen der Kachelform reservierter Ressourcen entspricht, und die Hardware kann eine Kachelzuordnung unterstützen, die Kacheln für eine gesamte Unterressource ordnet und entordnet, für jede Ebene einer planaren Ressource, die eine separate Unterressource in D3D12 ist, erfordert der Mechanismus, dass sie kachelzuordnungen und Kacheln unabhängig zugeordnet werden können. Beachten Sie, dass sich dieser Mechanismus in der Entwicklung befindet, jedoch die Kachelform in der API verschleiert.

Die komprimierten Eingabepufferanforderungen entsprechen den Anforderungen der Ebene 1.

Bemerkungen

Wenn für die Decodierungshardware ein eindeutiges Tilingformat erforderlich ist, das für Vorgänge in anderen Engines oder anderen Videovorgängen nicht unterstützt wird, kann der Decoder D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY in der D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020-Struktur festlegen, wenn Sie die Profilunterstützung abfragen. Dieses Kennzeichen gibt an, dass die Anwendung Verweise mit dem D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Flag zuweisen muss. Wenn die Ausgabe als zukünftiger Referenzframe benötigt wird, ist der an PFND3D12DDI_VIDEO_DECODE_FRAME übergebene Ausgabeframe eine D3D12-Ressource, die von anderen Teilen der Pipeline verbraucht werden kann und nicht über das D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Flag verfügen darf.

In der folgenden Tabelle sind die verschiedenen Funktionen für jede Ebene aufgeführt:

Fähigkeit Ebene 1 Ebene 2 Ebene 3
Unterstützt einzeln zugeordnete Referenzframes und -ausgabe. Nein Nein Erforderlich
Unterstützt Verweise und zugewiesen als Texturarray. Erforderlich Erforderlich Erforderlich
Kann optional das REFERENCE_ONLY Ressourcenflagge erfordern. Beachten Sie, dass alle Ebenen erforderlich sind, um mit vorhandener Kennzeichnung zu arbeiten, auch wenn sie nicht erforderlich ist. Wahlfrei Wahlfrei Nein
Unterstützung für Verweise, die mit REFERENCE_ONLY zugewiesen wurden, auch wenn die Großbuchstaben dies nicht erfordern. Erforderlich Erforderlich Erforderlich
Unterstützt Tiled/Sparse-Ressourcen für Verweise, Eingaben und Ausgaben. Nein Erforderlich Erforderlich
Komprimierte Bitdatenstromeingabepuffer können als L0 (Hauptsystemspeicher) oder L1 (für dGPU, Videospeicher) zugewiesen werden. Erforderlich Erforderlich Erforderlich
Erfordert komprimierte Bitstreamdaten, damit daten in einer einzelnen Pufferzuordnung ohne Lücken zwischen Segmenten gefunden werden. Erforderlich Erforderlich Erforderlich
Offset zum ersten Segment im komprimierten Eingabepuffer muss 256 Byte ausgerichtet sein. Erforderlich Erforderlich Erforderlich
Treiber dürfen keine zusätzlichen Kopien der komprimierten Bitstreamdaten ausführen. Erforderlich Erforderlich Erforderlich

Anforderungen

Anforderung Wert
Header- d3d12umddi.h (einschließlich D3d12umddi.h)