(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-19
(45)【発行日】2024-04-30
(54)【発明の名称】レジデンシマップ記述子
(51)【国際特許分類】
G06T 15/04 20110101AFI20240422BHJP
【FI】
G06T15/04
(21)【出願番号】P 2021537920
(86)(22)【出願日】2020-01-17
(86)【国際出願番号】 US2020014060
(87)【国際公開番号】W WO2020159722
(87)【国際公開日】2020-08-06
【審査請求日】2023-01-13
(32)【優先日】2019-01-31
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-12-20
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】マキシム ヴィー. カザコフ
(72)【発明者】
【氏名】マーク フォウラー
【審査官】村松 貴士
(56)【参考文献】
【文献】米国特許出願公開第2018/0232940(US,A1)
【文献】米国特許出願公開第2009/0102851(US,A1)
【文献】米国特許出願公開第2011/0157205(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/04
(57)【特許請求の範囲】
【請求項1】
異なる詳細レベル(LOD)でテクスチャを表す複数のレベルを含む部分常駐テクスチャ(PRT)リソースへのアクセス要求の正規化された座標を、前記複数のレベルのうち第一レベルの寸法を表す情報を含むテクスチャ記述子と、前記PRTリソースに常駐するテクセルを示すレジデンシマップ
の寸法とに基づいて、前記PRTリソースのテクセル座標に変換すること
であって、前記テクスチャ記述子は、前記複数のレベルのうち前記第一レベルと第二レベルとの間のオフセットを表す情報をさらに含む、ことと、
前記テクセル座標及び前記レジデンシマップに基づいて、前記PRTリソースにアクセスすることと、を含む、
方法。
【請求項2】
前記第一レベルは、前記複数のレベルのうち、最高LODを有するレベルに対応する、
請求項1の方法。
【請求項3】
前記オフセットは、前記第二レベルと前記第一レベルとの間のレベル数を示す、
請求項
1の方法。
【請求項4】
前記オフセットに基づいて、前記正規化された座標を前記レジデンシマップ内のテクセル座標に変換することをさらに含み、前記正規化された座標を前記レジデンシマップ内のテクセル座標に変換することは、前記第二レベルと前記第一レベルとの間のレベル数に基づく前記第一レベルの寸法に対する前記レジデンシマップの寸法の比率に基づいて、前記レジデンシマップの寸法を決定することを含む、
請求項3の方法。
【請求項5】
前記正規化された座標を前記テクセル座標に変換することは、前記レジデンシマップの寸法に基づいて、前記正規化された座標を前記テクセル座標に変換することを含む、
請求項4の方法。
【請求項6】
前記複数のレベルのうち前記第一レベルの寸法に基づいて、前記正規化された座標を、前記PRTリソースの前記複数のレベルのうち少なくとも1つのレベルのテクセル座標に変換することであって、前記レジデンシマップ内の前記テクセル座標は、前記PRTリソースの前記複数のレベルのうち前記少なくとも1つのレベルのテクセル座標と同じ位置を示す、ことをさらに含む、
請求項4の方法。
【請求項7】
前記テクスチャ記述子は、前記第一レベルと、複数のレジデンシマップに関連する複数の第二レベルと、の間の複数のオフセットを表す情報を含
み、
前記複数のオフセットは、前記オフセットを含む、
請求項1の方法。
【請求項8】
前記レジデンシマップ内のテクセル座標に基づいて、前記レジデンシマップ内のテクセルを識別することと、
前記レジデンシマップ内の前記テクセルに対応する前記PRTリソースのタイルに常駐する最高LODを示す情報にアクセスすることと、をさらに含む、
請求項1の方法。
【請求項9】
前記要求に応じて、前記タイルに常駐する前記最高LOD以下であるLODを有するテクスチャデータを受信することをさらに含む、
請求項8の方法。
【請求項10】
装置であって、
メモリに接続されたプロセッサを備え、
前記メモリは、
異なる詳細レベル(LOD)でテクスチャを表す複数のレベルを含む部分常駐テクスチャ(PRT)リソースにテクセルが常駐しているかどうかを示すレジデンシマップと、
前記複数のレベルのうち第一レベルの寸法及び前記レジデンシマップを表す情報を含むテクスチャ記述子
であって、前記複数のレベルのうち前記第一レベルと第二レベルとの間のオフセットを表す情報をさらに含むテクスチャ記述子と、を記憶し、
前記プロセッサは、
前記PRTリソースの前記複数のレベルのうち少なくとも1つのレベルにアクセスする要求を受信することであって、前記要求は、前記テクスチャ内の位置を示す正規化された座標を含む、ことと、
前記テクスチャ記述子に基づいて、前記要求を、前記PRTリソースの常駐テクセルのテクセル座標に変換することと、
を行うように構成されている、
装置。
【請求項11】
前記プロセッサに接続された前記メモリをさらに備える、
請求項10の装置。
【請求項12】
前記第一レベルは、前記複数のレベルのうち、最高LODを有するレベルに対応する、
請求項10の装置。
【請求項13】
前記テクスチャ記述子は、前記第一レベルと、複数のレジデンシマップに関連する複数の第二レベルと、の間の複数のオフセットを表す情報を含
み、
前記複数のオフセットは、前記オフセットを含む、
請求項
10の装置。
【請求項14】
前記オフセットは、前記第二レベルと前記第一レベルとの間のレベル数を示す、
請求項
10の装置。
【請求項15】
前記プロセッサは、前記第二レベルと前記第一レベルとの間のレベル数に基づく前記第一レベルの寸法に対する前記レジデンシマップの寸法の比率に基づいて、前記レジデンシマップの寸法を決定するように構成されている、
請求項14の装置。
【請求項16】
前記プロセッサは、前記オフセット及び前記レジデンシマップの寸法に基づいて、前記正規化された座標を前記テクセル座標に変換するように構成されている、
請求項15の装置。
【請求項17】
前記プロセッサは、前記複数のレベルのうち前記第一レベルの寸法に基づいて、前記正規化された座標を、前記PRTリソースの前記複数のレベルのうち少なくとも1つのレベルのテクセル座標に変換することであって、前記レジデンシマップの前記テクセル座標は、前記PRTリソースの前記複数のレベルのうち前記少なくとも1つのレベルのテクセル座標を同じ位置を示す、ことを行うように構成されている、
請求項15の装置。
【請求項18】
前記プロセッサは、
前記レジデンシマップ内のテクセル座標に基づいて、前記レジデンシマップ内のテクセルを識別することと、
前記レジデンシマップ内の前記テクセルに対応する前記PRTリソースのタイルに常駐する最高LODを示す情報にアクセスすることと、
を行うように構成されている、
請求項10の装置。
【請求項19】
前記プロセッサは、前記要求に応じて、前記タイルに常駐する最高LOD以下のLODを有するテクスチャデータを受信するように構成されている、
請求項18の装置。
【請求項20】
プロセッサにおいて、レジデンシマップによって示される部分常駐テクスチャ(PRT)リソースの複数のレベルのうち第一レベルと、前記複数のレベルのうち第二レベルと、の間のオフセットを識別することであって、前記複数のレベルは、異なる詳細レベル(LOD)でテクスチャを表し、前記第一レベルは、前記PRTリソースの前記複数のレベルのうち何れのレベルが、前記プロセッサに関連するメモリに常駐しているかを示す、ことと、
前記複数のレベルのうち前記第一レベルの寸法及び前記オフセットを表す情報を含むテクスチャ記述子を記憶することと、を含む、
方法。
【請求項21】
前記テクスチャ記述子は、前記第一レベルと、複数のレジデンシマップに関連する複数の第二レベルと、の間の複数のオフセットを表す情報を含み、
前記オフセットは、前記第二レベルと前記第一レベルとの間のレベル数を示し、
前記第一レベルは、前記複数のレベルのうち、最高LODを有するレベルに対応する、
請求項20の方法。
【発明の詳細な説明】
【背景技術】
【0001】
グラフィックスプロセッシングユニット(GPU)は、プログラマブルシェーダ及び固定機能ハードウェアブロックのシーケンスから形成されたグラフィックスパイプラインを使用して、3次元(3-D)グラフィックスを処理する。例えば、フレームに表示可能なオブジェクトの3-Dモデルは、ユーザに表示されるピクセルの値を生成するグラフィックスパイプライン内で処理される三角形、他のポリゴン又はパッチのセットで表現することができる。三角形、他のポリゴン又はパッチは、まとめてプリミティブと呼ばれる。このプロセスは、テクスチャをプリミティブにマッピングして、プリミティブの解像度よりも高い解像度を有する視覚的なディテール(details)を組み込むことを含む。GPUは、グラフィックスパイプラインで処理されているプリミティブへのマッピングにテクスチャ値を使用することができるように、テクスチャ値を記憶するために使用される専用メモリを含む。テクスチャを、ディスクに記憶することもできるし、グラフィックスパイプラインが必要とする場合に手続的に生成することができる。専用GPUメモリに記憶されるテクスチャデータは、ディスクからテクスチャをロードするか、データを手続的に生成することによって取り込まれる。通常、専用GPUメモリは、比較的小さなメモリであるため、専用GPUメモリが記憶することができるテクスチャデータ量が制限される。さらに、テクスチャデータを取り込むために必要なオーバーヘッドは、特に、テクスチャデータの小さなサブセットのみを使用して最終的な画面イメージをレンダリングする場合に、かなりの量になる可能性がある。
【0002】
本開示は、添付図面を参照することによってより良好に理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面で同じ符号を使用することは、類似又は同一の要素を示す。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、ディスプレイへの出力を意図した視覚的な画像を生成するためのグラフィックス処理ユニット(GPU)を含む処理システムのブロック図である。
【
図2】いくつかの実施形態による、高次ジオメトリプリミティブを処理して3次元(3D)のシーンのラスタライズ画像を所定の解像度で生成することができるグラフィックスパイプラインを示す図である。
【
図3】いくつかの実施形態による、異なるレベルの部分常駐テクスチャ(PRT)リソースと正規化された座標空間との間の変換のブロック図である。
【
図4】いくつかの実施形態による、テクセル空間内のレジデンシマップと正規化された座標空間との間の変換のブロック図である。
【
図5】いくつかの実施形態による、テクスチャ記述子のブロック図である。
【
図6】いくつかの実施形態による、PRTリソースのレベルとレジデンシマップのレベルとの間の関係のブロック図である。
【
図7】いくつかの実施形態による、テクスチャ記述子を生成して記憶する方法のフロー図である。
【
図8】いくつかの実施形態による、テクスチャ記述子を生成して記憶する方法のフロー図である。
【発明を実施するための形態】
【0004】
場合によっては、テクスチャ情報は、テクスチャの階層ミップマップ表現を使用して、部分常駐テクスチャ(PRT)リソース内のGPUに記憶される。ミップマップ内の各レベルは、詳細レベル(LOD)でのテクスチャを表す。標準的な慣例では、ミップマップのレベルが高いほどLODが減少するが、降順レベル番号付け(reverse level numbering)も使用することができる。PRTリソースの寸法(テクセル空間内)は、レベルが連続して高くなる毎に2分の1減少する。シェーダ又はアプリケーションは、正規化されたテクスチャ座標を使用して、PRTリソースのミップマップのレベルにアクセスする。正規化された(u,v)テクスチャ座標は、実際の寸法(例えば、0..dim-1の範囲)から0.0~1.0の正規化範囲に正規化される。
【0005】
専用GPUメモリ内の空間は、ミップマップ階層にテクセルのサブセットを投入することによって保存されるため、テクスチャ情報は、PRTリソースの全てのミップマップレベルの全てのテクセルに必ずしも存在していない。テクスチャ情報をPRTリソースに記憶することの1つの不利な点は、専用GPUメモリに常駐していないテクセルをアプリケーションがサンプリングすることに応じて、テクスチャハードウェアが黒色を返すことである。この不利な点は、PRTリソースに投入される最も細かいLOD(又は、最低ミップマップレベル)を示すレジデンシマップを生成することによって克服される。例えば、レジデンシマップ内のテクセルは、PRTリソース内の対応するテクセルがミップマップのレベル3(及び、全ての上位レベル/下位LOD)に常駐していることを示すことができる。レジデンシマップは、レジデンシマップの寸法に従って、正規化されたテクスチャ座標空間を均等に分割する。例えば、2×2のレジデンシマップは、正規化された(u,v)テクスチャ座標の空間を、(u,v)範囲をそれぞれ覆う4つのテクセル(0.0..0.5,0.0..0.5)、(0.5..1.0,0.0..0.5)、(0.0..0.5,0.5..1.0)、及び、(0.5..1.0,0.5..1.0)に均等に分割する。したがって、レジデンシマップの単一テクセルは、ミップマップのサンプリングされたレベルでのPRTリソースの寸法に応じて、PRTリソースの異なるミップマップレベルで異なる数のテクセルを含むタイルを切り分ける。
【0006】
シェーダ(又は、対応するアプリケーション)は、正規化された(u,v)テクスチャ座標の空間のサンプリング位置を示す正規化された(u,v)座標を含むサンプリング操作を使用して、PRTリソースをサンプリングする。正規化された座標は、1つ以上のミップマップレベルでPRTリソースの寸法を使用してテクセル座標に変換される。例えば、要求されたミップマップレベルが8×8テクセルの寸法を有する場合、正規化されたu座標を(8-1)=7で乗算することによってテクセル座標に変換し、正規化されたv座標を(8-1)=7で乗算することによってテクセル座標に変換する。次に、テクセル座標をテクセルデータ内のアドレスに変換し、これらのアドレスを使用してテクセルデータをフェッチする。ただし、上述したように、全てのテクセルがPRTリソースの全てのレベルに必ずしも常駐しているわけではない。非常駐テクセルにアクセスする要求に応じてテクスチャハードウェアが黒色テクセルを返さないようにするために、レジデンシマップをサンプリングし、PRTリソースの投入された最も細かいミップマップレベルを識別する。このLODにPRTリソースの次のサンプリングをクランプするため、アプリケーションがミップマップの下位レベル/上位LODで非常駐テクセルにアクセスしようとする場合、ディテールが低いが常駐しているテクセル値を黒色の代わりに返す。場合によっては、座標変換は、正規化されたテクスチャ座標空間内に追加の位置を生成することに続き、これらの追加の位置をテクセル空間内のテクセル位置に変換するステップを含む。異方性テクスチャフィルタリング等の特定の場合には、追加の位置、及び、対応するテクセル位置を生成するには、テクセル空間内のPRTリソースの寸法に関する知識が必要とされる。
【0007】
PRTリソース及びレジデンシマップについて、正規化された(u,v)座標のテクセル座標への変換を一貫して実行する必要がある。座標変換が正しくないことによってレジデンシマップ内のテクセルの識別が正しくないことにより、サンプル位置に存在する最低ミップマップレベル/最高LODの計算が誤ることによるPRTミスが発生する可能性がある。次に、シェーダは、下位ミップマップレベル/上位LODで非常駐テクセルにアクセスしようとする場合があり、その結果、サンプリング操作によって黒色が返されることによって、不要な視覚的アーティファクトが発生する可能性がある。レジデンシマップ内の正規化された(u,v)座標とテクセル座標との間の座標変換を、レジデンシマップの寸法に基づいて実行する。PRTリソースについて、正規化された座標とテクセル座標との間の座標変換を、PRTリソースのアクセスされたミップマップレベルの寸法に基づいて実行する。したがって、テクスチャハードウェアは、レジデンシマップとPRTリソースとの両方の寸法を認識し、レジデンシマップ内でサンプリングされたテクセルを、PRTリソースのサンプリング操作中にアクセスされるテクセルに正しくマッピングすることを保証する必要がある。その結果、PRTリソースの寸法及びレジデンシマップの寸法をテクスチャハードウェアに伝達することで、レジデンシマップをサンプリングするプロセスが、元のPRTリソースをサンプリングするプロセスを再現することを確実にする必要がある。
【0008】
テクスチャ記述子を使用して、情報を限られたビットセットに符号化することにより、寸法及び他の属性をテクスチャハードウェアに伝達する。テクスチャ記述子で伝達される属性の例は、テクスチャへのポインタ、PRTリソースの寸法、データ符号化ふぉーマット、テクセル当たりのバイト数、圧縮率、圧縮タイプ等を含む。テクスチャ記述子のサイズは、通常、マシンのワードサイズにアライメントされ、例えば、テクスチャ記述子は、マシンタイプに応じて32ビットワード又は64ビットワードにアライメントする256ビットを含むことができる。レジデンシマップの寸法に加えてPRTリソースの明示的な寸法を伝達するようにテクスチャ記述子を変更するには、テクスチャ記述子のサイズを大幅に増加する必要がある。これは、シェーダからテクスチャハードウェア及びテクスチャ記述子を受信する他のハードウェアへの要求パスの変更を含む、テクスチャパイプラインでの大幅な変更を必要とする。例えば、従来のテクスチャ記述子は、16ビットを使用してレジデンシマップの1つの寸法を表し、通常、テクスチャは、3つの寸法を含み、合計48ビットを含む。したがって、レジデンシマップの寸法をテクスチャハードウェアに伝達するためにテクスチャ記述子のサイズを大きくすることは、実用的な方法ではない。
【0009】
図1~
図8は、部分常駐テクスチャ(PRT)リソースの階層表現のレベルの寸法に対応するようにレジデンシマップの寸法を制限することによって、レジデンシマップの寸法を示すためにテクスチャ記述子に組み込まれる情報の量を低減する技術の実施形態を開示する。場合によっては、階層表現はミップマップである。レジデンシマップの寸法は、レジデンシマップのレベルと、PRTリソースの最高レベル等の参照レベルと、の間のミップマップ空間内の距離(又は、オフセット)に基づいて決定される。テクスチャ記述子は、PRTリソースの寸法、参照レベルとレジデンシマップのレベルとの間のオフセット、及び、レジデンシマップを指すアドレスを表す情報を含む。オフセットは、参照レベルとレジデンシマップのレベルとの間のレベル数を示す。参照レベルとレジデンシマップのレベルとの間のレベル数は、参照レベル及びレジデンシマップのレベルの寸法の比率を示す。いくつかの実施形態では、階層表現におけるレベルの(u,v)寸法は、階層表現の隣接するレベルにおける対応する寸法とそれぞれ2倍異なる。したがって、参照レベルとレジデンシマップのレベルとの間の2レベルのオフセットは、参照レベル及びレジデンシマップのレベルの(u,v)寸法が4倍異なることを示す。したがって、参照レベルの寸法と、このオフセットによって示される参照レベルの寸法及びレジデンシマップのレベルの寸法の比率と、を使用して、レジデンシマップの寸法を決定する。
【0010】
PRTリソースをサンプリングする要求を受信することに応じて、レジデンシマップ内のサンプリング位置を、オフセットから決定されたレジデンシマップの寸法を使用して、要求内の正規化された座標をレジデンシマップ内のテクセル座標に変換することによって決定する。したがって、PRTリソースの寸法とレジデンシマップの寸法との両方は、両方の寸法セットの知識を必要とする場合に、PRTリソースの寸法及びレジデンシマップのオフセットを認識することから便利に導出される。サンプリング位置のテクセル座標を使用してテクセルにアクセスし、このテクセルの値は、PRTリソースの1つ以上の対応するテクセルに常駐している最低のミップマップレベル/最高の詳細レベル(LOD)を示す。PRTリソース内のサンプリング位置は、テクスチャ記述子に示されるPRTリソースのミップマップレベルの寸法に基づいて、正規化された座標をPRTリソース内のテクセル座標にマッピングすることによって決定される。PRTリソース内のテクセル座標を使用して、PRTリソースのミップマップレベル内のテクセルにアクセスする。PRTリソースのテクセルへのアクセスを、レジデンシマップの対応するテクセル内の値で示されるLODにクランプする。いくつかの実施形態では、オフセット情報を、テクスチャ記述子の以前に使用されていないビットに組み込むため、テクスチャ記述子のサイズは同じままである。
【0011】
図1は、いくつかの実施形態による、ディスプレイ110への出力を意図した視覚画像を生成するグラフィックスプロセッシングユニット(GPU)105を含む処理システム100のブロック図である。処理システム100は、メモリ115を含む。メモリ115のいくつかの実施形態は、ダイナミックランダムアクセスメモリ(DRAM)として実装される。しかし、メモリ115を、スタティックランダムアクセスメモリ(SRAM)、不揮発性RAM等を含む他のタイプのメモリを使用して実装することもできる。図示した実施形態では、GPU105は、バス120を介してメモリ115と通信する。しかし、GPU105のいくつかの実施形態は、直接的な接続を介して、又は、他のバス、ブリッジ、スイッチ、ルータ等を介して、メモリ115と通信する。GPU105は、メモリ115に記憶された命令を実行することができ、GPU105は、実行された命令の結果等の情報をメモリ115に記憶することができる。例えば、メモリ115は、GPU105によって実行されるプログラムコードからの命令のコピー125を記憶し得る。GPU105のいくつかの実施形態は、命令を同時又は並列に独立して実行することができる複数のプロセッサコア(明確にするために図示省略)を含む。
【0012】
処理システム100は、命令を実行するための中央処理装置(CPU)130を含む。CPU130のいくつかの実施形態は、命令を同時又は並列に独立して実行する複数のプロセッサコア(明確にするために図示省略)を含む。また、CPU130は、バス120に接続されており、したがって、バス120を介してGPU105及びメモリ115と通信することができる。CPU130は、メモリ115に記憶されたプログラムコード135等の命令を実行することができ、CPU130は、実行された命令の結果等の情報をメモリ115に記憶することができる。また、CPU130は、ドローコールをGPU105に発行することによってグラフィック処理を開始することができる。ドローコールは、フレームのオブジェクト(又は、オブジェクトの一部)をレンダリングするようにGPU105に指示するために、CPU130により生成され、GPU105に送信されるコマンドである。ドローコールのいくつかの実施形態は、オブジェクト又はその一部をレンダリングするためにGPU105によって使用されるテクスチャ、状態、シェーダ、レンダリングオブジェクト、バッファ等を定義する情報を含む。GPU105は、オブジェクトをレンダリングして、ディスプレイ110に提供されるピクセルの値を生成し、ディスプレイ110は、ピクセル値を使用して、レンダリングされたオブジェクトを表す画像を表示する。
【0013】
入出力(I/O)エンジン140は、ディスプレイ110、並びに、他の処理システム100の要素(例えば、キーボード、マウス、プリンタ、外部ディスク等)に関連する入出力動作を処理する。I/Oエンジン140は、I/Oエンジン140がGPU105、メモリ115又はCPU130と通信することができるように、バス120に結合されている。図示した実施形態では、I/Oエンジン140は、コンパクトディスク(CD)、デジタルビデオディスク(DVD)等の外部記憶媒体145に記憶された情報を読み出すように構成されている。
【0014】
外部記憶媒体145は、ビデオゲーム等のアプリケーションを実行するために使用されるプログラムコードを表す情報を記憶する。外部記憶媒体145のプログラムコードをメモリ115に書き込み、GPU105又はCPU130によって実行される命令のコピー125を形成することができる。また、外部記憶媒体145は、ディスプレイ110上で提示される画像をレンダリングするために使用されるテクスチャを表す情報を記憶する。外部記憶媒体145に記憶されるテクスチャの一部をメモリ115に書き込み、この情報をテクスチャ情報150としてメモリ115に記憶する。外部記憶媒体145が
図1ではディスクとして描かれているが、外部記憶媒体145のいくつかの実施形態は、例えば、処理システム100への有線又は無線通信リンク等を介して、情報を処理システム100にダウンロード又はストリーミングするサーバ(又は、サーバクラウド)として実装される。
【0015】
GPU105は、ドローコールに応じて異なるプリミティブ又はビン(bins)の同時処理のために構成された複数のステージを含むグラフィックスパイプライン(明確にするために
図1に示されていない)を実装する。GPU105内のグラフィックスパイプラインのステージは、ビデオゲーム等のアプリケーションによって生成される異なるプリミティブを同時に処理することができる。プリミティブの処理は、テクスチャをプリミティブにマッピングして、例えば追加のディテールを提供すること等を含む。GPU105は、メモリ115に記憶されたテクスチャ情報150から、又は、GPU105に関連するローカルメモリ155からテクスチャデータにアクセスする。テクスチャデータは、メモリ115又はローカルメモリ155に配置された部分常駐テクスチャ(PRT)リソースに記憶される。PRTリソースは、テクスチャのミップマップ表現等のように、テクスチャの階層表現の様々なレベル内の様々な詳細レベル(LOD)で表されるテクスチャデータを含む。テクスチャデータは、GPU105がテクスチャデータへのアクセスを要求する前に、PRTリソースのレベル内の全てのテクセルに必ずしも投入されない。例えば、テクスチャデータは、外部記憶媒体145からメモリ115又はローカルメモリ155に書き込まれていない場合がある。別の例として、CPU130は、プログラムコード135の命令に従ってテクスチャデータを手続的に生成しいない場合がある。
【0016】
GPU105(又は、GPU105上で実行されるシェーダ若しくはアプリケーション)は、PRTリソースからのテクスチャデータにアクセスする要求の前に、それと同時に、又は、その一部として、レジデンシマップにアクセスする。レジデンシマップ内の情報を使用して、要求されたテクスチャデータがPRTリソースに常駐しているかどうかを決定する。本明細書で説明するように、PRTリソースは 、異なるLODでテクスチャを表す階層レベルセットとして、例えばミップマップ等として、テクスチャデータを表す。したがって、PRTリソースの異なるレベルは、テクセル空間内で異なる寸法を有する。レジデンシマップのいくつかの実施形態は、PRTリソースのレベルの1つに対応する寸法を有するように制限される。例えば、レジデンシマップは、比較的低いLODでテクスチャを表す2×2のテクセルアレイも含む、PRTリソースのレベルに対応する2×2のテクセルアレイとして表すことができる。レジデンシマップ内のテクセルは、レジデンシマップの対応するテクセルに含まれる常駐テクセルを含むPRTリソースの最低レベル(及び、最高LOD)を示す情報を含む。
【0017】
PRTリソースにアクセスするためのGPU105からの要求は、テクスチャ内の位置を示す正規化された座標を含む(又は、これらの座標に関連付けられる)。正規化された座標は(u,v)座標と呼ばれる。GPU105は、レジデンシマップの寸法を使用して、要求内の正規化された座標をレジデンシマップ内のテクセル座標に変換する。PRTリソースレベルの寸法に基づいて、正規化された座標をPRTリソースレベル内のテクセル座標に変換する。これらの変換は、レジデンシマップ内のテクセル座標によって示されるテクスチャ位置が、PRTリソースの1つ以上のレベル内のテクセル座標によって示される位置と同じになるように実行される。したがって、GPU105は、レジデンシマップとPRTリソースのレベルとの両方の寸法を示す(又は、導出するために使用可能な)情報にアクセスすることができる。
【0018】
テクスチャ記述子は、PRTリソースのレベルのうち1つの寸法と、PRTリソース内の参照レベルとレジデンシマップに関連するレベルとの間のオフセットと、を含む。テクスチャ記述子のいくつかの実施形態は、テクスチャの最高LOD表現を有するレベル等のように、PRTリソースのレベルのうち1つの寸法を含む。次に、PRTリソースの他のレベルの寸法は、これらのレベルの寸法間の既知の関係に基づいて決定される。例えば、PRTリソースをミップマップとして表す場合、PRTリソースの連続するレベルの寸法は2倍に増加、又は、2分の1に減少する。また、テクスチャ記述子は、参照レベルと、レジデンシマップの寸法にマッチングするPRTリソースのレベルと、の間のオフセットを含む。いくつかの実施形態では、参照レベルは、例えばテクスチャの最高LOD表現を有するレベル等のように、PRTリソースの寸法及びテクスチャ記述子を決定するレベルと同じである。テクスチャ記述子のいくつかの実施形態は、参照レベルと、レジデンシマップ内の異なる寸法と、の間に複数のオフセットを含む。例えば、テクスチャ記述子は、レジデンシマップの3つの個別の寸法に対応する3つの異なるオフセットを含むことができる。
【0019】
GPU105は、テクスチャ記述子内の情報を使用して、要求の正規化された座標を、PRTリソースレベルの寸法を使用してPRTリソースのレベル内のテクセル座標に変換し、正規化された座標を、テクスチャ記述子に含まれるオフセットを使用してレジデンシマップ内のテクセル座標に変換する。このオフセットを使用して、参照レベルの既知の寸法を使用してレジデンシマップの寸法を決定する。いくつかの実施形態では、オフセットは、参照レベルとレジデンシマップのレベルとの間のレベル数を示す。次に、参照レベルの既知の寸法、及び、この参照レベルとレジデンシマップのレベルとの間のレベル数によって決定される寸法の比率に基づいて、レジデンシマップの寸法を決定する。プロセッサは、オフセットに基づいて、正規化された座標をレジデンシマップ内のテクセル座標に変換し、要求に応じて、テクセル座標に基づいてレジデンシマップにアクセスして、正規化された座標によって示されるテクスチャデータがPRTリソースに常駐しているかどうかを決定する。
【0020】
GPU105は、レジデンシマップ内のテクセル座標を使用して、PRTリソース内の要求されたアクセス位置に対応するレジデンシマップ内のテクセルを識別する。レジデンシマップ内のテクセルの値は、常駐テクセルによって投入されるPRTリソースのミップマップ表現内の最低レベル/最高LODを示す。PRTリソースに対するアクセス要求を、レジデンシマップ内のテクセルの値によって示されるレベルにクランプする。例えば、要求で示された最低レベル/最高LODは、レジデンシマップのテクセルで示された最低レベル以上のレベル/最高LOD以下のLODにあるように制限される。このようにしてアクセス要求をクランプすることによって、アクセス要求に応じて返される情報がテクスチャの表現であり、PRTリソース内の非常駐テクセルにアクセスする試行に応じて返されるデフォルトの黒色テクセルではないことが保証される。
【0021】
図2は、いくつかの実施形態による、高次ジオメトリプリミティブを処理して3次元(3D)のシーンのラスタライズ画像を所定の解像度で生成することができるグラフィックスパイプライン200を示す図である。グラフィックスパイプライン200の図示された実施形態は、DX11仕様に従って実装される。グラフィックスパイプライン200の他の実施形態は、Vulkan、Metal、DX12等の他のアプリケーションプログラミングインタフェース(API)に従って実装される。グラフィックスパイプライン200は、
図1に示すGPU105のいくつかの実施形態で実装される。グラフィックスパイプライン200は、バッファを実装し、頂点データ、テクスチャデータ等を記憶するために使用される1つ以上のメモリ又はキャッシュの階層等のストレージリソース201へのアクセスを有する。ストレージリソース201は、
図1に示すメモリ115のいくつかの実施形態を使用して実装され得る。
【0022】
入力アセンブラ202は、ストレージリソース201からの情報にアクセスし、この情報を使用して、シーンのモデルの部分を表すオブジェクトを定義するように構成されている。頂点シェーダ203は、ソフトウェアで実装可能であり、プリミティブの単一の頂点入力として論理的に受信し、単一の頂点を出力する。頂点シェーダ203等のシェーダのいくつかの実施形態は、複数の頂点を同時に処理するために、大規模な単一命令複数データ(SIMD)処理を実装する。
図2に示すグラフィックスパイプライン200は、統合型シェーダモデルを実装するため、グラフィックスパイプライン200に含まれる全てのシェーダは、共有された大規模なSIMD計算ユニット上に同じ実行プラットフォームを含む。したがって、頂点シェーダ203を含むシェーダは、本明細書で統合型シェーダプール204と呼ばれるリソースの共通のセットを使用して実装される。統合型シェーダプール204のいくつかの実施形態は、
図1に示すGPU105内のプロセッサを使用して実装される。
【0023】
ハルシェーダ205は、入力パッチを定義するために使用される、入力された高次のパッチ又はコントロールポイントで動作する。ハルシェーダ205は、テッセレーション係数及び他のパッチデータを出力する。ハルシェーダ205によって生成されたプリミティブは、テッセレータ206にオプションで提供され得る。テッセレータ206は、ハルシェーダ205からオブジェクト(パッチ等)を受信し、例えば、ハルシェーダ205によってテッセレータ106に提供されるテッセレーション係数に基づいて入力オブジェクトをテッセレーションすることによって、入力オブジェクトに対応するプリミティブを識別する情報を生成する。テッセレーションは、パッチ等の入力された高次のプリミティブを、例えば、テッセレーションプロセスによって生成されるプリミティブの粒度を指定するテッセレーション係数によって示されるように、より詳細なレベルを表す低次の出力されたプリミティブのセットに分割する。したがって、シーンのモデルは、少ない数の高次のプリミティブで表すことができ(メモリや帯域幅を節約するため)、高次のプリミティブをテッセレーションすることでさらなるディテールを追加することができる。
【0024】
ドメインシェーダ207は、ドメイン位置及び(オプションで)他のパッチデータを入力する。ドメインシェーダ207は、提供された情報に基づいて動作し、入力ドメイン位置及び他の情報に基づいて出力用の単一の頂点を生成する。ジオメトリシェーダ208は、入力されたプリミティブを受信し、入力されたプリミティブに基づいて、ジオメトリシェーダ208によって生成される最大4つのプリミティブを出力する。1つのプリミティブのストリームがラスタライザ209に提供され、最大4つのプリミティブのストリームをストレージリソース201のバッファに連結することができる。ラスタライザ209は、シェーディング操作及び他の動作(クリッピング、遠近分割(perspective dividing)、シザリング(scissoring)、ビューポートの選択等)を実行する。ピクセルシェーダ210は、ピクセルフローを入力し、入力されたピクセルフローに応じて、0又は別のピクセルフローを出力する。出力マージャブロック211は、ピクセルシェーダ210から受信したピクセルに対してブレンド、深度、ステンシル又は他の操作を実行する。
【0025】
グラフィックスパイプライン200内のシェーダの一部又は全ては、ストレージリソース201に記憶されたテクスチャデータを使用してテクスチャマッピングを実行することができる。例えば、ピクセルシェーダ210は、ストレージリソース201からテクスチャデータを読み出し、このテクスチャデータを使用して1つ以上のピクセルをシェーディングすることができる。次に、シェーディングされたピクセルを、ユーザに提示するためにディスプレイ(
図1に示すディスプレイ110等)に提供する。図示した実施形態では、テクスチャデータをPRTリソース215に記憶し、このPRTリソース215は、異なるLODでのテクスチャデータを表すレベルの階層にテクスチャデータを記憶する。例えば、PRTリソース215は、寸法毎にレベル間で2倍増加する寸法を有するレベルを含むミップマップとしてテクスチャデータを記憶することができる。ただし、他の実施形態では、レベル間の寸法の他の比率を有する他のレベル構造を使用する。PRTリソース215の全てのレベルで全てのテクセルが常駐しているとは限らない、すなわち、テクスチャを表す有効なデータを含んでいるとは限らない。したがって、PRTリソース215内の常駐テクセルは、レジデンシマップ(RM)220に示される。本明細書で説明するように、頂点シェーダ203、ハルシェーダ205、ドメインシェーダ207、ジオメトリシェーダ208及びピクセルシェーダ210等のシェーダによって提供される正規化された座標を、PRTリソース215又はレジデンシマップ220内のテクセル座標に変換する。変換は、テクスチャ記述子(TD)225内の情報を使用して実行される。テクスチャ記述子225内の情報は、PRTリソース215のレベルの寸法、参照レベルとレジデンシマップ220のレベルとの間のオフセット、ストレージリソース201内のレジデンシマップ220のアドレス等を含む。
【0026】
図3は、いくつかの実施形態による、異なるレベルのPRTリソースと正規化された座標空間との間の変換300,301のブロック図である。これらの変換は、
図1に示す処理システム100、及び、
図2に示すグラフィックスパイプライン200のいくつかの実施形態によって実行される。PRTリソースは、異なるLODでのテクスチャを表すレベルの階層を含む。PRTリソースの第一レベル305は、第一レベル305内のテクセル数によって決定される第一寸法310及び第二寸法315を有する。例えば、テクセル空間内の寸法310,315は、それぞれ64ピクセル及び64ピクセルとすることができる。PRTリソースの第二レベル318は、第二レベル318内のテクセル数によって決定される第一寸法320及び第二寸法325を有する。例えば、寸法320,325は、それぞれ32ピクセル及び32ピクセルとすることができる。
【0027】
シェーダ又はシェーダで実行されるアプリケーションは、通常、(u,v)座標と呼ばれる正規化された座標を使用してPRTリソースにアクセスする要求を提供する。正規化された座標は、u=0.0..1.0及びv=0.0..1.0の範囲内にある。テクセル座標内の第一レベル305と正規化された座標内の第一レベル335との間の変換330は、寸法310,315に基づいて、例えば、次の変換を使用して実行される。
U_texel=U_normalized×(width-1)
V_texel=V_normalized×(height-1)
式中、widthは、テクセル内で測定された寸法310であり、heightは、テクセル内で測定された寸法315である。寸法320,325に基づいて、例えば上記の式において寸法320に関するwidth、及び、寸法325に関するheightを置換する等のように、テクセル座標内の第二レベル318と正規化された座標内の第二レベル345との間の変換340を実行する。
【0028】
図4は、いくつかの実施形態による、テクセル空間内のレジデンシマップ405と正規化された座標空間との間の変換400のブロック図である。この変換は、
図1に示す処理システム100、及び、
図2に示すグラフィックスパイプライン200のいくつかの実施形態によって実行される。レジデンシマップ405は、レジデンシマップ405内のテクセル数によって決定される第一寸法410及び第二寸法415を有する。例えば、テクセル空間内の寸法410,415は、それぞれ2ピクセル及び2ピクセルとすることができる。本明細書で説明するように、レジデンシマップ405に関連するPRTリソースにアクセスする要求は、u=0.0..1.0及びv=0.0..1.0の範囲内にある正規化された座標を含む。テクセル座標内のレジデンシマップ405と正規化された座標内のレジデンシマップ425との間の変換420は、寸法410,415に基づいて、例えば次の変換を使用して実行される。
U_texel=U_normalized×(width-1)
V_texel=V_normalized×(height-1)
式中、widthは、テクセル内で測定された寸法410であり、heightは、テクセル内で測定された寸法415である。テクスチャハードウェア(
図2に示すグラフィックスパイプライン200に実装されたプロセッサ等)は、レジデンシマップ405及び異なるレベル(例えば、
図3に示すレベル305,318)でのPRTリソースの寸法を使用して、PRTリソースへのアクセス要求において提供される正規化された座標が、異なるレベル(例えば、
図3に示すレベル305,318)でのPRTリソース、及び、レジデンシマップ405内の同じ位置を指すことを保証する。本明細書で説明するように、この情報をテクスチャ記述子に提供する。
【0029】
図5は、いくつかの実施形態による、テクスチャ記述子500のブロック図である。テクスチャ記述子500は、
図2に示すテクスチャ記述子225のいくつかの実施形態を表す。テクスチャ記述子500は、
図1に示すGPU105、及び、
図2に示すグラフィックスパイプライン200等のテクスチャ記述子を使用するマシンのワードサイズにアライメントされる。例えば、テクスチャ記述子500は、マシンタイプに応じて、32ビットワード又は64ビットワードにアライメントする256ビットを含むことができる。
【0030】
テクスチャ記述子500は、PRTリソースのレベルの寸法を表す情報505を含む。情報505のいくつかの実施形態は、16ビットを使用して、PRTリソースの1つのレベルの寸法を表す。テクスチャが3つの寸法を含む場合、情報505は、合計48ビットを使用して、PRTリソースのレベルの寸法を表す。いくつかの実施形態では、情報505は、テクスチャの最低レベル/最高LOD表現の寸法を表す。
【0031】
テクスチャ記述子500は、PRTリソースに関連するレジデンシマップのアドレスを示す情報510を含む。例えば、情報510は、
図2に示すストレージリソース201に記憶されるレジデンシマップ220のアドレスを示すことができる。
【0032】
テクスチャ記述子500は、
図2に示すレジデンシマップ220等のレジデンシマップの寸法を導出するために使用されるオフセットを表す情報515を含む。オフセットを使用して、PRTリソースの最低レベル(最高LODを有する)等の参照レベルの寸法に基づいて、レジデンシマップの寸法を導出する。いくつかの実施形態では、オフセットは、参照レベルとレジデンシマップのレベルとの間のレベル数を示す。参照レベルとレジデンシマップレベルとの間のレベル数は、参照レベル及びレジデンシマップレベルの寸法の比率を示す。したがって、レジデンシマップの寸法は、参照レベルの寸法をオフセットで示される比率でスケーリング又は乗算することによって決定される。オフセットを使用してレジデンシマップのレベルを表すと、テクスチャ記述子500のサイズが減少する。例えば、PRTリソースが8レベルを有するミップマップとして記憶される場合、オフセットは3ビットのみを使用して表現される。
【0033】
図6は、いくつかの実施形態による、PRTリソースのレベルとレジデンシマップ605のレベルとの間の関係600のブロック図である。レジデンシマップ605は、2テクセル×2テクセルの寸法を有する。レジデンシマップ605のテクセル内の値は、レジデンシマップ605内の対応するテクセルにマッピングする常駐テクセルのタイルを含むPRTリソースの最低レベル(最高LODに対応する)を示す。
図6に示すPRTリソースの部分は、レベル参照番号0が与えられている第一レベル610と、レベル参照番号1が与えられている第二レベル615と、レベル参照番号2が与えられている第三レベル620と、レベル参照番号3が与えられている第四レベル625と、を含む。レベル610,615,620,625は、PRTリソースのミップマップ表現内のレベルであり、レベル610,615,620,625の寸法は、後続のレベルで2倍増加又は2分の1に減少する。例えば、レベル610は、8テクセル×8テクセルの寸法を有し、次の後続のレベル615は、4テクセル×4テクセルの寸法を有する。
【0034】
本明細書で説明するように、テクスチャ記述子に記憶される情報に基づいてレジデンシマップ605の寸法を変換することにより、レジデンシマップ605内のテクセルの境界が、レベル610,615,620,625内の対応する領域に正しくマッピングされることが保証される。図示した実施形態では、レジデンシマップ605は、PRTリソースのレベル620と同じ寸法、例えば2テクセル×2テクセルを有する。したがって、レベル620でのPRTリソースにアクセスする要求内の正規化された座標は、レベル620及びレジデンシマップ605内の同じ位置を指す。本明細書で説明するように寸法を変換することにより、正規化された座標が他のレベル610,615,625内で同じ位置を指すことも保証される。例えば、レジデンシマップ605の変換されたバージョン630内のテクセルは、レベル610内のテクセルの正しいタイルに対応し、レジデンシマップ605の変換されたバージョン635内のテクセルは、レベル615内のテクセルの正しいタイルに対応し、レジデンシマップ605の変換されたバージョン640内のテクセルは、レベル625内のテクセルの正しいタイルに対応する。
【0035】
レベル610,615,620,625内のクロスハッチングされたテクセルは、PRTリソースに常駐している。図示した実施形態では、レジデンシマップ605の左上(例えば、テクセル座標0,0)に対応するPRTリソース内のテクセルは、PRTリソースのレベル625にのみ常駐している。したがって、テクセルの値(0,0)は、レベル参照番号3に等しい。レジデンシマップ605の右上に対応するPRTリソース内のテクセル(例えば、テクセル座標0,1)は、PRTリソースのレベル610、及び、より高いレベル/より低いLODに常駐している。したがって、テクセルの値(0,1)は、レベル参照番号0に等しい。レジデンシマップ605の左下に対応するPRTリソース内のテクセル(例えば、テクセル座標1,0)は、PRTリソースのレベル615、及び、より高いレベル/より低いLODに常駐している。したがって、テクセルの値(1,0)は、レベル参照番号1に等しい。レジデンシマップ605の右下に対応するPRTリソース内のテクセル(例えば、テクセル座標1,1)は、PRTリソースのレベル615、及び、より高いレベル/より低いLODに常駐している。したがって、テクセルの値(1,1)は、レベル参照番号1に等しい。
【0036】
図7は、いくつかの実施形態による、テクスチャ記述子を生成して記憶する方法700のフロー図である。方法700は、
図1に示すGPU105、及び、
図2に示すグラフィックスパイプライン200のいくつかの実施形態において実施される。例えば、GPU105に実装されるドライバを使用して、テクスチャ記述子を生成することができる。方法700は、
図5に示すテクスチャ記述子500のいくつかの実施形態を生成するために使用される。テクスチャ記述子は、様々なLODでのテクスチャを表すPRTリソースのレベルの階層内のレベルの寸法を定義する情報を含む。テクスチャ記述子は、PRTリソースについてのレジデンシマップにも関連付けられる。
【0037】
ブロック705では、ドライバは、PRTリソースのレベルの1つに対応するテクセル寸法を有するように制限される、レジデンシマップのレベルのオフセットを決定するために使用される参照レベルを決定する。いくつかの実施形態では、参照レベルは、PRTリソースのレベルの階層内の最低レベル/最高LODである。参照レベルは、例えば、参照レベルを示す値を、1つ以上のレジスタ、メモリ位置、バッファ等に記憶することによって、ドライバに利用可能である。
【0038】
ブロック710では、ドライバは、レジデンシマップのレベルを決定する。レジデンシマップのレベルを示す情報は、例えば、1つ以上のレジスタ、メモリ位置、バッファ等に記憶される値として、ドライバに利用可能である。
【0039】
ブロック715では、ドライバは、参照レベルとレジデンシマップのレベルとの間のオフセットを決定する。オフセットのいくつかの実施形態は、参照レベルとレジデンシマップのレベルとの間のレベル数を示す。例えば、参照レベルがテクスチャのミップマップ表現のレベル0であり、レジデンシマップのレベルがテクスチャのミップマップ表現のレベル3に対応する場合、オフセットの値は3である。
【0040】
ブロック720では、ドライバは、PRTリソースのレベルの寸法と、参照レベルに対するレジデンシマップのレベルの寸法を表すオフセットと、を含むテクスチャ記述子を生成する。オフセットを表すために必要なビット数は、レジデンシマップのレベルの寸法を直接表すために必要なビット数よりもはるかに少ない。例えば、レジデンシマップのレベルの1つの寸法が16ビットで表され、テクスチャが3つの寸法を含む場合、レジデンシマップのレベルの寸法を表すために必要とされるのは合計48ビットである。対照的に、PRTリソースの階層表現内のレベル数が8である場合、レジデンシマップのレベルの可能なオフセットを表すために必要とされるのは3ビットのみである。いくつかの実施形態では、ドライバは、テクスチャ記述子へのレジデンシマップのアドレスを表す情報、及び、テクスチャへのポインタ、PRTリソースの寸法、データ符号化フォーマット、テクセル当たりのバイト数、圧縮率、圧縮タイプ等を含む追加情報を含む。
【0041】
ブロック725では、ドライバは、PRTリソース及びレジデンシマップにアクセスするシェーダ又はアプリケーションにアクセス可能なメモリ位置にテクスチャ記述子を記憶する。例えば、テクスチャ記述子を、
図1に示すメモリ115又は
図2に示すストレージリソース201に記憶することができる。
【0042】
図8は、いくつかの実施形態による、テクスチャ記述子を生成して記憶する方法800のフロー図である。方法800は、
図1に示すGPU105、及び、
図2に示すグラフィックスパイプライン200のいくつかの実施形態における回路等のテクスチャハードウェアによって実施される。
【0043】
ブロック805では、テクスチャハードウェアは、PRTリソースの1つ以上のレベルにアクセスする要求を受信する。この要求は、PRTリソースの1つ以上のレベルによって表されるテクスチャ内の位置を示す正規化された座標を含む(又は、これらの正規化された座標に関連付けられる)。
【0044】
ブロック810では、テクスチャハードウェアは、PRTリソース及び対応するレジデンシマップに関連するテクスチャ記述子にアクセスする。テクスチャ記述子は、PRTリソースのレベルの寸法と、レジデンシマップのレベルを決定するために使用されるオフセットを定義する情報と、を含む。
【0045】
ブロック815では、テクスチャハードウェアは、オフセットに基づいてレジデンシマップの寸法を決定する。いくつかの実施形態では、オフセットは、レジデンシマップのレベルと参照レベルとの間のレベル数を示す。このレベル数は、参照レベルの寸法に対するレジデンシマップの寸法の比率を示す。したがって、テクスチャハードウェアは、参照レベルの寸法をオフセットで示される比率でスケーリング(又は、乗算)することによって、レジデンシマップの寸法を決定する。いくつかの実施形態では、複数の異なるレジデンシマップの寸法について個別のオフセット(例えば、3つのオフセット)があり、テクスチャハードウェアは、個別のオフセットを参照レベルに適用することによってレジデンシマップの寸法を決定する。
【0046】
ブロック820では、テクスチャハードウェアは、レジデンシマップの寸法を使用して、要求からの正規化された座標をレジデンシマップ内のテクセル座標に変換する。いくつかの実施形態では、この変換は、
図4に示すように実行される。
【0047】
ブロック825では、テクスチャハードウェアは、テクセル座標を使用してレジデンシマップにアクセスする。例えば、テクスチャハードウェアは、要求内の正規化された座標から変換されたテクセル座標に基づいて、レジデンシマップ内のテクセルを識別する。テクセルは、テクスチャを表す常駐テクセルを含むPRTリソース内の最低レベル/最高LODを示す情報を含む。いくつかの実施形態では、テクセル内の情報は、レジデンシマップ内のテクセルの境界によって包含されるPRTリソース内のテクスチャの部分についての常駐テクセルを含む、ミップマップの最低レベルを示す。
【0048】
ブロック830では、アクセス要求が、レジデンシマップのテクセル内に示されるPRTリソースレベルにクランプされる。いくつかの実施形態では、(下位LODで)レジデンシマップのテクセルで示されるレベル以上であるPRTリソースのアクセスレベルのみにアクセス要求を制限することによって、アクセス要求をあるレベルにクランプする。次に、この要求をPRTリソースに送る。要求をクランプすることによって、常駐しているPRTリソースの一部分に要求がアクセスしていることが保証されるため、PRTリソースは、非常駐テクセルにデフォルトの黒色値を返すのではなく、要求された位置にテクスチャを表す情報を返す。
【0049】
本明細書で説明するように、いくつかの実施形態では、方法は、プロセッサにおいて、部分常駐テクスチャ(PRT)リソースの複数のレベルのうち少なくとも1つにアクセスする要求を受信することであって、複数のレベルは、異なる詳細レベル(LOD)のテクスチャを表し、要求は、テクスチャ内の位置を示す正規化された座標を含む、ことと、プロセッサにおいて、複数のレベルのうち第一レベルの寸法、及び、参照レベルとPRTリソースに常駐するテクセルを示す少なくとも1つのレジデンシマップに関連付けられる複数のレベルのうち少なくとも1つの第二レベルとの間の少なくとも1つのオフセットを表す情報を含むテクスチャ記述子にアクセスすることと、少なくとも1つのオフセットに基づいて、正規化された座標を、少なくとも1つのレジデンシマップ内のテクセル座標に変換することと、プロセッサにおいて、要求に応じて、テクセル座標に基づいて少なくとも1つのレジデンシマップにアクセスして、正規化された座標によって示されるテクスチャデータがPRTリソースに常駐しているかどうかを判別することと、を含む。一態様では、第一レベルは、複数のレベルの中で最高LODを有する複数のレベルのうち何れかのレベルに対応し、参照レベルは、第一レベルに対応する。別の態様では、テクスチャ記述子は、参照レベルと、複数のレジデンシマップに関連する複数の第二レベルとの間の複数のオフセットを表す情報を含む。
【0050】
一態様では、少なくとも1つのオフセットは、少なくとも1つの第二レベルと参照レベルとの間のレベル数を示す。別の態様では、正規化された座標をテクセル座標に変換することは、少なくとも1つの第二レベルと参照レベルとの間のレベル数に基づく、参照レベルの寸法に対する少なくとも1つのレジデンシマップの寸法の比率に基づいて、少なくとも1つのレジデンシマップの寸法を決定することを含む。さらに別の態様では、正規化された座標をテクセル座標に変換することは、少なくとも1つのレジデンシマップの寸法に基づいて、正規化された座標をテクセル座標に変換することを含む。さらに別の態様では、方法は、複数のレベルのうち第一レベルの寸法に基づいて、正規化された座標を、PRTリソースの複数のレベルのうち少なくとも1つにおけるテクセル座標に変換することを含み、少なくとも1つのレジデンシマップ内のテクセル座標は、PRTリソースの複数のレベルのうち少なくとも1つにおけるテクセル座標と同じ位置を示す。
【0051】
一態様では、方法は、少なくとも1つのレジデンシマップ内のテクセル座標に基づいて、少なくとも1つのレジデンシマップ内のテクセルを識別することと、少なくとも1つのレジデンシマップ内のテクセルに対応するPRTのタイルに常駐する最高LODを示す情報にアクセスすることと、を含む。別の態様では、方法は、要求に応じて、タイルに常駐する最高LOD以下であるLODを有するテクスチャデータを受信することを含む。
【0052】
いくつかの実施形態では、装置は、少なくとも1つのレジデンシマップ及びテクスチャ記述子を記憶するように構成されたメモリであって、少なくとも1つのレジデンシマップは、テクスチャを表す部分常駐テクスチャ(PRT)リソース内のテクセルがPRTリソースに常駐しているかどうかを示し、テクスチャ記述子は、複数のレベルの第一レベルの寸法、及び、参照レベルと少なくとも1つのレジデンシマップに関連付けられる複数のレベルのうち少なくとも1つの第二レベルとの間の少なくとも1つのオフセットを表す情報を含む、メモリと、PRTリソースの複数のレベルのうち少なくとも1つにアクセスする要求を受信するように構成されたプロセッサであって、要求は、テクスチャ内の位置を示す正規化された座標を含み、プロセッサは、少なくとも1つのオフセットに基づいて正規化された座標を少なくとも1つのレジデンシマップ内のテクセル座標に変換し、テクセル座標に基づいて少なくとも1つのレジデンシマップにアクセスして、正規化された座標によって示されるテクスチャデータがPRTリソースに常駐しているかどうかを判別するように構成されている、プロセッサと、を含む。一態様では、第一レベルは、複数のレベルの中で最高LODを有する複数のレベルのうち何れかのレベルに対応し、参照レベルは、第一レベルに対応する。別の態様では、テクスチャ記述子は、参照レベルと、複数のレジデンシマップに関連する複数の第二レベルとの間の複数のオフセットを表す情報を含む。
【0053】
一態様では、少なくとも1つのオフセットは、少なくとも1つの第二レベルと参照レベルとの間のレベル数を示す。別の態様では、プロセッサは、少なくとも1つの第二レベルと参照レベルとの間のレベル数に基づく、参照レベルの寸法に対する少なくとも1つのレジデンシマップの寸法の比率に基づいて、少なくとも1つのレジデンシマップの寸法を決定するように構成されている。さらに別の態様では、プロセッサは、少なくとも1つのレジデンシマップの寸法に基づいて、正規化された座標をテクセル座標に変換するように構成されている。さらに別の態様では、プロセッサは、複数のレベルの第一レベルの寸法に基づいてPRTリソースの複数のレベルのうち少なくとも1つにおいてテクセル座標に正規化された座標を変換するように構成されており、少なくとも1つのレジデンシマップ内のテクセル座標は、PRTリソースの複数のレベルのうち少なくとも1つにおいてテクセル座標と同じ位置を示す。
【0054】
さらに別の態様では、プロセッサは、少なくとも1つのレジデンシマップ内のテクセル座標に基づいて少なくとも1つのレジデンシマップ内のテクセルを識別し、少なくとも1つのレジデンシマップ内のテクセルに対応するPRTのタイルに常駐する最高LODを示す情報にアクセスするように構成されている。別の態様では、プロセッサは、要求に応じて、タイルに常駐する最高LOD以下であるLODを有するテクスチャデータを受信するように構成されている。
【0055】
いくつかの実施形態では、方法は、プロセッサにおいて、部分常駐テクスチャ(PRT)リソースの複数のレベル内の第一レベルを示す値を有する複数の第一テクセルを含む少なくとも1つのレジデンシマップを生成することであって、複数のレベルは、異なる詳細レベル(LOD)のテクスチャを表し、第一レベルは、PRTリソースの複数のレベルのうち何れのレベルがプロセッサに関連するメモリに常駐しているのかを示し、少なくとも1つのレジデンシマップの寸法は、複数のレベルのうち少なくとも1つの第二レベルの寸法に対応する、ことと、プロセッサにおいて、少なくとも1つの第二レベルと複数のレベルの参照レベルとの間のオフセットを決定することと、プロセッサからメモリに、複数のレベルの第三レベルの寸法及び少なくとも1つのオフセットを表す情報を含むテクスチャ記述子を記憶することと、を含む。一態様では、テクスチャ記述子は、参照レベルと、複数のレジデンシマップに関連する複数の第二レベルとの間の複数のオフセットを表す情報を含み、少なくとも1つのオフセットは、少なくとも1つの第二レベルと参照レベルとの間のレベル数を示し、第三レベルは、複数のレベルの中で最高LODを有する複数のレベルのうち何れかのレベルに対応し、参照レベルは、第三レベルに対応する。
【0056】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0057】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行するプロセッシングシステムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)等のソリッドステート記憶デバイス、又は、他の1つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0058】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0059】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。