ストリーミング リソースの作成

ストリーミング リソースは、リソースを作成するときにフラグを指定することによって作成され、リソースがストリーミング リソースであることを示します。

リソースをストリーミング リソースとして作成できる場合の制限については、「ストリーミング リソース作成のパラメーター」で説明されています。

2D テクスチャの配列の割り当てなど、非ストリーミング リソースのストレージは、リソースの作成時にグラフィック システムに割り当てられます。

ストリーミング リソースが作成される場合、グラフィック システムはリソース コンテンツにはストレージを割り当てません。 代わりに、アプリケーションがストリーミング リソースを作成する場合には、グラフィック システムはタイル サーフェスの領域のみのアドレス空間予約を行い、タイルのマッピングをアプリケーションが制御できるようにします。 タイルの「マッピング」とは、リソース内の論理タイルがポイントするメモリ内の物理的な位置 (またはマップされていないタイルの場合はNULL) です。

この概念を、Direct3D リソースを CPU アクセス用にマッピングするという概念と混同しないでください。これは同じ名前を使用していますが、全く別のものです。 必要に応じて、個々のタイルのマッピングを個別に定義して変更することができます。サーフェスのすべてのタイルを一度にマップする必要がないため、使用可能なメモリ量を有効に活用できます。

このセクションの内容

トピック 説明

タイル プールにマッピングされます

リソースがストリーミング リソースとして作成された場合、そのリソースを構成するタイルはタイル プール内の位置をポイントすることによって生成されます。 タイル プールは、メモリのプールです (背後にある 1 つ以上の割り当てによってサポートされていますが、アプリケーションには見えません)。

ストリーミング リソースの作成パラメーター

ストリーミング リソースとして作成できる Direct3D リソースの種類には、いくつかの制約があります。

タイル プールの作成パラメーター

このセクションのパラメーターを使用して、バッファーを作成するときにタイル プールを定義します。

ストリーミング リソースのプロセスとデバイス間での共有

タイル プールは、従来のリソースと同様に、他のプロセスと共有することができます。 タイル プールを参照するストリーミング リソースは、デバイスやプロセス間で共有できません。

ストリーミング リソースで利用可能な操作

このセクションでは、ストリーミング リソースで実行できる操作を示します。

タイル プールで利用可能な操作

タイル プールでの操作には、タイル プールのサイズ変更、リソースの提供 (タイル プール全体のためにメモリをシステムに一時的に生成)、リソースの解放などがあります。

ストリーミング リソースの領域をタイル表示する方法

ストリーミング リソースを作成するときは、次元、フォーマット要素のサイズ、およびミップマップや配列スライスの数 (該当する場合) によって、サーフェス領域全体をサポートするために必要なタイルの数が決まります。

 

ストリーミング リソース