次の方法で共有


ミップマップのパッキング

タイル リソースのサポート の層 によっては、特定のディメンションを持つミップマップは標準のタイル図形に従わないので、アプリケーションに対して不透明な方法でまとめてパックされると見なされます。 サポートの階層が高い方が、標準タイルの形状に収まるサーフェスの大きさの種類を広く保証します (したがって、アプリケーションが個別にマッピングできます)。

実装によって異なる可能性がある点は、タイル 化されたリソースのディメンション、形式、ミップマップの数、配列スライスの数を指定すると、一部の数の N 個のタイルに数 M の mips (配列スライスあたり) をパックできることです。 ID3D11Device2::GetResourceTiling API は、ドライバーが M と N の内容をアプリケーションに報告できるようにするために存在します (この API が標準であり、ハードウェア ベンダーによって異なるとは異なるサーフェスに関するその他の詳細)。 マッピングされたミップのタイル セットは引き続き 64 KB であるため、タイル プール内の異なる位置に別個にマッピングできます。 ただし、タイルのピクセルの形状とミップマップがタイル セットにどのように収まるかは、ハードウェア ベンダーによって異なるため、複雑すぎて説明することができません。 したがって、アプリケーションはパッキング対象として指定されたすべてのタイルを一度にマッピングするか、何もマッピングしないかのどちらかの処理を行う必要があります。 それ以外の場合、タイル リソースにアクセスするための動作は未定義です。

配列になったサーフェスの場合、パッキングされたミップのセットと、それらのミップを格納するマッピングされたタイルの数 (前述の M と N) は、配列スライスごとに別個に適用されます。

タイルをコピーするための専用 API (ID3D11DeviceContext2::CopyTilesID3D11DeviceContext2::UpdateTiles) は、パックされた mips にアクセスできません。 パックされたミップとの間でデータをコピーするアプリケーションは、タイル化されていないリソース固有の API をすべて使用して、サーフェスへのコピーとレンダリングを行うことができます。

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