D3D10_USAGE 列挙 (d3d10.h)

レンダリング中に予想されるリソースの使用を識別します。 使用率は、リソースが CPU と GPU のどちらからアクセスできるかを直接反映します。

構文

typedef enum D3D10_USAGE {
  D3D10_USAGE_DEFAULT = 0,
  D3D10_USAGE_IMMUTABLE = 1,
  D3D10_USAGE_DYNAMIC = 2,
  D3D10_USAGE_STAGING = 3
} ;

定数

 
D3D10_USAGE_DEFAULT
値: 0
GPU による読み取りと書き込みのアクセスを必要とするリソース。 これは、最も一般的な使用の選択肢である可能性があります。
D3D10_USAGE_IMMUTABLE
値: 1
GPU でのみ読み取ることができるリソース。 これは GPU によって書き込まれず、CPU によってまったくアクセスできません。 この種類のリソースは作成後に変更できないため、作成時に初期化する必要があります。
D3D10_USAGE_DYNAMIC
値: 2
GPU と CPU の両方からアクセスできるリソース (書き込み専用)。 動的リソースは、フレームごとに少なくとも 1 回 CPU によって更新されるリソースに適しています。 CPU 上の動的リソースに書き込むには、 Map メソッドを使用します。 CopyResource または CopySubresourceRegion を使用して、GPU 上の動的リソースに書き込むことができます。
D3D10_USAGE_STAGING
値: 3
GPU から CPU へのデータ転送 (コピー) をサポートするリソース。

注釈

アプリケーションは、リソースの説明でリソースの使用方法 (その使用方法) を識別します。 リソースを作成するには、D3D10_TEXTURE1D_DESCD3D10_TEXTURE2D_DESC、D3D10_TEXTURE3D_DESCD3D10_BUFFER_DESCD3DX10_IMAGE_LOAD_INFOなど、いくつかの構造があります。

Direct3D 9 と Direct3D 10 の違い:

Direct3D 9 では、リソース作成時にリソースを作成するメモリの種類を指定します (D3DPOOLを使用)。 機能とパフォーマンスの最適な組み合わせを提供するメモリ プールを決定するのは、アプリケーションの仕事でした。

Direct3D 10 では、リソースを作成するメモリの種類 (プール) がアプリケーションで指定されなくなりました。 代わりに、リソースの目的の使用方法を指定し、(ドライバーとメモリ マネージャーと連携して) ランタイムに最適なパフォーマンスを実現するメモリの種類を選択させます。

 

リソースの使用制限

各使用によって、機能とパフォーマンスのトレードオフが決まります。 一般に、リソースへのアクセスは次の API を使用して実行されます。 次の表を使用して、CPU または GPU によってリソースにアクセスする方法を最もよく説明する使用量を選択します。 もちろん、パフォーマンスのトレードオフがあります。
Resource Usage Default 動的 変更不可 ステージング
GPU-Read はい yes¹ はい はい1、2
GPU-Write yes¹ はい1、2
CPU-Read はい1、2
CPU-Write はい はい1、2
 

リソース バインド オプション

パフォーマンスを最大化するために、すべてのリソース使用オプションをパイプラインへの入力リソースまたは出力リソースとして使用できるわけではありません。 次の表に、これらの制限事項を示します。
リソースは としてバインドできます Default 動的 変更不可 ステージング
ステージへの入力 はい 2 yes⁴ はい
ステージからの出力 はい 2
 
  • 3 - 異なるビューを使用して入力と出力としてバインドされている場合、各ビューで異なる サブリソースを使用する必要があります。
  • 4 - リソースは、1 つの サブリソースでのみ作成できます。 リソースをテクスチャ配列にすることはできません。 リソースをミップマップ チェーンにすることはできません。

要件

要件
Header d3d10.h

こちらもご覧ください

リソース列挙