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 バイトアラインされている必要があります。 必須 必須 必須
ドライバーは、圧縮されたビットストリーム データの追加のコピーを実行しないでください。 必須 必須 必須

要件

要件
Header d3d12umddi.h (D3d12umddi.h を含む)