ストリーミング リソースの作成
ストリーミング リソースは、リソースを作成するときにフラグを指定することによって作成され、リソースがストリーミング リソースであることを示します。
リソースをストリーミング リソースとして作成できる場合の制限については、「ストリーミング リソース作成のパラメーター」で説明されています。
2D テクスチャの配列の割り当てなど、非ストリーミング リソースのストレージは、リソースの作成時にグラフィック システムに割り当てられます。
ストリーミング リソースが作成される場合、グラフィック システムはリソース コンテンツにはストレージを割り当てません。 代わりに、アプリケーションがストリーミング リソースを作成する場合には、グラフィック システムはタイル サーフェスの領域のみのアドレス空間予約を行い、タイルのマッピングをアプリケーションが制御できるようにします。 タイルの「マッピング」とは、リソース内の論理タイルがポイントするメモリ内の物理的な位置 (またはマップされていないタイルの場合はNULL) です。
この概念を、Direct3D リソースを CPU アクセス用にマッピングするという概念と混同しないでください。これは同じ名前を使用していますが、全く別のものです。 必要に応じて、個々のタイルのマッピングを個別に定義して変更することができます。サーフェスのすべてのタイルを一度にマップする必要がないため、使用可能なメモリ量を有効に活用できます。
このセクションの内容
トピック | 説明 |
---|---|
リソースがストリーミング リソースとして作成された場合、そのリソースを構成するタイルはタイル プール内の位置をポイントすることによって生成されます。 タイル プールは、メモリのプールです (背後にある 1 つ以上の割り当てによってサポートされていますが、アプリケーションには見えません)。 |
|
ストリーミング リソースとして作成できる Direct3D リソースの種類には、いくつかの制約があります。 |
|
このセクションのパラメーターを使用して、バッファーを作成するときにタイル プールを定義します。 |
|
タイル プールは、従来のリソースと同様に、他のプロセスと共有することができます。 タイル プールを参照するストリーミング リソースは、デバイスやプロセス間で共有できません。 |
|
このセクションでは、ストリーミング リソースで実行できる操作を示します。 |
|
タイル プールでの操作には、タイル プールのサイズ変更、リソースの提供 (タイル プール全体のためにメモリをシステムに一時的に生成)、リソースの解放などがあります。 |
|
ストリーミング リソースを作成するときは、次元、フォーマット要素のサイズ、およびミップマップや配列スライスの数 (該当する場合) によって、サーフェス領域全体をサポートするために必要なタイルの数が決まります。 |
関連トピック