Freigeben über


D3D12_VIDEO_DECODE_TIER-Enumeration (d3d12video.h)

Gibt die Decodierungsebene eines Hardwarevideodecoders an, der das erforderliche Format von anwendungsdefinierten Texturen und Puffern bestimmt.

Syntax

typedef enum D3D12_VIDEO_DECODE_TIER {
  D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED,
  D3D12_VIDEO_DECODE_TIER_1,
  D3D12_VIDEO_DECODE_TIER_2,
  D3D12_VIDEO_DECODE_TIER_3
} ;

Konstanten

 
D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED
Die Videocodierung wird nicht unterstützt.
D3D12_VIDEO_DECODE_TIER_1
In Ebene 1 erfordert der Hardwaredecoder, dass die Anwendung Verweistexturen als Texturarray ordnet. Dies ist, um hardwareanforderungen zu erfüllen, dass die Texturen im Adressraum "nah" sind, da die Hardware keinen Zeiger in voller Größe für jeden einzelnen Bildpuffer unterstützt. Stattdessen verfügt sie über einen Zeiger und einen eingeschränkteren Bitoffset. Weitere Informationen zu Texturarrays finden Sie unter Einführung in Texturen in Direct3D 11.

Wenn die Decoderhardware ein eindeutiges Speicherlayout erfordert, das für Vorgänge mit anderen Engines oder anderen Videovorgängen nicht unterstützt wird, kann der Decoder das D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED Konfigurationsflag in der D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT-Struktur festlegen, wenn er um Profilunterstützung abgefragt wird. Dieses Flag gibt an, dass die Anwendung Verweise mit dem D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY-Flag zuordnen muss. Die Anwendung sollte die D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS-Struktur verwenden, um eine reine Verweisausgabe festzulegen, wenn die Ausgabe als zukünftiger Verweisrahmen benötigt wird. Der an ID3D12VideoCommandList::D ecodeFrame übergebene Ausgaberahmen ist eine D3D12-Ressource, die von anderen Teilen der Pipeline genutzt werden kann und nicht über das D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY-Flag verfügen darf.

##### Tier 1-Anforderungen für komprimierte Eingabepuffer
- Alle Slices für einen bestimmten Frame müssen in der Reihenfolge platziert werden und müssen zusammenhängend sein, d. h. es dürfen keine Lücken zwischen Slices vorhanden sein. Slice-Steuerelementpuffer müssen Offset- und Größenparameter angeben, die diese Anforderung erfüllen.
– Das erste Slice muss an einer Grenze von 128 Byte beginnen. Der Offsetsatz in der D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM-Struktur muss ein Vielfaches von 128 Bytes sein.
– Die Decodierung wird von Puffern unterstützt, die D3D12_MEMORY_POOL_L0 zugeordnet sind. Dabei handelt es sich immer um Systemspeicher, aber dennoch um einen D3D12-Puffer.
- Die Decodierung wird von Puffern unterstützt, die D3D12_MEMORY_POOL_L1 zugeordnet sind, dem Standardpool, einschließlich der mit D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE zugeordneten.
D3D12_VIDEO_DECODE_TIER_2
In der Decodierungsebene 2 können Texturen als Texturarray oder als Array separater Textur-2D-Ressourcen (jede Ressource mit der Arraygröße 1) referenziert werden. Dies ist für den Aufrufer flexibler und ist wichtig in Szenarien, in denen sich die Auflösung häufig ändert, z. B. in Streamingvideos, da ein Texturarray nur als einzelne Einheit zugeordnet und zugeordnet werden kann, aber separate Textur-2D-Ressourcen einzeln zugeordnet und zugeordnet werden können.

Wenn die Decodierungshardware ein eindeutiges Kachelformat erfordert, das für Vorgänge auf anderen Engines oder anderen Videovorgängen nicht unterstützt wird, kann der Decoder das D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED-Konfigurationsflag in der D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT-Struktur festlegen, wenn die Profilunterstützung abgefragt wird. Dieses Flag gibt an, dass die Anwendung Verweise mit dem D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY-Flag zuordnen muss. Die Anwendung sollte die D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS-Struktur verwenden, um eine Verweisausgabe festzulegen, wenn die Ausgabe als zukünftiger Verweisrahmen benötigt wird. Der an ID3D12VideoCommandList::D ecodeFrame übergebene Ausgaberahmen ist eine D3D12-Ressource, die von anderen Teilen der Pipeline genutzt werden kann und nicht über das D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY-Flag verfügen darf.

#### Tier 2-Anforderungen für komprimierte Eingabepuffer

Diese Anforderungen sind identisch mit den Anforderungen der Ebene 1.

- Alle Slices für einen bestimmten Frame müssen in der Reihenfolge platziert werden und müssen zusammenhängend sein, d. h. es dürfen keine Lücken zwischen Slices vorhanden sein. Slice-Steuerelementpuffer müssen Offset- und Größenparameter angeben, die diese Anforderung erfüllen.
– Das erste Slice muss an einer Grenze von 128 Byte beginnen. Der Offsetsatz in der D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM-Struktur muss ein Vielfaches von 128 Bytes sein.
– Die Decodierung wird von Puffern unterstützt, die D3D12_MEMORY_POOL_L0 zugeordnet sind. Dabei handelt es sich immer um Systemspeicher, aber dennoch um einen D3D12-Puffer.
- Die Decodierung wird von Puffern unterstützt, die D3D12_MEMORY_POOL_L1 zugeordnet sind, dem Standardpool, einschließlich der mit D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE zugeordneten.
-
D3D12_VIDEO_DECODE_TIER_3
Dieses Feld ist reserviert.

Anforderungen

Anforderung Wert
Header d3d12video.h