次の方法で共有


タイル化されたリソースの領域をタイル化する方法

タイル リソースを作成する場合、ディメンション、書式要素サイズ、ミップマップや配列スライスの数 (該当する場合) によって、サーフェス領域全体をバックアップするために必要なタイルの数が決まります。 タイル内のピクセル/バイト レイアウトは、実装によって決定されます。 1 つのタイルに収まるピクセル数は、形式の要素のサイズに応じて固定され、標準スウィズルを使用するかどうかに関係なく同じです。

指定されたサーフェスのサイズと形式要素の幅によって使用されるタイルの数は、次のセクションの表に基づいて定義されており、予測可能です。 ミップマップを含むリソース、またはサーフェスディメンションがタイルに塗りつぶされない場合は、一部の制約が存在し、 Mipmap パッキングで説明されています。

異なるタイル リソースは、アプリケーションが 1 つの形式でメモリに書き込み、別の形式で読み取った結果に依存しない限り、異なる形式の同一のメモリを指すことができます。 ただし、制約のある状況では、アプリケーションは、1 つの形式でメモリに書き込み、形式が同じ形式ファミリ (つまり、同じ型なしの親形式) にある場合に別の形式で読み取る結果に依存できます。 たとえば、DXGI_FORMAT_R8G8B8A8_UNORM と DXGI_FORMAT_R8G8B8A8_UINT は互換性がありますが、DXGI_FORMAT_R16G16_UNORM とは互換性がありません。 タイル パターンは非常に控えめに未定義であるため、2 つのテクスチャ間でデータを再解釈するには、アプリケーションですべてのリソース プロパティを慎重に照合する必要があります。 しかし、明らかに、形式はより緩いです。 上記に示すように、形式には互換性がある必要があります。 ある形式のデータが別の形式のエイリアスとして定義されている場合は例外です。タイルのすべてのビットに 0 が含まれている場合、そのタイルは、(メモリ レイアウトに関係なく) メモリの内容が 0 であることを解釈する任意の形式で使用できます。 そのため、DXGI_FORMAT_R8_UNORM 形式でタイルを 0x00 にクリアし、DXGI_FORMAT_R32G32_FLOAT などの形式で使用でき、その内容は引き続き (0.0f,0.0f) と表示されます。

タイル内のデータのレイアウトは、リソースのプロパティ、サブリソースが存在するサブリソース、サブリソース内のタイルの場所によって異なります。 上記の主な例外は、他のリソース プロパティと互換性のある形式が等しい場合と、すべてのテクセルが同じパターンである場合です。

このセクションの内容

トピック 説明
Texture2D と Texture2DArray のサブリソースのタイル表示
次の表に、Texture2D および Texture2DArray サブリソースがどのようにタイル表示されるかを示します。
Texture3D サブリソースのタイル表示
次の表に、Texture3D サブリソースがどのようにタイル表示されるかを示します。
バッファーのタイル表示
バッファー リソースは 64 KB のタイルに分割されます。サイズが 64 KB の倍数でない場合は、最後のタイルに空きが生じます。
ミップマップのパッキング
タイル リソースのサポート の層 によっては、特定のディメンションを持つミップマップは標準のタイル図形に従わないので、アプリケーションに対して不透明な方法でまとめてパックされると見なされます。

タイルリソースの作成