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_DESC、D3D10_TEXTURE2D_DESC、D3D10_TEXTURE3D_DESC、D3D10_BUFFER_DESC、D3DX10_IMAGE_LOAD_INFOなど、いくつかの構造があります。
Direct3D 9 と Direct3D 10 の違い: Direct3D 9 では、リソース作成時にリソースを作成するメモリの種類を指定します (D3DPOOLを使用)。 機能とパフォーマンスの最適な組み合わせを提供するメモリ プールを決定するのは、アプリケーションの仕事でした。 Direct3D 10 では、リソースを作成するメモリの種類 (プール) がアプリケーションで指定されなくなりました。 代わりに、リソースの目的の使用方法を指定し、(ドライバーとメモリ マネージャーと連携して) ランタイムに最適なパフォーマンスを実現するメモリの種類を選択させます。 |
リソースの使用制限
各使用によって、機能とパフォーマンスのトレードオフが決まります。 一般に、リソースへのアクセスは次の API を使用して実行されます。- CPU アクセスは、ID3D10Buffer::Map、ID3D10Texture1D::Map、ID3D10Texture2D::Map、または ID3D10Texture3D::Map で行われます
- GPU アクセスは 、CopySubresourceRegion、 CopyResource、または UpdateSubresource で行われます。
Resource Usage | Default | 動的 | 変更不可 | ステージング |
---|---|---|---|---|
GPU-Read | はい | yes¹ | はい | はい1、2 |
GPU-Write | yes¹ | はい1、2 | ||
CPU-Read | はい1、2 | |||
CPU-Write | はい | はい1、2 |
- 1 - これは CopySubresourceRegion、 CopyResource、 UpdateSubresource に制限されます。
- 2 - 深度ステンシル バッファーまたはマルチサンプリング レンダー ターゲットにすることはできません。
リソース バインド オプション
パフォーマンスを最大化するために、すべてのリソース使用オプションをパイプラインへの入力リソースまたは出力リソースとして使用できるわけではありません。 次の表に、これらの制限事項を示します。リソースは としてバインドできます | Default | 動的 | 変更不可 | ステージング |
---|---|---|---|---|
ステージへの入力 | はい 2 | yes⁴ | はい | |
ステージからの出力 | はい 2 |
- 3 - 異なるビューを使用して入力と出力としてバインドされている場合、各ビューで異なる サブリソースを使用する必要があります。
- 4 - リソースは、1 つの サブリソースでのみ作成できます。 リソースをテクスチャ配列にすることはできません。 リソースをミップマップ チェーンにすることはできません。
要件
要件 | 値 |
---|---|
Header | d3d10.h |