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