(57)【特許請求の範囲】
【請求項１】
ロジックを備え、
前記ロジックは、
頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて、前記画像の各アトミックタイルに対するプリミティブ交差コスト値を決定するハードウェアロジックを少なくとも部分的に有する、装置。
【請求項２】
前記アトミックタイルは、分割不可能な矩形の画素ブロックを含む、請求項１に記載の装置。
【請求項３】
前記ロジックは、さらに、各アトミックタイル値に対する前記プリミティブ交差コスト値に基づいてスーパータイルを生成する、請求項１又は２に記載の装置。
【請求項４】
前記ロジックは、さらに、前記スーパータイルに１又は複数の頂点シェーディング処理を実行する、請求項３に記載の装置。
【請求項５】
前記ロジックは、さらに、前記スーパータイルに１又は複数のラスタ処理を実行する、請求項３又は４に記載の装置。
【請求項６】
前記ロジックは、さらに、頂点データをロードして、複数のスクリーン位置計算を実行し、前記頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む、請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記ロジックは、前記頂点要素のサイズ、前記頂点シェーダの長さ、前記頂点の数、前記頂点要素のサイズの重み及び前記頂点シェーダの長さの重みに少なくとも部分的に基づいて前記プリミティブ交差コスト値を決定する、請求項１から６のいずれか一項に記載の装置。
【請求項８】
プロセッサは、前記ロジックを有する、請求項１から７のいずれか一項に記載の装置。
【請求項９】
１又は複数のプロセッサコア、前記ロジック又はメモリを有するプロセッサは、単一の集積回路ダイ上にある、請求項１から８のいずれか一項に記載の装置。
【請求項１０】
頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて前記画像の各アトミックタイルに対するプリミティブ交差コスト値を決定する段階を備える、方法。
【請求項１１】
各アトミックタイル値に対する前記プリミティブ交差コスト値に基づいてスーパータイルを生成する段階をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記スーパータイルに１又は複数の頂点シェーディング処理を実行する段階をさらに備える、請求項１１に記載の方法。
【請求項１３】
前記スーパータイルに１又は複数のラスタ処理を実行する段階をさらに備える、請求項１１又は１２に記載の方法。
【請求項１４】
頂点データをロードする段階と、複数のスクリーン位置計算を実行する段階とをさらに備え、前記頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む、請求項１０から１３のいずれか一項に記載の方法。
【請求項１５】
前記頂点要素のサイズ、前記頂点シェーダの長さ、前記頂点の数、前記頂点要素のサイズの重み及び前記頂点シェーダの長さの重みに少なくとも部分的に基づいて前記プリミティブ交差コスト値を決定する段階をさらに備える、請求項１０から１４のいずれか一項に記載の方法。
【請求項１６】
プロセッサに、請求項１０から１５のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項１７】
請求項１６に記載のプログラムを格納するコンピュータ可読記憶媒体。
【請求項１８】
１又は複数のプロセッサコアを有するプロセッサと、
前記１又は複数のプロセッサコアのうちの少なくとも１つによりアクセスされるべく、シーンの少なくとも１つのフレームに対応するデータを格納するメモリと、
前記シーンの前記少なくとも１つのフレームを提示するディスプレイデバイスと、
頂点要素のサイズ、頂点シェーダの長さ及び前記フレームのプリミティブの頂点の数に少なくとも部分的に基づいて前記フレームの各アトミックタイルに対するプリミティブ交差コスト値を決定するロジックと
を備える、システム。
【請求項１９】
前記アトミックタイルは、分割不可能な矩形の画素ブロックを含む、請求項１８に記載のシステム。
【請求項２０】
前記ロジックは、さらに、各アトミックタイル値に対する前記プリミティブ交差コスト値に基づいてスーパータイルを生成する、請求項１８又は１９に記載のシステム。
【請求項２１】
前記ロジックは、さらに、前記スーパータイルに１又は複数の頂点シェーディング処理を実行する、請求項２０に記載のシステム。
【請求項２２】
前記ロジックは、さらに、前記スーパータイルに１又は複数のラスタ処理を実行する、請求項２０又は２１に記載のシステム。
【請求項２３】
前記ロジックは、さらに、頂点データをロードして、複数のスクリーン位置計算を実行し、前記頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む、請求項１８から２２のいずれか一項に記載のシステム。
【請求項２４】
前記ロジックは、前記頂点要素のサイズ、前記頂点シェーダの長さ、前記頂点の数、前記頂点要素のサイズの重み及び前記頂点シェーダの長さの重みに少なくとも部分的に基づいて前記プリミティブ交差コスト値を決定する、請求項１８から２３のいずれか一項に記載のシステム。
【請求項２５】
前記プロセッサは、前記ロジックを有する、請求項１８から２４のいずれか一項に記載のシステム。
【請求項２６】
前記１又は複数のプロセッサコア、前記ロジック又は前記メモリのうちの１又は複数は、単一の集積回路ダイ上にある、請求項１８から２５のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、エレクトロニクスの分野に関する。より具体的には、実施形態は、タイルベースのレンダリングＧＰＵ（グラフィックス処理装置）アーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズムに関する。
【背景技術】
【０００２】
集積回路（ＩＣ）の製造技術が向上するにつれて、製造業者は、単一のシリコン基板上に追加的な機能を集積することができる。しかしながら、これらの機能の数が増加するにつれて、単一のＩＣチップ上のコンポーネントの数も増加している。追加的なコンポーネントが追加的な信号スイッチングを増大させると、今度は、より多くの熱を発生させる。追加の熱は、例えば、熱膨張によってＩＣチップに損傷を与え得る。また、追加の熱は、そのような複数のチップを含むコンピューティングデバイスの複数の使用位置及び／又は複数のアプリケーションを制限し得る。例えば、携帯型コンピューティング装置は、バッテリ電源にもっぱら依存し得る。したがって、追加的な機能が携帯型コンピューティング装置に統合されると、電力消費を減らす必要性が、例えば、長期間にわたってバッテリ電源を維持するためにますます重要になる。非ポータブルコンピューティングシステムは、それらのＩＣコンポーネントがより多くの電力を使用し、かつ、より多くの熱を発生するのにともない、冷却及び発電問題にも直面する。
【０００３】
比較的大きな量の電力を使用し、性能に大きく影響を与える傾向にある、あるタイプのコンポーネントが、いくつかの集積回路チップ上に含まれるグラフィックス回路である。したがって、グラフィックス回路の電力消費及び／又は処理を制御することは、システム全体の電力消費及び／又は性能に直接影響を与え得る。
【図面の簡単な説明】
【０００４】
詳細な説明が、添付の複数の図面を参照して提供される。複数の図面において、参照符号の最も左側の数字は、参照符号が最初に現れる図面を識別している。異なる図面において同一の参照符号を用いることにより、類似又は同一の複数の項目を示す。
【０００５】
【図１】本明細書に説明される様々な実施形態を実装するのに用いられ得るコンピューティングシステムの実施形態についてのブロック図を示す。
【０００６】
【図２】一実施形態に係る、タイル分割を伴うシーンを示す。
【０００７】
【図３Ａ】本明細書に説明される様々な実施形態を実装するのに用いられ得るコンピューティングシステムの実施形態についてのブロック図を示す。
【０００８】
【図３Ｂ】本明細書に説明される様々な実施形態を実装するのに用いられ得るコンピューティングシステムの実施形態についてのブロック図を示す。
【０００９】
【図４Ａ】一実施形態に係る、２つのレベルのタイル構造を示す。
【００１０】
【図４Ｂ】一実施形態に係るスーパータイルテーブルのブロック図を示す。
【００１１】
【図４Ｃ】一実施形態に係る、プリミティブ交差コストバッファのブロック図を示す。
【００１２】
【図５Ａ】一実施形態に係る、サンプルフレームについてのプリミティブ交差コスト結果を示す。
【００１３】
【図５Ｂ】一実施形態に係る、検索ベースのスーパータイル生成メカニズムを示す。
【００１４】
【図５Ｃ】一実施形態に係る、タイルバッファからフレームバッファへの画像データのフローを示す。
【００１５】
【図６】いくつかの実施形態に係る、複数のタイルベースのレンダリング処理を実行する方法についてのフロー図を示す。
【００１６】
【図７】本明細書に説明される様々な実施形態を実装するのに用いられ得るコンピューティングシステムの実施形態についてのブロック図を示す。
【００１７】
【図８】本明細書に説明される様々な実施形態を実装するのに用いられ得るコンピューティングシステムの実施形態についてのブロック図を示す。
【００１８】
【図９】本明細書に説明される様々な実施形態を実装するのに用いられ得るコンピューティングシステムの実施形態についてのブロック図を示す。
【発明を実施するための形態】
【００１９】
下記の説明において、様々な実施形態の完全な理解を提供すべく、多数の具体的な詳細が説明される。しかしながら、様々な実施形態が上記の具体的な詳細を利用することなく実施されてよい。他の例において、特定の実施形態を不明瞭にしないように、周知の方法、手順、コンポーネント及び回路が詳細には説明されていない。さらに、複数の実施形態の様々な態様は、半導体集積回路（「ハードウェア」）、１又は複数のプログラム（「ソフトウェア」）にまとめられたコンピュータ可読命令、又は、ハードウェア及びソフトウェアのいくつかの組み合わせのような、様々な手段を用いて実行され得る。本開示の目的のために、「ロジック」への言及は、ハードウェア、ソフトウェア、ファームウェア又はそれらのいくつかの組み合わせのいずれかを意味するものとする。
【００２０】
いくつかの実施形態は、タイルベースのレンダリンググラフィックスロジックのための任意のタイル形状を有する適応可能なパーティションメカニズムを提供する。本明細書に説明されるように、「タイル」は、概して、グラフィックスロジックによる処理（例えば、グラフィックス処理、レンダリング等）の対象となるシーン又は画像フレームの一部を指す。例えば、本明細書にさらに説明されるように、グラフィックスロジックは、ＧＰＵ（グラフィックス処理装置）、又は、画像、フレーム、シーン等を操作する（複数の）処理のような（複数の）グラフィックスタスクに関連する（複数の）計算を実行する他の複数のタイプのロジックを含んでよい。いくつかの実施形態は、グラフィックスロジックに言及しつつ説明されるが、複数の実施形態は、グラフィックス関連のロジックに限定されず、また、他の複数のタイプの非グラフィックス（例えば、汎用）ロジックに適用され得る。さらに、様々な実施形態は、実施形態においてＳＯＣ（システムオンチップ）プラットフォームに具現化され得る、デスクトップコンピュータ、（スマートフォン、タブレットＵＭＰＣ（ウルトラモバイルパーソナルコンピュータ）、ラップトップコンピュータ、ウルトラブック（登録商標）、コンピューティングデバイス、スマートウォッチ、スマートグラス等のような）モバイルコンピュータ、ワークステーション等のような任意のタイプのコンピューティングデバイスのために実行され得る。
【００２１】
さらに、（例えば、様々な実施形態においてグラフィックスロジックにより処理され得る）本明細書に説明されるシーン、画像又はフレームは、（（スマートフォン、タブレット、ラップトップ、スタンドアローンカメラ等のような別のデバイスに埋め込まれる）デジタルカメラ、又は、そのキャプチャされた画像がその後デジタル形式に変換されるアナログデバイスのような）画像キャプチャデバイスによりキャプチャされ得る。また、本明細書に説明されるシーン、画像又はフレームは、アートデザイン、ゲーム設計又は任意の種類の３Ｄ／２Ｄ（２次元／３次元）産業設計により生成され得る。例えば、シーンは、構造形状及び関連するテクスチャマップのセット、照明効果等を指し得る。さらに、実施形態において、画像キャプチャデバイスは、複数のフレームをキャプチャすることを可能にし得る。さらに、いくつかの実施形態において、シーン中の複数のフレームのうちの１又は複数は、コンピュータ上で設計／生成される。また、シーン中の複数のフレームのうちの１又は複数は、（例えば、フラットパネルディスプレイデバイス等を含む、図７及び／又は図８を参照して説明されるディスプレイのような）ディスプレイを介して提示され得る。
【００２２】
さらに、いくつかのタイルベースのＳＯＣ  ＧＰＵアーキテクチャは、パラメータバッファを使わない設計を利用してよく、パラメータバッファを使わない設計を利用することで、パラメータデータに対する読み出し処理及び書き込み処理を回避することにより、性能を向上させ、電力消費を低減させることができる。それに対応して、２パス頂点シェーディングメカニズムは、（例えば、プリミティブが属する複数のタイルを見つけるための）タイルマッピング及び特性計算のためにパラメータ位置を取得することに用いられてよい。本明細書に説明されるように、「プリミティブ」は、概して、グラフィックスロジックが処理（例えば、描画、格納等）することが可能である（例えば、幾何学的）形状（点、線、トライアングル等）を指す。いくつかのタイルにまたがる複数のプリミティブの頂点レンダリングは、重複する読み出し処理及び頂点データの計算に起因して、（例えば、電力消費及び／又はパフォーマンスヒットに関して）より多くのコストが掛かる。
【００２３】
このため、いくつかの実施形態は、パラメータバッファを使わない設計において余分な頂点データの読み出し処理及び計算処理を軽減するための適応型タイル分割アプローチを提供する。したがって、そのような実施形態は、電力消費を低減し、及び／又は、性能を向上させ、また、バッファサイズの要件及び半導体バンプのコストを減少させ得る。
【００２４】
いくつかの実施形態は、例えば、スマートフォン、タブレット、ＵＭＰＣ（ウルトラモバイルパーソナルコンピュータ）、ラップトップコンピュータ、ウルトラブック（登録商標）コンピューティングデバイス、スマートウォッチ、スマートグラス等のようなモバイルコンピューティングデバイスを含む１又は複数のプロセッサ（例えば、１又は複数のプロセッサコアを有する）を含む、図１−９を参照して説明されるもののようなコンピューティングシステムに適用されてよい。より具体的には、図１は、一実施形態に係る、コンピューティングシステム１００のブロック図を示す。システム１００は、１又は複数のプロセッサ１０２−１から１０２−Ｎ（本明細書において、概して、「複数のプロセッサ１０２」又は「プロセッサ１０２」と称される）を含んでよい。複数のプロセッサ１０２は、様々な実施形態において、複数の汎用ＣＰＵ及び／又は複数のＧＰＵであってよい。複数のプロセッサ１０２は、相互接続又はバス１０４を介して通信してよい。各プロセッサは、様々なコンポーネントを含んでよく、そのいくつかが、明確にするために、プロセッサ１０２−１のみを参照して説明される。したがって、残りのプロセッサ１０２−２から１０２−Ｎのそれぞれは、プロセッサ１０２−１を参照して説明されるコンポーネントと同じ又は類似のコンポーネントを含んでよい。
【００２５】
実施形態において、プロセッサ１０２−１は、１又は複数のプロセッサコア１０６−１から１０６−Ｍ（本明細書において、「複数のコア１０６」又は「コア１０６」と称される）、キャッシュ１０８及び／又はルータ１１０を含んでよい。プロセッサコア１０６は、単一の集積回路（ＩＣ）チップ上に実装されてよい。さらに、チップは、（キャッシュ１０８のような）１又は複数の共有及び／又は専用キャッシュ、（バス又は相互接続１１２のような）バス又は相互接続、（図７−９を参照して説明されるもののような）グラフィックス及び／又はメモリコントローラ、又は、他のコンポーネントを含んでよい。
【００２６】
一実施形態において、ルータ１１０は、プロセッサ１０２−１及び／又はシステム１００の様々なコンポーネント間で通信するために用いられてよい。さらに、プロセッサ１０２−１は、１より多いルータ１１０を含んでよい。さらに、多数のルータ１１０が、プロセッサ１０２−１の内部又は外部における様々なコンポーネント間でデータをルーティングさせることを有効にすべく通信してよい。
【００２７】
キャッシュ１０８は、コア１０６のような、プロセッサ１０２−１の１又は複数のコンポーネントにより用いられる（例えば、複数の命令を含む）データを格納してよい。例えば、キャッシュ１０８は、プロセッサ１０２のコンポーネントによる高速アクセス（例えば、コア１０６による高速アクセス）のためにメモリ１１４に格納されるデータをローカルにキャッシュしてよい。図１に示されるように、メモリ１１４は、相互接続１０４を介してプロセッサ１０２と通信してよい。実施形態において、（共有され得る）キャッシュ１０８は、ミッドレベルキャッシュ（ＭＬＣ）、ラストレベルキャッシュ（ＬＬＣ）等であってよい。また、複数のコア１０６のそれぞれは、レベル１（Ｌ１）キャッシュ（１１６−１）（本明細書において、概して「Ｌ１キャッシュ１１６」と称される）、又は、レベル２（Ｌ２）キャッシュのような他の複数のレベルのキャッシュを含んでよい。さらに、プロセッサ１０２−１の様々なコンポーネントは、直接的にバス（例えば、バス１１２）、及び／又は、メモリコントローラ若しくはハブを通じてキャッシュ１０８と通信してよい。
【００２８】
図１に示されるように、プロセッサ１０２は、本明細書に説明されるような様々なグラフィックス関連処理を実行するグラフィックスロジック１４０をさらに含んでよい。ロジック１４０は、ここで説明されるように、システム１００の様々なコンポーネントと通信される情報のような、ロジック１４０の複数の処理に関連する情報を格納すべく、（キャッシュ１０８、Ｌ１キャッシュ１１６、メモリ１１４、（複数の）レジスタ又はシステム１００内の別のメモリのような）本明細書に説明される１又は複数のストレージデバイスへのアクセスを有してよい。また、ロジック１４０は、プロセッサ１０２内に示されるが、様々な実施形態において、ロジック１４０は、システム１００内の他の箇所に配置されてよい。例えば、ロジック１４０は、複数のコア１０６のうちの１つと置き換えられてよく、相互接続１１２及び／又は相互接続１０４等に直接的に結合されてよい。
【００２９】
複数のプリミティブについてのスクリーンの位置情報に基づいて、グラフィックスロジック（例えば、ロジック１４０）は、異なるタイルにまたがるプリミティブの数を減らすべく、任意の形状（例えば、矩形である必要はない）を有する複数のタイルに適応的に分割することで、余分な計算処理及びメモリ読み出し処理を減らす。そのようなタイル分割メカニズムは、複数の高コストなプリミティブの形状と一致させるようにタイルの形状を適応的に設定し、高密度な複数のプリミティブ領域に亘るタイルの境界を自動的に回避する。
【００３０】
図２は、一実施形態に係る、従来のタイル分割（Ａ）及び適応型タイル分割（Ｂ）を伴うシーンを示す。シーンは、３つのドローコールを有し、ドローコール＃１は月及び星をレンダリングし、ドローコール＃２は雲をレンダリングし、ドローコール＃３は建物をレンダリングする。雲についてのメッシュが各頂点に対する非常に複雑なプロパティリストを包含し、モデル空間からスクリーン空間へ最終的な位置を与えるべくいくつかのバンプマッピングを行う必要があると仮定した場合、もし、雲についてのメッシュにおける複数のプリミティブが、いくつかのタイルに分けられてしまうと、（例えば、計算の量、処理能力及び／又は電力消費に関して）より多くのコストが掛かってしまう。スクリーン上には、Ｔ１、Ｔ２、Ｔ３及びＴ４の４つのタイルがあり、複数の線は、タイルの境界を示す。
【００３１】
図２に示されるように、従来のタイル分割方法（Ａ）は、複数のプリミティブと複数のタイルとの間に多くの交差が生じており、一方、適応型タイル分割メカニズム（Ｂ）は、複数のタイルの形状を変化させることにより、高コストな交差を回避できる。さらに、従来のタイル分割の解決策（Ａ）は、複数の大きいタイルを用いて、例えば、そのパラメータバッファを使わない設計についての余分な計算処理及びメモリアクセスを減少させている。しかしながら、従来のタイル分割の解決策には、考慮されるべき少なくとも下記の２つの問題がある。（ａ）大きなタイルバッファを必要とする。これは、大きなダイ領域及び高コストを招く（例えば、この解決策におけるタイルは、１００画素×１００画素で構成され、ハードウェアは、このタイルを収容すべく１ＭＢのタイルバッファを提供する）。（ｂ）大きいタイルは、「プリミティブとタイルとの間の交差」の可能性を低下させ得る（しかしながら、例えば、複数のプリミティブは、多くの場合、複数の異なるタイルに無作為にまたがっており、いくつかのベンチマークに対して平均しておよそ１０％〜２０％の余分な計算が行われているので、現在の実装は、十分に高性能ではない）。
【００３２】
対照的に、いくつかの実施形態は、適応型タイル分割メカニズムを用いており、高コストなプリミティブについての余分な処理を回避できる。さらに、この解決策は、極端に大きなタイルバッファを必要としない。
【００３３】
図３Ａは、実装に係る、パラメータバッファを有するグラフィックス処理コンピューティングシステムの複数のコンポーネントについてのブロック図を示す。図３Ａのコア側は、実施形態において、ロジック１４０内で提供され得るサンプルロジックを示す。ストレージ／メモリ側（例えば、図１又は７−９を参照して説明される複数のストレージ／メモリデバイスと同じ又は類似のもの）には、ＶＢＯ（頂点バッファオブジェクト）ストレージ３０２及びパラメータバッファ３０４が、それぞれ、頂点オブジェクト及び中間頂点シェーディングデータを格納するように提示される。一般には、タイルベースのレンダリングアーキテクチャは、プリミティブ方式で頂点シェーディングを実行するが、タイル方式で画素シェーディングを実行する。この類の方式の移行をサポートすべく、パラメータバッファ３０４と呼ばれるメモリバッファは、頂点シェーディング（ＶＳ）ロジック３０６により生成される複数の中間結果を格納するために用いられる。図３Ａに示されるように、ＶＢＯデータ（例えば、ＶＢＯストレージ３０２に格納されている）は、（頂点シェーディング処理を実行する）ロジックＶＳ３０６に渡され、続いて、（例えば、表示域の外側の複数のプリミティブを除去する）カリングロジック３０８に渡され、その後、（例えば、フレーム内のプリミティブをラスタデータに変換する）ラスタロジック３１０による次の処理のためにパラメータバッファ３０４に格納される。
【００３４】
結果として、パラメータバッファ３０４は、追加のメモリトラフィックの原因となるが、プリミティブデータが１より多いタイル内に存在する（プリミティブ及びタイルの交差と称される）ので、それが用いられている。パラメータバッファ３０４は、頂点シェーダロジック３０６により生成される複数の特性及びタイル毎のデータ構造を記録するために、メモリの比較的大きな部分を必要とする。いくつかのベンチマークでは、パラメータバッファのサイズは、１０ＭＢから１００ＭＢであり得る。また、パラメータバッファ３０４への各アクセスは、追加の帯域幅にコストが掛かるだろう。
【００３５】
図３Ｂは、いくつかの実施形態に用いられ得る、パラメータバッファを用いないグラフィックス処理コンピューティングシステムの複数のコンポーネントについてのブロック図を示す。図３Ｂのコア側は、実施形態において、ロジック１４０に提供され得るサンプルロジックを示す。より具体的には、いくつかの実装は、図３Ａのパラメータバッファ３０４を省略することができるように、（例えば、図３ＢのＶＳロジック３０６−１及び３０６−２により示されるような）２パス頂点シェーディングを用いてよい。そのようなパラメータバッファを使わない設計では、頂点シェーディングロジックは、複数の頂点シェーディングの結果を格納する場所がない。より具体的には、頂点シェーディングフローは、２つのパスに分かれる。（１）（例えば、ロジック３０６−１における）第１パスは、ドローコールにより各頂点ドローコールのスクリーン空間位置を算出する（例えば、ロジック３１２により行われ、次に、ロジック３１２は、複数のプリミティブがある（複数の）タイルを決定する）。（２）（例えば、ロジック３０６−２における）第２パスは、タイル方式であり、例えば、各タイルについて、ＶＳロジック３０６−２が全ての関連するプリミティブを詳しく検討し、完全な頂点シェーディング処理を実行する。そのような設計において、いくつかのタイルにまたがる複数のプリミティブの頂点レンダリングは、頂点データの重複する読み出し処理及び計算処理に起因してより多くのコストが掛かるだろう。大きいタイルサイズ（例えば、数百画素×数百画素）を用いることで、ある程度の交差を軽減し得る。
【００３６】
さらに、より大きなタイルサイズは、効果的に交差を回避し得ない。既存の大きなタイルの解決策は、いくつかのベンチマークにおいて、およそ１０％〜２０％の余分な頂点シェーダの計算を生み出し得る。これらの計算による余分なメモリアクセスは、なおさら多くなり得る。さらに、大きなタイルのサイズ設計は、いくつかの場合、比較的大きなサイズのオンチップのタイルバッファ（例えば、１ＭＢ）を備える必要があり、そのようなバッファは、チップ領域及びコストを著しく増加させる。
【００３７】
いくつかの実施形態において、複数のプリミティブ及び複数のタイルの交差は低減され、同様に、追加のメモリトラフィック及び複数の計算によりもたらされる無駄を減らす、又は、回避する。
【００３８】
図４Ａは、一実施形態に係る２つのレベルのタイル構造を示す。図４Ａに示されるように、複数の２つのタイルのレイヤが用いられる。高レベルレイヤは、スーパータイル、即ち、４０２及び４０３で形成される構造として定義される。低レベルのタイル構造は、アトミックタイル４０１として定義され、本明細書に説明されるように、アトミックタイル４０１は、分割不可能な矩形の画素ブロックである。同様に、スーパータイルは、複数のアトミックタイルのセットのまとまりである。いくつかの実施形態において、スーパータイルは、必ずしも矩形ではない。スーパータイルは、任意の形状であってよい。しかしながら、スーパータイルのサイズは、タイルバッファのサイズを超えなくてよい。
【００３９】
図４Ａにおいて、アトミックタイルは、１６×１６画素である。矩形のスーパータイル４０２は、２５６×２５６画素であってよい。そのため、矩形のタイル４０２は、２５６個のアトミックタイルを含む。各アトミックタイル４０１は、２次元識別子（ＩＤ）を割り当てられてよく、２次元識別子（ＩＤ）は、そのスクリーンの位置に直接的にマッピングされる。スーパータイルは、（一実施形態に係るスーパータイルテーブルのブロック図を示す）図４Ｂに示されるスーパータイルテーブル（「ＳＴＴ」）を用いて管理されてよい。図４Ｂに示されるように、各ＳＴＴは、スーパータイルＩＤ及びアトミックタイルＩＤ（２次元スクリーンの位置）のリストから成ってよい。
【００４０】
図４Ｃは、一実施形態に係る、プリミティブ交差コストバッファのブロック図を示す。プリミティブ交差コスト（ＰＩＣ）値は、コストに対するメトリックとして定義されてよく、プリミティブは複数のタイルにまたがる。このメトリックは、頂点特性の数及び頂点シェーダの複雑性に比例するものであってよい。実施形態において、ＰＩＣ値は、下記の式によって算出される。        ＰＩＣ＝（αＳ＋βＬ）×Ｖ
【００４１】
上記の式において、「Ｓ」は、バイトで表した頂点要素のサイズを指し、「Ｌ」は、（シェーダロジック内の命令の数に対応する）頂点シェーダの長さであり、α及びβは、ＰＩＣのＳ及びＬの重みであり、それぞれα＋β＝１．０（調整可能）であり、「Ｖ」は、プリミティブの頂点の数である。さらに、同じドローコールに属する複数のプリミティブは、同じＰＩＣ値を有する。
【００４２】
「アトミックタイルのＰＩＣ」（ＰＩＣＴ）は、現在のアトミックタイルにまたがる複数のプリミティブの複数のＰＩＣ値の合計として定義され得る。高いＰＩＣＴは、対応するアトミックタイルにおけるこれらのプリミティブについての高レンダリングコストを意味する。これらの類のアトミックタイルは、スーパータイルの境界として用いられるにはふさわしくない。さらに、各アトミックタイルのＰＩＣＴ値は、図４Ｃに示されるような、プリミティブ交差コストバッファ（ＰＩＣＢ）に格納されてよい。このバッファは、２次元のデータ構造としてインデックスが付されており、例えば、２次元のデータ構造の各要素は、（図４Ｃに示されるような）スクリーンのアトミックタイルにマッピングする。
【００４３】
実施形態において、ＰＩＣＢは、下記の疑似コードにより生成される。
【数１】
0006335335.tif 000002
【００４４】
図５Ａは、一実施形態に係る、サンプルフレームに対するプリミティブ交差コスト結果を示す。この例において、スクリーンのサイズは、１９２０×１０８０画素であり、これは、１６×１６画素のサイズを有する１２０×６８個のアトミックタイルに分割される。図５ＡのパートＡは、ＰＩＣＢの視覚画像であり、明るさは、高いプリミティブ交差コストを意味し、暗さは、低いプリミティブ交差コストを意味する。図５ＡのパートＢは、対応する最終的なレンダリング画像である。したがって、ＰＩＣＢは、１６ビットと仮定した場合、１６×１６個のアトミックタイルに対して１つの数のみを記録し得る。フルＨＤスクリーンの場合、チップバッファに１６ＫＢより小さいコストが掛かる。
【００４５】
実施形態において、スーパータイル生成アルゴリズム（例えば、ロジック１４０により実行される）は、スーパータイル分割メカニズムを得るために用いられる。スーパータイルの境界において、複数の高コストなプリミティブは、互いにまたがることなくスーパータイルにグループ化される。実施形態において、スーパータイルの生成は、ＰＩＣＢに基づく拡張手順である。それは、最高コストのアトミックタイルを小さくて矩形のスーパータイルで覆うことで開始する。アルゴリズムは次に、（例えば、ナップサック問題解法のような）検索ベースのサードパーティアルゴリズムを用いて、その（例えば、４つの）境界からスーパータイルのシードを増やす。スーパータイルのサイズは、オンチップで利用可能なタイルバッファのサイズを超えないでよい。図５Ｂは、一実施形態に係る、検索ベースのスーパータイル生成メカニズムを示す。全てのスーパータイルが生成されるまで、次のスーパータイルの生成は、同じ処理に従う。
【００４６】
図６は、いくつかの実施形態に係る、複数のタイルベースのレンダリング処理を実行する方法６００のフロー図を示す。図１−５Ｃ及び７−９を参照して本明細書に説明される１又は複数のコンポーネント（例えば、グラフィックスロジック１４０を含む）は、図６を参照して説明される１又は複数の処理を実行するのに用いられてよい。
【００４７】
図１−６を参照すると、処理６０２で処理すべき、さらなるドローコールが残っているとの決定に応じて、図３ＢのＶＳロジック３０６−１は、（例えば、頂点位置、頂点法線及び複数のテクスチャコーディネータのような）頂点データをロードし、処理６０４で、プリミティブ方式で複数のスクリーン位置計算を実行する。処理６０６で、（例えば、ロジック１４０の）プリミティブ交差コスト計算モジュールは、各アトミックタイルに対するＰＩＣＴを算出する。実施形態において、処理６０４及び６０６は、パイプライン化されてよく、そうでなければ、同時に実行されてよい（例えば、処理６０４がドローコール＃１を完了し、処理６０６に結果を渡し、処理６０６は、ドローコール＃１を処理し、一方、処理６０４がドローコール＃２を処理すること開始する）。
【００４８】
処理６０２で処理すべき、さらなるドローコールが残っていない場合、処理６０８は、もっと多くのスーパータイルを生成する必要があるか否かを決定する。処理６１０で、複数のスーパータイルの形状及びレイアウトが、（例えば、ロジック１４０の）スーパータイル生成モジュールにより決定される。実施形態において、処理６１０への入力は、（例えば、図４Ｃの）ＰＩＣＢから来る。さらに、様々な実施形態において、方法６００は、複数の要件に従って、専用のハードウェア又は一体化されたシェーダ上で実行されてよい。１つのスーパータイルが生成された後に、スーパータイルテーブルは、処理６１２における処理のためにＶＳロジック（例えば、図３ＢのＶＳロジック３０６−２）に送信される。処理６１４で、次の処理（例えば、図３Ｂのラスタロジック３１０による画素シェーディング（ＰＳ））がタイル方式で実行される。実施形態において、処理６１０は、パイプライン化されてよく、そうでなければ、処理６１２及び６１４と同時に動作してよい。
【００４９】
図５Ｃを参照すると、一実施形態に係る、タイルバッファからフレームバッファへの画像データのフローが示される。図５Ｃに示されるように、スーパータイルをレンダリングするときに、デプス及び色の結果がオンチップのタイルバッファにアトミックタイル毎にキャッシュされる。このスーパータイルに関する全てのドローコールが完全にレンダリングされたとき、最終的な結果が、（本明細書に説明されるディスプレイデバイスのような）その後のディスプレイデバイス上の提示のためにオンチップのタイルバッファからフレームバッファに格納される。
【００５０】
図７は、一実施形態に係る、コンピューティングシステム７００のブロック図を示す。コンピューティングシステム７００は、相互接続ネットワーク（又はバス）７０４を介して通信する１又は複数の中央処理装置（ＣＰＵ）７０２又はプロセッサを含んでよい。１又は複数のプロセッサ７０２は、汎用プロセッサ、（コンピュータネットワーク７０３を介して通信されるデータを処理する）ネットワークプロセッサ、又は、（縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ若しくは複合命令セットコンピュータ（ＣＩＳＣ）を含む）他の複数のタイプのプロセッサを含んでよい。
【００５１】
さらに、１又は複数のプロセッサ７０２は、シングル又はマルチコア設計を有してよい。マルチコア設計を有する１又は複数のプロセッサ７０２は、異なる複数のタイプのプロセッサコアを同じ集積回路（ＩＣ）ダイ上に集積してよい。また、マルチコア設計を有する１又は複数のプロセッサ７０２は、対称又は非対称マルチプロセッサとして実装されてよい。実施形態において、プロセッサ７０２のうちの１又は複数は、図１の複数のプロセッサ１０２と同じ又は類似であってよい。例えば、システム７００の１又は複数のコンポーネントは、図１−６を参照して説明されたロジック１４０を含んでよい。また、図１−６を参照して説明された複数の処理は、システム７００の１又は複数のコンポーネントにより実行されてよい。
【００５２】
また、チップセット７０６は、相互接続ネットワーク７０４と通信してよい。チップセット７０６は、グラフィックスメモリコントロールハブ（ＧＭＣＨ）７０８を含んでよく、ＧＭＣＨ７０８は、（図７に示されるもののような）システム７００の様々なコンポーネント内に配置されてよい。ＧＭＣＨ７０８は、（図１のメモリ１１４と同じ又は類似であってよい）メモリ７１２と通信するメモリコントローラ７１０を含んでよい。メモリ７１２は、ＣＰＵ７０２又はコンピューティングシステム７００に含まれる任意の他のデバイスにより実行され得る複数の命令のシーケンスを含むデータを格納してよい。一実施形態において、メモリ７１２は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）又は他の複数のタイプのストレージデバイスのような、１又は複数の揮発性ストレージ（又はメモリ）デバイスを含んでよい。ハードディスクのような不揮発性メモリも用いられてよい。複数の追加的なデバイスは、複数のＣＰＵ及び／又は複数のシステムメモリのような相互接続ネットワーク７０４を介して通信し得る。
【００５３】
また、ＧＭＣＨ７０８は、ディスプレイデバイス７１６と通信するグラフィックスインタフェース７１４を含んでよい。一実施形態において、グラフィックスインタフェース７１４は、アクセラレーティッドグラフィックスポート（ＡＧＰ）又はペリフェラルコンポーネントインターコネクト（ＰＣＩ）（若しくはＰＣＩエクスプレス（ＰＣＩｅ）インタフェース）を介してディスプレイデバイス７１６と通信してよい。実施形態において、（フラットパネルディスプレイのような）ディスプレイ７１６は、例えば、ビデオメモリ又はシステムメモリのようなストレージデバイスに格納される画像のデジタル表現を、ディスプレイ７１６により解釈及び表示される複数のディスプレイ信号に変換する信号変換器を通じてグラフィックスインタフェース７１４と通信してよい。ディスプレイデバイスによって生成される複数のディスプレイ信号は、ディスプレイ７１６によって解釈され、その後ディスプレイ７１６上で表示される前に、様々な制御デバイスを通じて渡されてもよい。
【００５４】
ハブインタフェース７１８は、ＧＭＣＨ７０８及び入力／出力コントロールハブ（ＩＣＨ）７２０が通信できるようにしてよい。ＩＣＨ７２０は、コンピューティングシステム７００と通信する（複数の）Ｉ／Ｏデバイスにインタフェースを提供してよい。ＩＣＨ７２０は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）ブリッジ、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、又は、他の複数のタイプの周辺ブリッジ若しくはコントローラのような周辺ブリッジ（若しくはコントローラ）７２４を通じて、バス７２２と通信してよい。ブリッジ７２４は、ＣＰＵ７０２と複数の周辺デバイスとの間にデータパスを提供してよい。他の複数のタイプのトポロジが用いられてよい。また、複数のバスは、例えば、複数ブリッジ又はコントローラを通じてＩＣＨ７２０と通信してよい。さらに、様々な実施形態において、ＩＣＨ７２０と通信する複数の他の周辺機器は、統合ドライブエレクトロニクス（ＩＤＥ）若しくは（複数の）スモールコンピュータシステムインターフェース（ＳＣＳＩ）ハードドライブ、（複数の）ＵＳＢポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー（登録商標）ディスクドライブ、デジタル出力サポート（例えば、デジタルビデオインタフェース（ＤＶＩ））、又は、複数の他のデバイスを含んでよい。
【００５５】
バス７２２は、オーディオデバイス７２６、１又は複数のディスクドライブ７２８、及び、（コンピュータネットワーク７０３と通信する）ネットワークインタフェースデバイス７３０と通信してよい。他のデバイスがバス７２２を介して通信してよい。また、いくつかの実施形態において、（ネットワークインタフェースデバイス７３０のような）様々なコンポーネントがＧＭＣＨ７０８と通信してよい。加えて、プロセッサ７０２及びＧＭＣＨ７０８は、組み合わせて単一のチップを形成してよい。さらに、他の実施形態において、グラフィックスアクセラレータは、ＧＭＣＨ７０８内に含まれてよい。
【００５６】
さらに、コンピューティングシステム７００は、揮発性及び／又は不揮発性メモリ（又はストレージ）を含んでよい。例えば、不揮発性メモリは、下記の、リードオンリメモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的ＥＰＲＯＭ（ＥＥＰＲＯＭ）、ディスクドライブ（例えば、７２８）、フロッピー（登録商標）ディスク、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、フラッシュメモリ、光磁気ディスク、又は電子データ（例えば、複数の命令を含む）を格納可能な他の複数のタイプの不揮発性機械可読媒体のうちの１又は複数を含んでよい。
【００５７】
図８は、一実施形態に係る、ポイントツーポイント（ＰｔＰ）構成に配置されるコンピューティングシステム８００を示す。特に、図８は、プロセッサ、メモリ及び入力／出力デバイスが複数のポイントツーポイントインタフェースにより相互接続されるシステムを示す。図１−７を参照して説明された複数の処理システム８００の１又は複数のコンポーネントにより実行されてよい。
【００５８】
図８に示されるように、システム８００は、いくつかのプロセッサを含んでよく、明確にするために、そのうちの２つ、プロセッサ８０２及び８０４のみが示されている。プロセッサ８０２及び８０４は、それぞれ、メモリ８１０及び８１２との通信を可能にするローカルメモリコントローラハブ（ＭＣＨ）８０６及び８０８を含んでよい。メモリ８１０及び／又は８１２は、図７のメモリ７１２を参照して説明されるもののような様々なデータを格納してよい。
【００５９】
実施形態において、プロセッサ８０２及び８０４は、図７を参照して説明されたプロセッサ７０２のうちの１つであってよい。プロセッサ８０２及び８０４は、ＰｔＰインタフェース回路８１６及び８１８をそれぞれ用いて、ポイントツーポイント（ＰｔＰ）インタフェース８１４を介してデータを交換してよい。また、プロセッサ８０２及び８０４は、それぞれ、ポイントツーポイントインタフェース回路８２６、８２８、８３０及び８３２を用いて個々のＰｔＰインタフェース８２２及び８２４を介してチップセット８２０とデータを交換してよい。チップセット８２０は、さらに、例えば、ＰｔＰインタフェース回路８３７を用いてグラフィックスインタフェース８３６を介してグラフィックス回路８３４とデータを交換してよい。
【００６０】
少なくとも１つの実施形態は、プロセッサ８０２及び８０４の中に提供されてよい。例えば、システム８００の１又は複数のコンポーネントは、プロセッサ８０２及び８０４内に配置されるものを含む、図１−７のロジック１４０を含んでよい。しかしながら、他の実施形態は、図８のシステム８００内の他の回路、ロジックユニット又はデバイスに存在してよい。さらに、他の実施形態は、図８に示されるいくつかの回路、ロジックユニット又はデバイスにわたって分散されてよい。
【００６１】
チップセット８２０は、ＰｔＰインタフェース回路８４１を用いてバス８４０と通信してよい。バス８４０は、バスブリッジ８４２及びＩ／Ｏデバイス８４３のような１又は複数のデバイスと通信してよい。バス８４４を介して、バスブリッジ８４２は、キーボード／マウス８４５、（コンピュータネットワーク７０３と通信し得るモデム、ネットワークインタフェースデバイス又は他の通信デバイスのような）複数の通信デバイス８４６、オーディオＩ／Ｏデバイス８４７、及び／又は、データストレージデバイス８４８のような他のデバイスと通信してよい。データストレージデバイス８４８は、プロセッサ８０２及び／又は８０４により実行され得るコード８４９を格納してよい。
【００６２】
いくつかの実施形態において、本明細書に説明される複数のコンポーネントのうちの１又は複数は、システムオンチップ（ＳＯＣ）デバイスとして具現化され得る。図９は、一実施形態に係るＳＯＣパッケージのブロック図を示す。図９に示されるように、ＳＯＣ９０２は、１又は複数の中央処理装置（ＣＰＵ）コア９２０、１又は複数のグラフィックスプロセッサユニット（ＧＰＵ）コア９３０、入力／出力（Ｉ／Ｏ）インタフェース９４０及びメモリコントローラ９４２を含む。ＳＯＣパッケージ９０２の様々なコンポーネントは、他の図を参照して本明細書に説明されるような相互接続又はバスに結合されてよい。また、ＳＯＣパッケージ９０２は、他の図を参照して本明細書に説明されるもののような、より多くの又はより少ないコンポーネントを含んでよい。さらに、ＳＯＣパッケージ９２０の各コンポーネントは、例えば、本明細書の他の図を参照して説明されるように、１又は複数の他のコンポーネントを含んでよい。一実施形態において、ＳＯＣパッケージ９０２（及びその複数のコンポーネント）は、１又は複数の集積回路（ＩＣ）ダイに提供され、例えば、それらは単一の半導体デバイスにパッケージ化される。
【００６３】
図９に示されるように、ＳＯＣパッケージ９０２は、メモリコントローラ９４２を介して、（他の図を参照して本明細書に説明されるメモリと類似又は同一であってよい）メモリ９６０に結合される。実施形態において、メモリ９６０（又はその一部）は、ＳＯＣパッケージ９０２上に統合され得る。
【００６４】
Ｉ／Ｏインタフェース９４０は、例えば、他の図を参照して本明細書に説明されるような相互接続及び／又はバスを介して１又は複数のＩ／Ｏデバイス９７０に結合されてよい。（複数の）Ｉ／Ｏデバイス９７０は、キーボード、マウス、タッチパッド、ディスプレイ、（カメラ又はカムコーダ／ビデオレコーダのような）画像／ビデオキャプチャデバイス、タッチスクリーン、スピーカ等のうちの１又は複数を含んでよい。さらに、実施形態において、ＳＯＣパッケージ９０２は、ロジック１４０を包含／集積し得る。代替的に、ロジック１４０は、ＳＯＣパッケージ９０２の外側に（即ち、別個のロジックとして）提供されてよい。
【００６５】
下記の複数の実施例は、さらなる実施形態に関する。実施例１は、ロジックを備える装置を含み、ロジックは、頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて、画像の各アトミックタイルに対するプリミティブ交差コスト値を決定するハードウェアロジックを少なくとも部分的に有する。実施例２は、実施例１の装置を含み、アトミックタイルは、分割不可能な矩形の画素ブロックを含む。実施例３は、実施例１の装置を含み、ロジックは、さらに、各アトミックタイル値に対するプリミティブ交差コスト値に基づいてスーパータイルを生成する。実施例４は、実施例３の装置を含み、ロジックは、さらに、スーパータイルに１又は複数の頂点シェーディング処理を実行する。実施例５は、実施例３の装置を含み、ロジックは、さらに、スーパータイルに１又は複数のラスタ処理を実行する。実施例６は、実施例１の装置を含み、ロジックは、さらに、頂点データをロードして、複数のスクリーン位置計算を実行し、頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む。実施例７は、実施例１の装置を含み、ロジックは、頂点要素のサイズ、頂点シェーダの長さ、頂点の数、頂点要素のサイズの重み及び頂点シェーダの長さの重みに少なくとも部分的に基づいてプリミティブ交差コスト値を決定する。実施例８は、実施例１の装置を含み、プロセッサは、ロジックを有する。実施例９は、実施例１の装置を含み、１又は複数のプロセッサコア、ロジック又はメモリを有するプロセッサは、単一の集積回路ダイ上にある。
【００６６】
実施例１０は、方法を含み、方法は、頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて画像の各アトミックタイルに対するプリミティブ交差コスト値を決定する段階を備える。実施例１１は、実施例１０の方法を含み、さらに、各アトミックタイル値に対するプリミティブ交差コスト値に基づいてスーパータイルを生成する段階を備える。実施例１２は、実施例１１の方法を含み、さらに、スーパータイルに１又は複数の頂点シェーディング処理を実行する段階を備える。実施例１３は、実施例１１の方法を含み、さらに、スーパータイルに１又は複数のラスタ処理を実行する段階を備える。実施例１４は、実施例１０の方法を含み、さらに、頂点データをロードする段階と、複数のスクリーン位置計算を実行する段階とを備え、頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む。実施例１５は、実施例１０の方法を含み、さらに、頂点要素のサイズ、頂点シェーダの長さ、頂点の数、頂点要素のサイズの重み及び頂点シェーダの長さの重みに少なくとも部分的に基づいてプリミティブ交差コスト値を決定する段階を備える。
【００６７】
実施例１６は、プロセッサ上で実行されるときに、実施例１０から１５のいずれか１の１又は複数の処理を実行するようにプロセッサを構成する、１又は複数の命令を備えるコンピュータ可読媒体を含む。
【００６８】
実施例１７は、システムを含み、システムは、１又は複数のプロセッサコアを有するプロセッサと、１又は複数のプロセッサコアのうちの少なくとも１つによりアクセスされるべく、シーンの少なくとも１つのフレームに対応するデータを格納するメモリと、シーンの少なくとも１つのフレームを提示するディスプレイデバイスと、頂点要素のサイズ、頂点シェーダの長さ及びフレームのプリミティブの頂点の数に少なくとも部分的に基づいてフレームの各アトミックタイルに対するプリミティブ交差コスト値を決定するロジックとを備える。実施例１８は、実施例１７のシステム、アトミックタイルは、分割不可能な矩形の画素ブロックを含む。実施例１９は、実施例１７のシステムを含み、ロジックは、さらに、各アトミックタイル値に対するプリミティブ交差コスト値に基づいてスーパータイルを生成する。実施例２０は、実施例１９のシステムを含み、ロジックは、さらに、スーパータイルに１又は複数の頂点シェーディング処理を実行する。実施例２１は、実施例１９のシステムを含み、ロジックは、さらに、スーパータイルに１又は複数のラスタ処理を実行する。実施例２２は、実施例１７のシステムを含み、ロジックは、さらに、頂点データをロードして、複数のスクリーン位置計算を実行し、頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む。実施例２３は、実施例１７のシステムを含み、ロジックは、頂点要素のサイズ、頂点シェーダの長さ、頂点の数、頂点要素のサイズの重み及び頂点シェーダの長さの重みに少なくとも部分的に基づいてプリミティブ交差コスト値を決定する。実施例２４は、実施例１７のシステムを含み、プロセッサは、ロジックを有する。実施例２５は、実施例１７のシステムを含み、プロセッサコア、ロジック又はメモリのうちの１又は複数は、単一の集積回路ダイ上にある。
【００６９】
実施例２６は、プロセッサ上で実行されるときに、頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて、画像の各アトミックタイルに対するプリミティブ交差コスト値を決定する１又は複数の処理を実行するようにプロセッサを構成する１又は複数の命令を備えるコンピュータ可読媒体を含む。実施例２７は、実施例２６のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、各アトミックタイル値に対するプリミティブ交差コスト値に基づいてスーパータイルの生成を行わせる１又は複数の処理を実行するようにプロセッサを構成する１又は複数の命令を備える。実施例２８は、実施例２７のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、スーパータイルに１又は複数の頂点シェーディング処理の動作を行わせる１又は複数の処理を実行するようにプロセッサを構成する１又は複数の命令を備える。実施例２９は、実施例２７のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、スーパータイルに１又は複数のラスタ処理の動作を行わせる１又は複数の処理を実行するようにプロセッサを構成する１又は複数の命令を備える。実施例３０は、実施例２６のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、頂点データのロード及び複数のスクリーン位置計算の実行を行わせる１又は複数の処理を実行するようにプロセッサを構成する１又は複数の命令を備え、頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む。実施例３１は、実施例２６のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、頂点要素のサイズ、頂点シェーダの長さ、頂点の数、頂点要素のサイズの重み及び頂点シェーダの長さの重みに少なくとも部分的に基づいてプリミティブ交差コスト値の決定を行わせる１又は複数の処理を実行するようにプロセッサを構成する１又は複数の命令を備える。
【００７０】
実施例３２は、任意の先行する実施例で説明された方法を実行するための手段を備える装置を含む。
【００７１】
実施例３３は、実行されるときに、任意の先行する実施例で説明された方法を実装し、又は、装置を実現する複数の機械可読命令を含む機械可読ストレージ。
【００７２】
様々な実施形態において、例えば、図１−９を参照して、本明細書において説明された複数の処理は、ハードウェア（例えば、ロジック回路）、ソフトウェア、ファームウェア、又は、それらの組み合わせとして実装されてよい。また、それらは、例えば、コンピュータを、本明細書において説明された処理を実行するようにプログラムするために用いられる複数の命令（又は複数のソフトウェア手順）をそれに格納している、有形の（例えば、非一時的な）機械可読又はコンピュータ可読媒体を含むコンピュータプログラム製品として提供されてよい。機械可読媒体は、図１−９に関連して説明されるもののようなストレージデバイスを含んでよい。
【００７３】
さらに、そのようなコンピュータ可読媒体は、コンピュータプログラム製品としてダウンロードされてよい。プログラムは、搬送波又は他の伝搬媒体において提供されるデータ信号を用いて、通信リンク（例えば、バス、モデム、又は、ネットワーク接続。）を介して、リモートコンピュータ（例えば、サーバ）から、要求しているコンピュータ（例えば、クライアント）へと転送されてよい。
【００７４】
明細書における「一実施形態」又は「実施形態」への言及は、当該実施形態に関連して説明された特定の特徴、構造及び／又は特性が、少なくともある実装の中に含まれ得ることを意味する。
【００７５】
明細書中の様々な箇所における「一実施形態において」との語句の複数の表現は、全て、同一の実施形態を参照していてもよく、していなくてもよい。
【００７６】
また、説明及び複数の請求項において、「結合され」及び「接続され」という用語が、それらの派生語と共に使用されてよい。いくつかの実施形態において、「接続され」とは、２又はそれより多くの要素が、互いに、直接物理的に又は電気的に接触していることを示すために用いられてよい。「結合され」とは、２又はそれより多くの要素が、直接物理的に又は電気的に接触していることを意味してよい。しかしながら、「結合され」はまた、２又はそれより多くの要素が、互いに直接接触してはいないが、それでもなお、互いに協働又はインタラクトし得ることを意味してよい。このように、複数の実施形態は、複数の構造的特徴及び／又は複数の方法論的動作に特有の言い回しで説明されているが、特許の請求される主題は、記載されている特定の機能又は動作に限定されなくてもよいことが理解されよう。むしろ、特定の機能及び動作は、特許請求される主題を実装するサンプル形式として開示されている。
【図１】
0006335335.tif 000003
【図２】
0006335335.tif 000004
【図３Ａ】
0006335335.tif 000005
【図３Ｂ】
0006335335.tif 000006
【図４Ａ】
0006335335.tif 000007
【図４Ｂ】
0006335335.tif 000008
【図４Ｃ】
0006335335.tif 000009
【図５Ａ】
0006335335.tif 000010
【図５Ｂ】
0006335335.tif 000011
【図５Ｃ】
0006335335.tif 000012
【図６】
0006335335.tif 000013
【図７】
0006335335.tif 000014
【図８】
0006335335.tif 000015
【図９】
0006335335.tif 000016