次の方法で共有


D3D12DDI_VIDEO_DECODE_TIER_0020列挙 (d3d12umddi.h)

ビデオ デコード層を指定します。 ビデオ層をデコードすると、ハードウェア機能のセットが定義されます。 レベルが高いほど、ハードウェアの能力が高くなります。

構文

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
} ;

定数

 
D3D12DDI_VIDEO_DECODE_TIER_0020_NOT_SUPPORTED
デコード プロファイルはサポートされていません。
D3D12DDI_VIDEO_DECODE_TIER_0020_1
ビデオ デコード層 1。 ビデオ デコード層 1 では、ハードウェアでは、ビデオ操作がストリームを参照するときにストリームを物理的に連続するようにデコードするために、デコード出力テクスチャと参照テクスチャが必要です。

参照リソースは、アプリケーションによって D3D12 テクスチャ配列として割り当てられます。 ドライバーは、割り当てがビデオ シナリオを対象とする明示的なヒントを受け取らず、最初は物理的に連続していないメモリを割り当てる可能性があります。 ドライバーは、メモリ マネージャーによって提供される新しい 更新プログラムの割り当てプロパティ 機能を使用して、物理的に連続している必要があるビデオ作業の送信時に物理的に連続する変換をスケジュールすることが期待されます。

階層 1 にハードウェアを配置するハードウェア特性:

*デコードハードウェアは、デコード出力と参照のために物理的に連続したメモリを必要とします。 圧縮されたビットストリームを含む入力バッファーでも、物理的に連続する必要があります。

* デコード ハードウェアには、他のエンジンやビデオ操作と互換性のない特殊なタイリング形式またはその他のメモリ レイアウト定義がある場合があります。

圧縮された入力バッファーの要件:

* 特定のフレームのすべてのスライスは、順番に連続して配置する必要があります (スライス間にギャップはありません)。

* ドライバーは、ビットストリーム データの追加コピーを実行できません。

* 最初のスライスは 128 バイト境界で開始する必要があります。

* ハードウェアは、D3D12DDI_MEMORY_POOL_L0 (常にシステム メモリ) から割り当てられたバッファーからのデコードをサポートする必要があります。

* ハードウェアは、D3D12DDI_CPU_PAGE_PROPERTY_NOT_AVAILABLEを使用したD3D12DDI_MEMORY_POOL_L1 (既定のプール) からのデコードをサポートする必要があります。
D3D12DDI_VIDEO_DECODE_TIER_0020_2
ビデオ デコード層 2。 デコード層 2 を使用すると、呼び出し元は参照テクスチャと出力テクスチャを個別の 2D テクスチャ リソースとして割り当てることができます。 アプリケーションでテクスチャ配列を割り当てる必要はなくなりましたが、これはサポートされている必要があります。

デコード層 2 には、物理的に連続した要件はありません。 ハードウェアには、この層に連続する VA (ビデオ デコード アクセラレーション) 要件がある場合があり、これをサポートするためにテクスチャ配列を作成するにはアプリケーションが必要です。

階層 2 を有効にするには、ドライバーでサポートされている参照形式と出力形式に対して、タイルリソースまたはスパース リソースとも呼ばれる予約済みリソースがサポートされている必要があります。 これは、次の 2 つの方法で行うことができます。

* ハードウェアがプロセスごとの GPU VA をサポートしており、予約済みリソースのタイル形状の要件をサポートするタイル パターンがある場合は、既存の D3D12 タイル リソース メカニズムを使用できます。

* ハードウェアがプロセスごとの GPU VA をサポートしているが、タイル パターンが予約済みリソースのタイル形状要件に準拠していない場合、ハードウェアはサブリソース全体のタイルをマップおよびマップ解除するタイル マッピングをサポートできます。D3D12 の個別のサブリソースである平面リソースの各平面に対して、タイル マッピングとタイルマッピング解除を個別に行う必要があります。 このメカニズムは開発中ですが、API でタイルの形状が難読化されることに注意してください。

階層 2 にハードウェアを配置するハードウェア特性:

* 物理的に連続するメモリは必要ありません。

* ハードウェアには連続する VA 要件があります。

* デコード ハードウェアには、他のエンジンやビデオ操作と互換性のない特殊なタイリング形式またはその他のメモリ レイアウト定義がある場合があります。

圧縮された入力バッファーの要件は、階層 1 と同じです。
D3D12DDI_VIDEO_DECODE_TIER_0020_3
ビデオ デコード層 3。 このレベルは、WDDM 2.3 でサポートされています。

デコード層 3 を使用すると、呼び出し元は標準の 2D テクスチャ リソースとして参照テクスチャと出力テクスチャを割り当てることができます。 アプリケーションでテクスチャ配列を割り当てる必要はなくなりましたが、これはサポートされている必要があります。

デコード層 3 では、物理的に連続した割り当ては必要ありません。 ハードウェアはD3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLYを必要としなくなりましたが、引き続きサポートする必要があります。 クエリを実行するときは、D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 構造体のD3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY メンバーを FALSE に設定する必要があります。

階層 3 を有効にするには、ドライバーでサポートされている参照形式と出力形式に対して予約済みリソース (タイルリソースまたはスパース リソースとも呼ばれます) がサポートされている必要があります。 これは、次の 2 つの方法で発生する可能性があります。

* ハードウェアがプロセスごとの GPU VA をサポートしており、予約済みリソースのタイル形状の要件をサポートするタイル パターンがある場合は、既存の D3D12 タイル リソース メカニズムを使用できます。

* ハードウェアがプロセスごとの GPU VA をサポートしているが、タイル パターンが予約済みリソースのタイル形状要件に準拠していない場合、ハードウェアはサブリソース全体のタイルをマップおよびマップ解除するタイル マッピングをサポートできます。D3D12 の個別のサブリソースである平面リソースの各平面に対して、タイル マッピングとタイルマッピング解除を個別に行う必要があります。 このメカニズムは開発中ですが、API でタイルの形状が難読化されることに注意してください。

圧縮された入力バッファーの要件は、階層 1 と同じです。

備考

デコード ハードウェアで、他のエンジンの操作やさまざまなビデオ操作でサポートされていない一意のタイリング形式が必要な場合、デコーダーはプロファイルのサポートを照会するときに D3D12DDI_VIDEO_DECODE_SUPPORT_DATA_0020 構造にD3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLYを設定することがあります。 このフラグは、アプリケーションが D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY フラグを使用して参照を割り当てる必要があることを示します。 出力が将来の参照フレームとして必要な場合、PFND3D12DDI_VIDEO_DECODE_FRAMEに渡される出力フレームは、パイプラインの他の部分で使用できる D3D12 リソースであり、D3D12DDI_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY フラグを持つ必要はありません。

次の表は、各レベルのさまざまな機能を示しています。

階層 1 階層 2 階層 3
個別に割り当てられた参照フレームと出力をサポートします。 いいえ いいえ 必須
参照をサポートし、テクスチャ配列として割り当てられます。 必須 必須 必須
必要に応じて、REFERENCE_ONLY リソース フラグが必要になる場合があります。 フラグが存在する必要がない場合でも、すべてのレベルでフラグを使用する必要があることに注意してください。 随意 随意 いいえ
大文字で必要ない場合でも、REFERENCE_ONLYで割り当てられた参照のサポート。 必須 必須 必須
参照、入力、出力のタイル化/スパース リソースをサポートします。 いいえ 必須 必須
圧縮ビット ストリーム入力バッファーは、L0 (メイン システム メモリ) または L1 (dGPU、ビデオ メモリの場合) として割り当てられます。 必須 必須 必須
スライス間にギャップのない単一のバッファー割り当てにスライスを配置するには、圧縮されたビットストリーム データが必要です。 必須 必須 必須
圧縮された入力バッファー内の最初のスライスへのオフセットは、256 バイトでアラインされている必要があります。 必須 必須 必須
ドライバーは、圧縮されたビットストリーム データの追加のコピーを実行しないでください。 必須 必須 必須

必要条件

要件 価値
ヘッダー d3d12umddi.h (D3d12umddi.h を含む)