ホーム › Graphics.Direct3D10 › D3D10_USAGE
D3D10_USAGE
列挙型メンバー 4
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| D3D10_USAGE_DEFAULT | 0 | 0x0 | GPU による読み取りと書き込みの両方のアクセスを必要とするリソースです。最も一般的に選択される使用方法です。 |
| D3D10_USAGE_IMMUTABLE | 1 | 0x1 | GPU から読み取ることのみが可能なリソースです。GPU から書き込むことはできず、CPU からはまったくアクセスできません。この種類のリソースは作成後に変更できないため、作成時に初期化しなければなりません。 |
| D3D10_USAGE_DYNAMIC | 2 | 0x2 | GPU と CPU の両方(CPU は書き込みのみ)からアクセスできるリソースです。動的リソースは、CPU によって 1 フレームあたり少なくとも 1 回更新されるリソースに適した選択肢です。CPU 側から動的リソースに書き込むには、Map メソッドを使用します。GPU 側から動的リソースに書き込むには、CopyResource または CopySubresourceRegion を使用できます。 |
| D3D10_USAGE_STAGING | 3 | 0x3 | GPU から CPU へのデータ転送(コピー)をサポートするリソースです。 |
公式ドキュメント
レンダリング時に想定されるリソースの使用方法を識別します。この使用方法は、リソースが CPU および GPU のいずれか、または両方からアクセス可能かどうかを直接反映します。
解説(Remarks)
アプリケーションは、リソースをどのように使用する予定か(その使用方法)をリソースの記述で指定します。リソースを作成するための構造体には、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 で行います。
| リソースの使用方法 | Default | Dynamic | Immutable | Staging |
|---|---|---|---|---|
| GPU からの読み取り | 可 | 可¹ | 可 | 可1, 2 |
| GPU からの書き込み | 可¹ | 可1, 2 | ||
| CPU からの読み取り | 可1, 2 | |||
| CPU からの書き込み | 可 | 可1, 2 |
- 1 - これは CopySubresourceRegion、CopyResource、UpdateSubresource に限られます。
- 2 - 深度ステンシルバッファーやマルチサンプリングされたレンダーターゲットにすることはできません。
リソースのバインドオプション
パフォーマンスを最大化するため、すべてのリソース使用方法をパイプラインの入力リソースまたは出力リソースとして使用できるわけではありません。次の表は、これらの制限を示しています。| リソースをバインドできる対象 | Default | Dynamic | Immutable | Staging |
|---|---|---|---|---|
| ステージへの入力 | 可³ | 可⁴ | 可 | |
| ステージからの出力 | 可³ |
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum D3D10_USAGE : int {
D3D10_USAGE_DEFAULT = 0,
D3D10_USAGE_IMMUTABLE = 1,
D3D10_USAGE_DYNAMIC = 2,
D3D10_USAGE_STAGING = 3
} D3D10_USAGE;public enum D3D10_USAGE : int
{
D3D10_USAGE_DEFAULT = 0,
D3D10_USAGE_IMMUTABLE = 1,
D3D10_USAGE_DYNAMIC = 2,
D3D10_USAGE_STAGING = 3,
}Public Enum D3D10_USAGE As Integer
D3D10_USAGE_DEFAULT = 0
D3D10_USAGE_IMMUTABLE = 1
D3D10_USAGE_DYNAMIC = 2
D3D10_USAGE_STAGING = 3
End Enumimport enum
class D3D10_USAGE(enum.IntEnum):
D3D10_USAGE_DEFAULT = 0
D3D10_USAGE_IMMUTABLE = 1
D3D10_USAGE_DYNAMIC = 2
D3D10_USAGE_STAGING = 3// D3D10_USAGE
pub const D3D10_USAGE_DEFAULT: i32 = 0;
pub const D3D10_USAGE_IMMUTABLE: i32 = 1;
pub const D3D10_USAGE_DYNAMIC: i32 = 2;
pub const D3D10_USAGE_STAGING: i32 = 3;// D3D10_USAGE
const (
D3D10_USAGE_DEFAULT int32 = 0
D3D10_USAGE_IMMUTABLE int32 = 1
D3D10_USAGE_DYNAMIC int32 = 2
D3D10_USAGE_STAGING int32 = 3
)const
D3D10_USAGE_DEFAULT = 0;
D3D10_USAGE_IMMUTABLE = 1;
D3D10_USAGE_DYNAMIC = 2;
D3D10_USAGE_STAGING = 3;// D3D10_USAGE
pub const D3D10_USAGE_DEFAULT: i32 = 0;
pub const D3D10_USAGE_IMMUTABLE: i32 = 1;
pub const D3D10_USAGE_DYNAMIC: i32 = 2;
pub const D3D10_USAGE_STAGING: i32 = 3;const
D3D10_USAGE_DEFAULT* = 0
D3D10_USAGE_IMMUTABLE* = 1
D3D10_USAGE_DYNAMIC* = 2
D3D10_USAGE_STAGING* = 3enum D3D10_USAGE : int {
D3D10_USAGE_DEFAULT = 0,
D3D10_USAGE_IMMUTABLE = 1,
D3D10_USAGE_DYNAMIC = 2,
D3D10_USAGE_STAGING = 3,
}#define global D3D10_USAGE_DEFAULT 0x0
#define global D3D10_USAGE_IMMUTABLE 0x1
#define global D3D10_USAGE_DYNAMIC 0x2
#define global D3D10_USAGE_STAGING 0x3