ストリーミング リソースの作成Creating streaming resources

ストリーミング リソースは、リソースを作成するときにフラグを指定することによって作成され、リソースがストリーミング リソースであることを示します。Streaming resources are created by specifying a flag when you create a resource, indicating that the resource is a streaming resource.

リソースをストリーミング リソースとして作成できる場合の制限については、「ストリーミング リソース作成のパラメーター」で説明されています。Restrictions on when you can create a resource as a streaming resource are described in Streaming resource creation parameters.

2D テクスチャの配列の割り当てなど、非ストリーミング リソースのストレージは、リソースの作成時にグラフィック システムに割り当てられます。A non-streaming resource's storage is allocated in the graphics system when the resource is created, such as allocation for an array of 2D textures.

ストリーミング リソースが作成される場合、グラフィック システムはリソース コンテンツにはストレージを割り当てません。When a streaming resource is created, the graphics system doesn't allocate the storage for the resource contents. 代わりに、アプリケーションがストリーミング リソースを作成する場合には、グラフィック システムはタイル サーフェスの領域のみのアドレス空間予約を行い、タイルのマッピングをアプリケーションが制御できるようにします。Instead, when an application creates a streaming resource, the graphics system makes an address space reservation for the tiled surface's area only, and then allows the mapping of the tiles to be controlled by the application. タイルの「マッピング」とは、リソース内の論理タイルがポイントするメモリ内の物理的な位置 (またはマップされていないタイルの場合はNULL) です。The "mapping" of a tile is simply the physical location in memory that a logical tile in a resource points to (or NULL for an unmapped tile).

この概念を、Direct3D リソースを CPU アクセス用にマッピングするという概念と混同しないでください。これは同じ名前を使用していますが、全く別のものです。Don't confuse this concept with the notion of mapping a Direct3D resource for CPU access, which despite using the same name is completely independent. 必要に応じて、個々のタイルのマッピングを個別に定義して変更することができます。サーフェスのすべてのタイルを一度にマップする必要がないため、使用可能なメモリ量を有効に活用できます。You will be able to define and change the mapping of each tile individually as needed, knowing that all tiles for a surface don't need to be mapped at a time, thereby making effective use of the amount of memory available.

このセクションの内容In this section

トピックTopic 説明Description

マッピングは、タイルのプールにはMappings are into a tile pool

リソースがストリーミング リソースとして作成された場合、そのリソースを構成するタイルはタイル プール内の位置をポイントすることによって生成されます。When a resource is created as a streaming resource, the tiles that make up the resource come from pointing at locations in a tile pool. タイル プールは、メモリのプールです (背後にある 1 つ以上の割り当てによってサポートされていますが、アプリケーションには見えません)。A tile pool is a pool of memory (backed by one or more allocations behind the scenes - unseen by the application).

リソースの作成パラメーターのストリーミングStreaming resource creation parameters

ストリーミング リソースとして作成できる Direct3D リソースの種類には、いくつかの制約があります。There are some constraints on the type of Direct3D resources that you can create as a streaming resource.

タイルのプールの作成パラメーターTile pool creation parameters

このセクションのパラメーターを使用して、バッファーを作成するときにタイル プールを定義します。Use the parameters in this section to define tile pools when creating a buffer.

ストリーミング プロセス間のリソースとデバイスの共有Streaming resource cross-process and device sharing

タイル プールは、従来のリソースと同様に、他のプロセスと共有することができます。Tile pools can be shared with other processes just like traditional resources. タイル プールを参照するストリーミング リソースは、デバイスやプロセス間で共有できません。Streaming resources that reference tile pools can't be shared across devices and processes.

リソースのストリーミングで使用できる操作Operations available on streaming resources

このセクションでは、ストリーミング リソースで実行できる操作を示します。This section lists operations that you can perform on streaming resources.

タイルのプールで使用できる操作Operations available on tile pools

タイル プールでの操作には、タイル プールのサイズ変更、リソースの提供 (タイル プール全体のためにメモリをシステムに一時的に生成)、リソースの解放などがあります。Operations on tile pools include resizing a tile pool, offering resources (yielding memory temporarily to the system for the entire tile pool), and reclaiming resources.

ストリーミングのリソースの領域は並べて表示する方法How a streaming resource's area is tiled

ストリーミング リソースを作成するときは、次元、フォーマット要素のサイズ、およびミップマップや配列スライスの数 (該当する場合) によって、サーフェス領域全体をサポートするために必要なタイルの数が決まります。When you create a streaming resource, the dimensions, format element size, and number of mipmaps and/or array slices (if applicable) determine the number of tiles that are required to back the entire surface area.

 

関連トピックRelated topics

ストリーミング リソースStreaming resources