説明

タイルベースのグラフィックスシステム及びこのようなシステムの動作方法

【課題】複数のタイルを含むグラフィックスデータ生成のための、タイルベースのグラフィックスシステムと、その動作方法、及びグラフィックス処理回路が提供される。
【解決手段】処理回路は、第1及び第2動作モード間で切換えられる。第1モードで処理回路は、フレーム用のグラフィックスプリミティブを受け取り、ビニング動作を行う。これにより複数のタイルそれぞれについて、グラフィックスプリミティブのうちタイルと交差するものを特定するリストを決定する。第2モードで処理回路は、割り当てられたタイルのタイルリストを受信し、ラスタライゼーション動作を行う。この動作ではタイルリストに応じて、割り当てられたタイルについてグラフィックスデータを生成する。その結果、ビニング動作およびラスタライゼーション動作で同じ処理単位を使用でき、性能およびエネルギー消費を向上でき、グラフィックスシステムのサイズも大幅に低減する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タイルベースのグラフィックスシステム及びこのようなシステムの動作方法に関する。
【背景技術】
【0002】
タイルベースのグラフィックスシステムが開発されており、各フレームを表示する為に、前記フレームをタイルと呼ばれる複数領域に分割する。フレーム内に各グラフィックスプリミティブ(典型的には点、線または三角形)を表示する為に、ビニング単位を提供する。ビニング単位は、多様なタイルのうち当該グラフィックスプリミティブが交差するものを決定するためのビニング動作を行うために用いられる。詳細には、ビニング単位は典型的には、複数のビン(例えば、各タイルにつき1つのビン)を指定し、当該グラフィックスプリミティブ用の座標データに基づいて、当該グラフィックスプリミティブが交差するタイル(単数または複数)を決定し、各交差するタイルについて、関連ビン内のグラフィックスプリミティブの識別子を記録する。
【0003】
各タイルについて別個のビンが提供されるよう、ビンとタイルとの間には1対1の関係があり得るものの、ビンをこのように配置する必要はなく、その代わりに、複数のタイルを個々のビンと関連付けることもできる。その結果、保存すべきビニングデータ量を低減することができる。しかし、実際のビンがビニング単位でどのように構築されるかに関係無く、ビニング動作完了時には、フレーム内に表示すべきグラフィックスプリミティブ全てを考慮する必要があり、ビニング動作によって得られたビニングデータにより、各タイル用のタイルリストが提供される。詳細には、前記タイルリストにより、対応するタイルについて、当該タイルと交差するグラフィックプリミティブが特定される。
【0004】
ビニング動作が終了した場合にのみ、グラフィックスシステムの完成が可能となり、その後、各タイルについてグラフィックスデータ(本明細書中画素データとも呼ぶ)が生成される。詳細には、この段階において、グラフィックスシステムのラスタライゼーション単位に特定のタイルが割り当てられ、当該タイルに適用可能なタイルリストに応じて、前記割り当てられたタイルについてグラフィックスデータが生成される。前記タイルリスト内において特定されたグラフィックスプリミティブ用に、ラスタライゼーションプロセスにより、前記多様なグラフィックスプリミティブが含まれる画素が決定され、その後、各画素について画素データを生成するためのシェーダーアルゴリズムが適用される。
【0005】
ラスタライゼーション段階においては、各タイルについて別個のタイルリストがあるため、前記グラフィックスシステム内に複数のラスタライゼーションエンジンが設けられている場合、異なるタイルを異なるラスタライゼーションエンジンに割り当てることによりラスタライゼーションプロセスの並列化が可能となり、これにより性能向上が可能となる。
【0006】
しかし、ラスタライゼーション実施の前には、ビニング動作を完了させることが必要な場合が多い。なぜならば、ビニング動作が完了した場合にのみ、よって当該フレーム用の全グラフィックスプリミティブを考慮した場合にのみ任意の特定のタイル用のタイルリストを完了対象として考慮できるからである。ビニング動作を行うのに必要な専用ビニング単位は、ハードウェアビニング単位を用いたグラフィックスシステム内の大きな領域を占有する。ビニング動作をソフトウェアによって行うシステムの場合でも、ビニングインプレメンテーションは、グラフィックスシステムの他の部分から完全に別個である。さらに、ハードウェアインプレメンテーションの場合であっても、またはソフトウェアビニングインプレメンテーションの場合であっても、ビニング動作には典型的には長時間が必要となることが多く、そのため、グラフィックスレンダリングプロセスの性能全体に悪影響を及ぼす。
よって、向上したタイルベースのグラフィックスシステムおよびこのようなシステムの動作方法を提供することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【0007】
第1の局面から鑑みて、本発明は、複数のタイルを含むフレーム用のグラフィックスデータを生成する、タイルベースのグラフィックスシステムを提供する。
【課題を解決するための手段】
【0008】
前記システムは、前記フレーム用の複数のグラフィックスプリミティブを受信する入力手段と、第1の動作モードおよび第2の動作モードで動作するように構成されたグラフィックス処理回路であって、前記第1の動作モードにおいて、前記グラフィックス処理回路は、前記入力手段から前記複数のグラフィックスプリミティブを受け取り、前記グラフィックス処理回路は、前記複数のタイルそれぞれについて、当該タイルと交差する前記複数のグラフィックスプリミティブから前記グラフィックスプリミティブを特定するタイルリストを決定するためのビニング動作を行うように構成され、前記第2の動作モードにおいて、前記グラフィックス処理回路は、割り当てられたタイル用の前記タイルリストを受け取り、前記割り当てられたタイル用のグラフィックスデータを前記タイルリストに応じて生成するためのラスタライゼーション動作を行うように構成される、グラフィックス処理回路と、前記第1の動作モードと前記第2の動作モードとの間での前記グラフィックス処理回路の切り換えを制御するための制御回路とを含む。
【0009】
本発明によれば、第1の動作モードと第2の動作モードとの間での切り換えが可能なグラフィックス処理回路が提供される。前記第1の動作モードにおいて、前記グラフィックス処理回路は、表示すべき複数のグラフィックスプリミティブを受け取り、各タイルについてタイルリストを生成するためのビニング動作を行う。前記第2の動作モードにおいて、前記グラフィックス処理回路は、特定のタイルについてタイルリストを受け取り、当該タイル用のグラフィックスデータを生成するためのラスタライゼーション動作を行う。
【0010】
本発明の発明者によれば、グラフィックスシステムにおいて行われるビニング動作とラスタライゼーション動作との間には類似性がある。詳細には、双方のプロセスにおいて、矩形領域に対するジオメトリックプリミティブ(ビニング動作の場合はタイル、ラスタライゼーション動作の場合は画素)の交差点を計算した後、当該矩形領域(ビニング動作の場合はタイルリスト、ラスタライゼーション動作の場合は画素データ)用の一部の保存データを生成する。この見解に基づいて発明者が得たグラフィックス処理単位は、1つの動作モードにおいてビニング動作を行いかつ別の動作モードにおいてラスタライゼーション動作を行うように構成することが可能である。
【0011】
一実施形態において、前記グラフィックス処理回路は、複数のメモリブロックを含む作業メモリを含む。前記第1の動作モードにおいて、各メモリブロックはタイルと関連付けられ、前記ビニング動作時において、各メモリブロックを用いて、前記複数のグラフィックスプリミティブのうち、前記関連付けられたタイルと交差するものを記録する。前記第2の動作モードにおいて、各メモリブロックは、前記割り当てられたタイルの画素と関連付けられ、前記ラスタライゼーション動作時において、各メモリブロックを用いて、前記関連付けられた画素用に生成された画素データを保存する。よって、このような実施形態によれば、双方の動作モードにおいて同一メモリ構造を用いることができ、動作モードに応じて、各メモリブロック中に異なる情報を保存する。その結果、同様に、必要メモリ量の低減による大幅なサイジングの改善が得られる。さらに、作業メモリを(システムメモリの一部としてではなく)グラフィックス処理回路に対して局所的に設けたアプローチを用いた場合、必要なシステムメモリアクセス数が大幅に低減する。これは、ビニング動作において特に当てはまる。すなわち、典型的な先行技術システムにおいては、タイルと交差するグラフィックスプリミティブが決定されるたびに、ビニング単位とシステムメモリとの間の通信が行われるため、ビン更新が必要であった。
【0012】
前記グラフィックス処理回路は、多様な様態で形成可能である。しかし、一実施形態において、前記グラフィックス処理回路は、前記第1の動作モードを支援するように変更されたラスタライゼーション回路であり、前記作業メモリは、前記ラスタライゼーション回路が前記ラスタライゼーション動作を行う際に用いる前記ラスタライゼーション回路によって用いられるタイルメモリである。前記作業メモリは、前記第1の動作モード時において、前記複数のグラフィックスプリミティブのうち、各メモリブロックと関連付けられた前記タイルと交差するものを記録するために再度利用されるように構成される。典型的なラスタライゼーション回路は、グラフィックスプリミティブと個々の画素との交差点の検出において高効率であり、前記グラフィックス処理回路がビニング動作モードも支援するように改変された場合、これらの効率を用いれば、ビニング動作において専用ビニング単位を用いる公知の先行技術アプローチと比較して、ビニング動作時に費やされるビニング動作の性能と、前記電力消費とを向上させることが可能になる。さらに、典型的なラスタライゼーション回路は、タイルメモリを備える。前記タイルメモリは、前記ラスタライゼーション動作時においてタイルの各画素について画素データを記録するために用いられ、前記グラフィックス処理回路が前記第1の動作モードにおいて動作して前記ビニング動作を行う際に生成されたタイルリスト情報を当該タイルメモリを再度利用して保存することにより、典型的な公知の先行技術における専用ビニング単位を用いたビニング動作を行う際に必要なメモリアクセスと比較して、大幅な性能向上が可能となる。
【0013】
前記グラフィックス処理回路が改変されたラスタライゼーション回路によって形成される実施形態において、前記改変されたラスタライゼーション回路は、多様な形態をとり得る。しかし、一実施形態において、前記ラスタライゼーション回路は、選択回路を含む。前記選択回路は、単位のアレイから個々の単位を選択する。前記第1の動作モードにおいて、各単位は、前記タイルのうち1つを含む。前記第2の動作モードにおいて、各単位は、前記割り当てられたタイルの画素を含む。前記ラスタライゼーション回路はまた、単位処理回路も含む。前記単位処理回路は、選択された単位について、前記単位と関連付けられるべき出力データを計算する。前記第1の動作モードにおいて、前記出力データは、前記複数のグラフィックスプリミティブのうち、前記選択された単位と交差するものを示す。前記第2の動作モードにおいて、前記出力データは、前記選択された単位の画素データを提供する。前記選択された単位は、前記選択された単位が前記複数のグラフィックスプリミティブと交差する様態に依存する。
【0014】
1つの特定の実施形態において、前記第1の動作モードにおいて、前記単位処理回路は、ジオメトリ交差アルゴリズムを実行する。前記第2の動作モードにおいて、前記単位処理回路は、サンプルベースのシェーディングアルゴリズムを実行する。よって、このような実施形態において、前記ラスタライゼーション回路に必要な改変は比較的少ないことが分かる。詳細には、前記選択回路によって処理される単位は、前記動作モードに応じて異なる意味を持つだけであり、前記単位処理回路は、前記動作モードに応じて異なるアルゴリズムを実行する。
【0015】
2つの動作モード間において作業メモリを共有する実施形態において、前記作業メモリを共有する様態(詳細には、前記第1の動作モードにおいて前記作業メモリが用いられる様態)は、多様な形態をとり得る。しかし、一実施形態において、各メモリブロックはnビットを含み、前記第1の動作モード時において、前記グラフィックス処理回路は、n個のグラフィックスプリミティブになるまで前記ビニング動作を行う。よって、このような実施形態において、特定の画素用の画素データを保存するためのラスタライゼーション動作を行う際に用いられる前記nビットのデータは、前記第1の動作モードにおいて、n個のグラフィックスプリミティブになるまでビニング情報を保存する際に再利用される。詳細には、一実施形態において、前記メモリブロック内の各ビット位置は、特定のグラフィックスプリミティブと関連付けられ、前記ビットの値は、前記グラフィックスプリミティブが前記メモリブロックと関連付けられた前記タイルと交差するものとして決定されたか否かに応じて、セットまたはクリアされる。
【0016】
一実施形態において、前記複数のグラフィックスプリミティブがnを超える場合、前記制御回路は、前記第1の動作モードにおいて前記グラフィックス処理回路に前記ビニング動作を反復的に行わせるように構成され、各反復において、異なるn個のプリミティブが考慮される。
【0017】
一実施形態において、フレーム中のタイル数がタイル中の画素数を超えた場合、前記制御回路は、前記第1の動作モードにおいて前記グラフィックス処理回路に前記ビニング動作を反復的に行わせるように構成され、各反復において、前記フレームの異なる領域が考慮され、各領域のタイル数は、タイル内の画素数を超えない。
【0018】
典型的には、前記ビニング動作を反復的に行う必要がある場合、前記作業メモリの内容が各反復間においてビンメモリに書き込まれ、このような内容は、例えば各反復時における前記ビンメモリの内容の更新に用いられ、これにより、前記必要な反復が完了するまで、前記ビンメモリは、各タイル用の完全なタイルリストを含む。
【0019】
一実施形態において、前記グラフィックス処理回路は、複数のグラフィックス処理エンジンを含む。前記複数のグラフィックス処理エンジンはそれぞれ、前記制御回路により、前記第1の動作モードまたは前記第2の動作モードにおいて制御される。1つのこのような実施形態において、前記制御回路は、前記グラフィックス処理エンジンのうち複数を前記第1の動作モードにし、前記フレームの異なる領域をこれらのグラフィックス処理エンジンのうち異なるものに割り当てるように、構成され、これにより、前記複数のグラフィックス処理エンジンにわたって前記ビニング動作が並行に行われる。ビニング動作実行において専用ビニング単位が用いられていた典型的な先行技術システムの場合、ビニング動作は、グラフィックスパイプライン内のシリアライゼーション点を表していたが、本発明のこのような実施形態によれば、ビニング動作のシリアライゼーションが不要となるため、複数のグラフィックス処理エンジンにわたってビニング動作を並行に実施可能となり、これにより、性能が大幅に向上する。
【0020】
一実施形態において、前記グラフィックス処理回路によって生成されたタイルリストはビット列を含み、各ビットは、対応するグラフィックスプリミティブと、前記対応するグラフィックスプリミティブが前記関連付けられたタイルと交差するか否かを示す値とに関連付けられる。このような実施形態において、前記タイルベースのグラフィックスシステムは、マージングエンジンをさらに含み得る。前記マージングエンジンは、タイルリストと各グラフィックスプリミティブの記述とを受け取り、複数のベクトルを含むベクトルファイルを生成する。各ベクトルは、前記関連付けられたタイルと交差するグラフィックスプリミティブのうちの1つの記述を提供する。前記ベクトルファイルは、前記グラフィックス処理回路が前記第2の動作モードにおいて前記関連付けられたタイル用のグラフィックスデータを生成するように動作する際に、前記グラフィックス処理回路によって用いられる。
【0021】
このようなマージングエンジンの利用を通じて最適化が提供可能となり、これにより、前記グラフィックス処理回路が前記第2の動作モードで動作する際に用いるベクトルファイルは、前記関連付けられたタイル用のグラフィックスデータの生成に必要な最小量の情報のみを含むことによって、関連する性能が向上するように導かれる。
【0022】
前記マージングエンジンは、多様な様態で提供可能である。しかし、一実施形態において、前記マージングエンジンは、前記グラフィックス処理回路によって提供されるシェーディングエンジンを含む。
【0023】
前記グラフィックス処理回路が前記第1の動作モードをとっている際に前記ビニング動作を行うために前記グラフィックス処理回路内に設けられる構造は、多様な形態をとり得る。しかし、一実施形態において、前記グラフィックス処理回路は、前記ビニング動作を行うためのシェーディングエンジンを含む。
【0024】
第2の局面から見て、本発明は、複数のタイルを含むフレーム用のグラフィックスデータを生成するようにデータ処理システムを動作させる方法を提供する。前記方法は、前記グラフィックスデータを生成するプロセスにおいて、第1の動作モードと第2の動作モードとの間でグラフィックス処理論理を選択的に切り換えるステップと、前記第1の動作モードにおいて、前記グラフィックス処理論理が前記フレーム用の複数のグラフィックスプリミティブを受け取ると、前記複数のタイルそれぞれについて、前記複数のグラフィックスプリミティブから前記タイルと交差するものを前記グラフィックスプリミティブを特定するタイルリストから決定するためのビニング動作を行うステップと、前記第2の動作モードにおいて、前記グラフィックス処理論理が割り当てられたタイル用の前記タイルリストを受け取ると、前記タイルリストに応じて前記割り当てられたタイル用のグラフィックスデータを生成するためのラスタライゼーション動作を行うステップと、前記ラスタライゼーション動作が前記タイルそれぞれについて行われた際、前記フレーム用の前記グラフィックスデータを出力するステップとを含む。
【0025】
本発明の一実施形態のグラフィックスシステムは専用グラフィックスハードウェアシステムとして提供可能であるが、別の実施形態において、前記グラフィックスシステムは、汎用プロセッサ上において実行するソフトウェアによって具現化することも可能である。詳細には、本発明の第3の局面によれば、本発明は、コンピュータプログラムを含む持続性保存媒体を提供する。前記コンピュータプログラムは、コンピュータ上によって実行されると、本発明の第2の局面による複数のタイルを含むフレーム用のグラフィックスデータを生成する方法を前記コンピュータに行わせる。さらなる実施形態において、ハードウェア要素およびソフトウェア要素の混合物を用いて、前記グラフィックスシステムを実行することができる。
【0026】
第4の局面から見て、本発明は、複数のタイルを含むフレーム用のグラフィックスデータを生成する、タイルベースのグラフィックスシステムを提供する。前記システムは、前記フレーム用の複数のグラフィックスプリミティブを受け取る入力手段と、第1の動作モードおよび第2の動作モードで動作するグラフィックス処理手段であって、前記第1の動作モードにおいて、前記グラフィックス処理手段は、前記入力手段から前記複数のグラフィックスプリミティブを受信し、前記複数のタイルそれぞれについて、前記複数のグラフィックスプリミティブから前記タイルと交差するものを前記グラフィックスプリミティブを特定するタイルリストから決定するためのビニング動作を行い、前記第2の動作モードにおいて、前記グラフィックス処理手段は、割り当てられたタイル用の前記タイルリストを受信し、前記タイルリストに応じて前記割り当てられたタイル用のグラフィックスデータを生成するためのラスタライゼーション動作を行う、グラフィックス処理手段と、前記グラフィックス処理手段の前記第1の動作モードと前記第2の動作モードとの間で切り換えを制御する制御手段とを含む。
【発明の効果】
【0027】
別個のビニング単位を用いた公知の先行技術の場合よりも、タイルベースのグラフィックスシステムのサイズおよび複雑度が大幅に低減する。詳細には、実施形態により、多様な性能向上が実現される。また、前記グラフィックスシステムにおいて、特定のフレームについて指定された異なる数のグラフィックスプリミティブに対処できる柔軟性が得られる。実施形態のグラフィックス処理システムは、多様なフレームサイズおよびよって多様なディスプレー解像度に対処できる柔軟性を得ることができる。
添付図面中に示す実施形態を参照して、本発明について、ひとえに例示目的のためにさらに説明する。
【図面の簡単な説明】
【0028】
【図1】一実施形態による、タイルベースのグラフィックスシステムを組み込むデータ処理システムを示すブロック図である。
【図2】一実施形態のビニング/ラスタライゼーションエンジンが第2の動作モードで動作しているときのタイルメモリの利用を示す模式図である。
【図3】一実施形態のビニング/ラスタライゼーションエンジンが第1の動作モードで動作しているときのタイルメモリの利用を示す模式図である。
【図4】一実施形態による、タイルメモリ内において維持されている多様なタイルリストを各グラフィックスプリミティブについて更新する方法を示す。
【図5】一実施形態による、図1のシステムの動作を示すフロー図である。
【図6】一実施形態による、図5のステップ210において行われるステップをより詳細に示すフロー図である。
【図7】一実施形態による、図6のステップ315において行われるステップをより詳細に示すフロー図である。
【図8】一実施形態のビニング/ラスタライゼーションエンジンを示す図である。
【図9】一実施形態のマージングエンジンの動作を示す図である。
【図10】一実施形態においてタイルベースのグラフィックスシステムを実行するために利用することが可能な種類の汎用コンピュータの模式図である。
【発明を実施するための形態】
【0029】
図1は、一実施形態のタイルベースのグラフィックスシステムを組み込んだデータ処理システムのブロック図である。前記タイルベースのグラフィックスシステムは、グラフィックス処理単位10からなる。グラフィックス処理単位10は、複数のビニング/ラスタライゼーションエンジン25および30を有する。複数のビニング/ラスタライゼーションエンジン25および30は、内部バス40を介して制御回路20に接続される。制御回路20は、これらのビニング/ラスタライゼーションエンジンそれぞれの動作モードを制御するために用いられる。グラフィックス処理単位10はまた、変換回路15と、入力/出力インターフェース35とを含む。変換回路15は、標準的な方法で視角に基づいて3Dグラフィックスプリミティブを2D座標に変換するように動作する。入力/出力インターフェース35は、グラフィックス処理単位10をシステムバス50に接続する。
【0030】
システムバス50には、中央処理装置(CPU)70も接続される。中央処理装置(CPU)70は、表示すべきグラフィックスデータの各フレーム用のグラフィックスプリミティブを生成するアプリケーション75を実行するために用いられる。グラフィックスレンダリングプロセス時において生成された多様なデータを保存するためのシステムメモリ55が設けられる。詳細には、システムメモリ55は、グラフィックスプリミティブメモリ66を含む。グラフィックスプリミティブメモリ66は、CPU70上において実行するアプリケーション75によって生成されるグラフィックスプリミティブを保存する。前記アプリケーション特定のフレーム用の1組のグラフィックスプリミティブが生成されると、通知がグラフィックス処理単位10へと発行される。前記通知により、グラフィックス処理単位10は、これらのグラフィックスプリミティブの処理を開始する。詳細には、変換回路15は、グラフィックスプリミティブメモリ66内に保存された1組のグラフィックスプリミティブを入力/出力インターフェース35を介して受信し、前記3Dグラフィックスプリミティブを同等の2D表示に変換する頂点シェーディング動作を行う。この2D表示は、例えば前記グラフィックスデータの視認に用いられる視覚に基づいている。次に、これらのグラフィックスプリミティブの2D表示は、変換回路15により、システムメモリ55内の変換メモリ64へと保存される。これが完了した後、グラフィックス処理単位10は、ビニング動作を行うように構成される。
【0031】
前記ビニング動作を行うために、制御回路20は、モード制御信号送達経路45をビニング/ラスタライゼーションエンジン25および30のうち少なくとも1つへと発行するように構成される。モード制御信号送達経路45により、前記ビニング/ラスタライゼーションエンジンのうち少なくとも1つが第1の動作モードにされる。その後、前記選択されたビニング/ラスタライゼーションエンジン(単数または複数)は、変換メモリ64から複数のグラフィックスプリミティブ(すなわち、2Dバージョン)を受信し、ビニングデータを生成するためのビニング動作を行うように、構成される。前記ビニングデータにより、前記フレームを構成する複数のタイルそれぞれについて、前記タイルと交差するグラフィックスプリミティブを特定するタイルリストが得られる。下記により詳細に説明するように、このプロセス時において、ビニング/ラスタライゼーションエンジン25および30と関連付けられたタイルメモリ27および32を用いて、前記ビニング動作時に生成されたビニングデータを保存する。前記ビニング動作が前記ビニング/ラスタライゼーションエンジン(単数または複数)によって行われた後、前記ビニングデータが前記タイルメモリからシステムメモリ55のビンメモリ62へと書き込まれる。
【0032】
下記により詳細に説明するように、前記制御回路は、ビニング動作を行うためのビニング/ラスタライゼーションエンジンを1つだけ割り当てることもできるし、あるいは、ビニング動作を行うためのビニング/ラスタライゼーションエンジンを複数割り当てることもでき、これにより、前記フレームの異なる領域が異なるビニング/ラスタライゼーションエンジンに割り当てられ、各領域は、前記フレームの1つ以上のタイルを含む。2つよりも多くのビニング/ラスタライゼーションエンジン25および30を前記ビニングプロセスに割り当てることにより、前記ビニングプロセスの速度の大幅な向上が可能となり、これにより、前記グラフィックスシステムの全体的性能が向上する。
【0033】
関連付けられたビニング/ラスタライゼーションエンジン25および30が第1の動作モードで動作している際に生成したビニング情報全てを保存するための十分なスペースをタイルメモリ27および32が持たない場合、前記ビニング/ラスタライゼーションエンジンを前記情報の異なる部分上において反復的に動作するように構成することができ、前記タイルメモリ内に保存された内容は、各反復終了時においてビンメモリ62に書き込まれる。例えば、前記タイルメモリは複数のメモリブロックを含み得、各メモリブロックはnビットを含む。第1の動作モードにおいて各メモリブロックはタイルと関連付けられ、これにより、ビニング動作をn個のグラフィックスプリミティブまで1回の反復行うことができる。しかし、前記複数のグラフィックスプリミティブがnを超えた場合、前記関連付けられたビニング/ラスタライゼーションエンジンは、前記ビニング動作を反復的に行うように構成でき、各反復において、n個のプリミティブまでの異なる組が考慮される。
【0034】
同様に、第1の動作モードにおいて前記ビニング/ラスタライゼーションエンジンに割り当てられたタイル数がタイル内の画素数を超えた場合、これは、各タイルについて別個のメモリブロックを提供するための十分なメモリブロックをタイルメモリ27が持っていないことを意味することが多い(典型的には、前記タイルメモリは、タイル中の各画素用のメモリブロックを含む)、そのため、ここでも、ビニング動作を行うように反復動作するように前記ビニング/ラスタライゼーションエンジンを構成することが可能であり、ここで、各反復時において前記フレームの異なる領域が考慮され、各領域は、タイル内の画素数を超えないタイル数を有する。
【0035】
前記ビニング動作の完了後、よって、システムメモリ55内のビンメモリ62は、前記ビニング動作によって生成されたビニングデータ全てを含み、ビンメモリ62内の累積ビニングデータから、各タイル用のタイルリストが得られる。各タイルリストは、対応するタイルと交差するグラフィックスプリミティブを特定する。ここで、プロセスは、ラスタライゼーション段階に進み得る。ラスタライゼーション段階において、前記制御回路は、ビニング/ラスタライゼーションエンジン25および30のうち1つ以上を第2の動作モードとするように構成され、ここで、特定のタイルがビニング/ラスタライゼーションエンジン25に割り当てられ、その後、前記ビニング/ラスタライゼーションエンジンは、当該タイルについてラスタライゼーション動作を行う。詳細には、ビニング/ラスタライゼーションエンジン25は、入力/出力インターフェース35を介して、対応するタイルリストをビンメモリ62から取り出し、前記タイルリストを用いて、前記割り当てられたタイル用のグラフィックスデータを生成するためのラスタライゼーション動作を行う。
【0036】
前記ラスタライゼーション動作は、従来の様態で動作し、当業者によって理解されるように、多様なグラフィックスデータを生成する。例えば、このようなグラフィックスデータは典型的には、色データ(例えば、RGB値)、透過性値A、一定の深さ情報、一定のステンシル情報などを含む。この情報は、前記タイル内の各画素について生成され、前記情報は、前記タイルメモリの対応するメモリブロックに保存される。タイル全体の処理完了後、前記タイルメモリ内に保存されたグラフィックスデータが、入力/出力インターフェース35を介してシステムメモリ55のフレームバッファ60の関連部分に書き込まれる。全タイルの処理後、フレームバッファ60は、フレーム全体のグラフィックスデータを含む。その後、前記グラフィックスデータはディスプレイドライバ80に経路設定され、接続された表示デバイス上に前記フレームを表示させる。
【0037】
図2は、関連付けられたビニング/ラスタライゼーションエンジン25および30が第2の動作モードで動作している際(すなわち、ラスタライゼーション動作を行っている際)にビニング/ラスタライゼーションエンジン25および30がタイルメモリ27および32を用いる様態を示す模式図である。この場合、ビニング/ラスタライゼーションエンジン25は、複数の画素110からなるタイル100を処理する。図示の例において、前記タイルは、16x16個の画素からなるアレイからなる。この例において、タイルメモリ120は典型的には、複数のメモリブロック125を含む。ここで、各メモリブロックは、前記画素のうちの1つと関連付けられる。そのため、この例において、タイルメモリ120は、256個のメモリブロックからなる(すなわち、前記タイル内の各画素につき、1つのメモリブロックがある)。各メモリブロックを用いて、ラスタライゼーション動作性能時において生成された関連付けられた画素の画素データを保存する。先述しまた図2に示すように、このような画素データは典型的には、RGB値(または他のなんらかの色値の表示)、透過性値A、および多様な他の画素データを含む。
【0038】
図3は、前記ビニング/ラスタライゼーションエンジンが第1の動作モードにおいて動作している際(すなわち、前記ビニング/ラスタライゼーションエンジンがビニング動作を行っている際)に同一タイルメモリを用いる方法を示す模式図である。この例において、ビニング/ラスタライゼーションエンジン25は、複数のタイル145からなるフレーム(またはフレーム領域)140を処理する。前記タイルメモリが256個のメモリブロックを有する図2の例において、前記フレームが有するタイルが256個以下である場合、前記タイルそれぞれを前記タイルメモリ中の別個のメモリブロックに割り当てることが可能であることが理解される。図3に示す例において、256個のタイルがあり、よって、図2のタイルあたりの画素数について、前記フレームは256×256個の画素の解像度を有するものと仮定する。先述したように、前記フレームがより高い解像度を有し(よって256個を超えるタイルを有する場合)、ビニング/ラスタライゼーションエンジン25のうちの1つを反復的に動作するように構成することができる。各反復において、前記フレームの異なる領域が考慮され、あるいは、前記フレームの異なる領域を異なるビニング/ラスタライゼーションエンジンに割り当てることも可能である。
【0039】
図3に示すように、タイルメモリ120の各メモリブロック125は特定のタイルに割り当てられ、前記メモリブロック内のnビットはそれぞれ、異なるグラフィックスプリミティブと関連付けられる。よって、アプリケーション75が特定のフレームについて生成したグラフィックスプリミティブの数がnを超えない場合、前記グラフィックスプリミティブ全てを、ビニング/ラスタライゼーションエンジン25内におけるビニング動作の1回の反復中に処理することができる。グラフィックスプリミティブ数がnを超える場合、先述したように、前記ビニングプロセスの複数の反復を前記ビニング/ラスタライゼーションエンジン内において行うことができ、各反復において異なるn個のプリミティブが考慮される。
【0040】
よって、図3に示すように、特定のタイルと関連付けられたメモリブロック内の各ビットがセットまたはクリアされて、前記関連付けられたグラフィックスプリミティブが前記タイルと交差しているものとして決定されたかを示す。図3に示す例において、各ビットは論理ゼロ値にクリアされ、論理1値にセットされたとと仮定される。このようにセットされた場合、これは、前記関連付けられたグラフィックスプリミティブが関連タイルと交差するものとして決定されたことを示す。よって、図3に示す例において、グラフィックスプリミティブ2および3は、タイル0と交差するものとして決定されている。
【0041】
図4は、ビニング動作時においてタイルメモリ内の個々のビットを設定する方法をさらに示す。この例において、プリミティブ4は、フレーム150内に描かれた三角形157であり、この簡単な例において、例示を容易にするため、フレーム150は16個のタイル155からなると仮定する。
【0042】
タイルメモリ160内において、各メモリブロック165は、異なるタイルと関連付けられる。前記ビニング動作の適用後、前記メモリブロックそれぞれ内のビットはそれぞれセットまたはクリアされて、関連付けられたグラフィックスプリミティブが対応するタイルと交差しているかを示す。前記ビニング動作の終了時においてグラフィックスプリミティブ4に関連して保存された情報を図4に示す。詳細には、各メモリブロックの第4のビットは、グラフィックスプリミティブ4を示し、このビットは、タイル4〜10と関連付けられたメモリブロック内においてセットされ、その他のメモリブロック全てにおいてクリアされることが分かる。
【0043】
図5は、一実施形態による、図1のデータ処理システムの動作を示すフロー図である。ステップ200において、処理すべきフレームをグラフィックス処理単位10が有するか(すなわち、アプリケーション75から特定のフレーム用の1組のグラフィックスプリミティブが生成されたか)について決定する。この決定後、プロセスはステップ205へと進み、変換回路15によって提供された頂点シェーダーを用いて、前記グラフィックスプリミティブの必要な3D/2D変換を行う。その後、ステップ210において、ビニング/ラスタライゼーションエンジン25および30のうち少なくとも1つを制御して、第1の動作モードにおいて上記したビニング動作を行わせる。ステップ210において行われる動作について、図6および図7を参照してより詳細に説明する。
【0044】
前記ビニング動作の完了後、ステップ215によって示すように、各タイルのタイルリストをビンメモリ62内に保存する。先述したように、前記タイルメモリはフレーム全体のビニング情報を保存するのに十分である場合、ビニング動作の終了時において行われる1回の保存動作時において、前記タイルリスト情報を前記ビンメモリ内に保存することができる。しかし、前記タイルメモリの大きさが前記ビニング情報全てを保存するのには不十分である場合、必要なビニング動作を1つ以上のビニング/ラスタライゼーションエンジン内において反復的に行いかつ/または複数のビニング/ラスタライゼーションエンジンにわたって並行に行うことができ、このような場合、ビニング動作時においてビンメモリ62を複数回更新することで、ビニング動作終了時において、前記ビンメモリの内容から各タイルのタイルリストを得ることが可能になる。
【0045】
ステップ215の後、タイルリストがビニング/ラスタライゼーションエンジンに割り当てられる。前記ビニング/ラスタライゼーションエンジンは、制御回路20によって制御されて、第2の動作モードで動作する(ステップ220を参照)。その後、ステップ225において、前記割り当てられたビニング/ラスタライゼーションエンジンは、前記タイル内の各画素用の画素データを生成するためのラスタライゼーション動作を行う。前記画素データは、前記ラスタライゼーション動作の終了時まで前記タイルメモリ内に保持される。その後、ステップ230において前記画素データはフレームバッファ60へと出力される。その後、ステップ235において、全タイルが処理されたかが決定され、全タイルが処理されていない場合、次のタイルがステップ240において特定され、その後プロセスはステップ220へと戻る。ステップ220、225、230、235および240を順に示しているが、上記記載から、異なるタイルを異なるビニング/ラスタライゼーションエンジンに並列に割り当てることも可能であり、その場合、複数のタイルの並列処理が可能となることが理解される。しかし、一定の時点において、ステップ235において、全タイルが処理されたことが決定され、その後、プロセスはステップ200へと戻って、次の処理対象フレームを待機する。
【0046】
図6は、一実施形態による、図5のステップ210において行われるプロセスを示す。ステップ300において、ビニングプロセスを行うために複数のビニング/ラスタライゼーションエンジンを割り当てるべきかを決定する。ビニングプロセスを行うために複数のビニング/ラスタライゼーションエンジンを割り当てるべきではない場合、プロセスはステップ315へと進み、前記ビニング/ラスタライゼーションエンジンは、ジオメトリ交差アルゴリズムを適用するように構成される。前記ジオメトリ交差アルゴリズムにおいては、前記フレーム内の各タイルについて、当該タイルと交差するグラフィックスプリミティブが決定される。先述したように、ビニング動作の複数の反復を必要に応じて用いることで、前記フレーム内の各タイルについてグラフィックスプリミティブ全てを確実に考慮することが可能になる。
【0047】
複数のビニング/ラスタライゼーションエンジンをビニングのために割り当てルべきである場合、プロセスはステップ305へと進み、前記フレームの異なる領域が各割り当てられたエンジンに割り当てられる。代替的にまたは付加的に、考慮すべきプリミティブ数が前記タイルメモリの各メモリブロック内において利用可能な空間を超える場合、異なるプリミティブ群を異なるビニング/ラスタライゼーションエンジンに割り当てることができ、その場合、各ビニング/ラスタライゼーションエンジンは、同一のフレームまたはフレーム領域上において機能する。その後、各タイルメモリ中に保存された情報が前記ビンメモリに書き込まれる際、前記情報をマージすることができる。
【0048】
ステップ305の後、ステップ310において各割り当てられたエンジン内においてジオメトリ交差アルゴリズムが適用される。前記ジオメトリ交差アルゴリズムにより、前記割り当てられた領域内の各タイルについて、当該タイルと交差するグラフィックスプリミティブが決定され、前記タイルメモリもその結果に応じて更新される。
【0049】
図7は、一実施形態による、図6のステップ315において実施され得るステップをより詳細に示すフロー図である。詳細には、図7が特定している状況においては、単一のビニング/ラスタライゼーションエンジンが更新されている場合、ビニング動作の複数の反復を行うことが適切である。詳細には、ステップ350において単一のビニング/ラスタライゼーションエンジンがビニングのために割り当てられた場合、ステップ355において、グラフィックスプリミティブの数がn(すなわち、前記タイルメモリの各メモリブロック内のビット数)を超えているかが決定される。グラフィックスプリミティブの数がn(すなわち、前記タイルメモリの各メモリブロック内のビット数)を超えている場合、プロセスはステップ360へと進み、ビニング動作が反復的に行われ、各反復において異なるn個のプリミティブが考慮される。明らかなことではあるが、最終反復時において、n個未満のプリミティブが考慮され得る。なぜならば、プリミティブの総数は複数個のnではない場合があるからである。
【0050】
ステップ355においてグラフィックスプリミティブの数がnを超えないと決定された場合、プロセスはステップ365へと進み、ここで、前記フレーム内のタイル数がタイル内の画素数を超えるかが決定される。前記フレーム内のタイル数がタイル内の画素数を超える場合、プロセスはステップ370へと進み、ここで、ビニング動作が反復的に行われ、各反復において前記フレームの異なる領域が考慮される。ステップ365において前記フレーム内のタイル数がタイル内の画素数を超えないと決定された場合、ステップ375において単一の反復を行うことができる。
【0051】
加えて、グラフィックスプリミティブ数がnを超えかつフレーム内のタイル数がタイル内の画素数を超えた場合、特定のフレーム領域についてステップ360を行うことが必要となり得、その後別のフレーム領域へと移動し、全フレーム領域について全グラフィックスプリミティブが考慮されるまで、当該フレーム領域についてステップ360を再度行うことが理解される。実際、このような状況においては、ビニング動作速度の大幅な増加を可能にするために、ビニングプロセス時において複数のビニング/ラスタライゼーションエンジンを割り当てると有利である。
【0052】
図8は、一実施形態による、ビニング/ラスタライゼーションエンジンの基本的構造を示す。詳細には、ビニング/ラスタライゼーションエンジン400は、選択単位410を有する。選択単位410は、単位405のアレイから個々の単位を選択するように構成される。第1の動作モードにおいては、ビニング/ラスタライゼーションエンジン400はビニング動作を行い、各単位は1つのタイルを含む。第2の動作モードにおいては、前記ビニング/ラスタライゼーションエンジンはラスタライゼーション動作を行い、各単位は、割り当てられたタイルの画素を含む。ラスタライゼーションエンジン内における処理対象となる画素の選択に適した選択単位は周知であり、このような任意の選択単位を用いて、組み合わされたビニング/ラスタライゼーションエンジン400の選択単位410を具現化することができる。選択単位に関連する限り、行われている動作がビニング動作であろうとラスタライゼーション動作であろうと、基本的動作は同じであり、取り扱われている単位のみが異なる。
【0053】
各単位が選択単位として選択されると、当該単位は処理対象として単位プロセッサ415へと送られる。詳細には、単位プロセッサ415は、前記選択された単位と関連付けられるべき出力データを計算する。第1の動作モードにおいてビニング動作が行われると、出力データは、前記複数のグラフィックスプリミティブのうち前記選択された単位と交差するものを示し、前記単位プロセッサは、前記選択された単位と交差するグラフィックスプリミティブを決定するためのジオメトリ交差アルゴリズム420を適用する。第2の動作モードにおいて、前記出力データから、前記選択された単位の画素データが得られる。このデータは、前記選択された単位が前記グラフィックスプリミティブと交差する様態に依存し、前記単位プロセッサは、一実施形態において、サンプルベースのシェーディングアルゴリズム425を適用して、画素データを決定する。
【0054】
サンプルベースのシェーディングアルゴリズムは、ラスタライゼーションエンジンにおける用途において周知であり、このような周知のサンプルベースのシェーディングアルゴリズムのうちのいずれかをシェーディングアルゴリズム425として用いることが可能である。このようなサンプルベースのシェーディングアルゴリズムによれば、画素内の複数の離散サンプリング点を用いて、画素をプリミティブの一部として考慮すべきか否かが決定される。このようなサンプルベースのアルゴリズムも原則的にはビニング動作において利用可能であるが、このような離散サンプリング点を利用した場合、ビニング動作において特定の交差点が欠如する原因になる場合があり得る。なぜならば、ビニング動作において、プリミティブは、タイル内の任意の位置にあるタイルと交差し得るからである。よって、一実施形態において、ビニング/ラスタライゼーションエンジン400によって行われるビニング動作時において、別個のジオメトリ交差アルゴリズム420が単位プロセッサによって用いられる。当業者が理解するであろう適切なジオメトリ交差アルゴリズムは複数存在するため、このようなアルゴリズムについては、本明細書中において詳述しない。
【0055】
図3および図4用の先述の記載から明らかなように、ビニング動作によって生成されたタイルリストは0および1の列からなり、各ビットは、特定のプリミティブと関連付けられ、論理0値は、当該グラフィックスプリミティブが当該タイル内に無いことを示し、論理1値は、グラフィックスプリミティブが当該タイル内にあることを示す(論理0および論理1値の意味を交換してもよいことが理解される)。図9は、上記した最適化プロセスにおいてマージングエンジン500を用いて、ラスタライゼーションエンジンによって用いられるベクトルファイルを生成する方法を示す。詳細には、ビンメモリ62内に保存された上記したタイルリストに加えて、変換メモリ64は、変換回路15から出力された2Dグラフィックスプリミティブそれぞれ用のグラフィックスプリミティブ記述を含むことが理解される。マージングエンジン500は、特定のタイル用のタイルリスト505と、前記グラフィックスプリミティブそれぞれ用のグラフィックスプリミティブ記述510とを受け取る。その後、この情報に基づいて、マージングエンジン500は、ベクトルファイル520を生成する。ベクトルファイル520は、前記タイルと交差する各グラフィックスプリミティブ用の識別子525と、当該プリミティブ530用の関連付けられた記述とを含む。よって、図9に示す例において、グラフィックスプリミティブ2、3、6および7が前記タイルと交差しており、ベクトルファイル520が図9の右上側に図示されていることが分かる。その後、第2の動作モードにおいて対応するタイルを処理するために割り当てられたビニング/ラスタライゼーションエンジン25および30によってこのベクトルファイルが用いられる。
【0056】
前記マージングエンジンは、多様な様態で構築可能であるが、一実施形態において、シェーディングエンジンによって形成される。一実施形態において、前記マージングエンジンは、ラスタライゼーションプロセスの一部として必要とされるシェーディング動作を行うための割り当てられたビニング/ラスタライゼーションエンジン内に既に設けられたシェーディングエンジンであり得る。
【0057】
一実施形態のグラフィックスシステムは、適切なハードウェアによって(例えば、図1に示すような専用グラフィックス処理単位10によって)提供することが可能であるが、別の実施形態において、前記グラフィックスシステムは、汎用プロセッサ上において実行するソフトウェアによって具現化してもよい。例えば、図10は、一実施形態において利用可能な汎用コンピュータ600の模式図である。汎用コンピュータ600は、中央処理装置602と、ランダムアクセスメモリ(RAM)604と、リードオンリーメモリ(ROM)606と、ネットワークインターフェースカード608と、ハードディスクドライブ610と、ディスプレイドライバ612およびモニタ614と、ユーザ入力/出力回路616とを含む。ユーザ入力/出力回路616は、キーボード618およびマウス620を備える。キーボード618およびマウス620は全て、共通バス622を介して接続される。動作時において、中央処理装置602は、コンピュータプログラム命令を実行する。前記コンピュータプログラム命令は、ランダムアクセスメモリ604、リードオンリーメモリ606およびハードディスクドライブ610のうちの1つ以上に保存してもよいし、あるいは、ネットワークインターフェースカード608を介して動的にダウンロードしてもよい。実行された処理の結果は、ディスプレイドライバ612およびモニタ614を介してユーザに表示され得る。汎用コンピュータ600の動作を制御するためのユーザ入力は、キーボード618またはマウス620からユーザ入力/出力回路616を介して受信され得る。前記コンピュータプログラムは、多様な異なるコンピュータ言語で書き込み可能であることが理解される。前記コンピュータプログラムは、記録媒体上に保存および分配してもよいし、あるいは、汎用コンピュータ600に動的にダウンロードしてもよい。
【0058】
適切なコンピュータプログラムの制御下において動作する際、汎用コンピュータ600は、上記したグラフィックス処理技術を行うことができ、これらの技術を行う装置を形成するものとしてみなすことができる。詳細には、ビニング動作を行うためのジオメトリ交差アルゴリズムを実行する1つの動作モード前記ソフトウェアルーチンにおいて、市販のソフトウェアルーチンをビニング/ラスタライゼーションエンジンの機能を実行するために用いることができ、別の動作モードにおいて、ソフトウェアルーチンが、ラスタライゼーション動作を行うためのサンプルベースのシェーディングアルゴリズムを行う。これにより、グラフィックスシステムの一部として完全に別個のビニングインプレメンテーションを設ける必要性が回避され、グラフィックスレンダリングプロセスの実行における効率が向上する。
【0059】
上記の実施形態の記載から、このような実施形態により、ビニングおよびラスタライゼーション双方を行うために組み合わされたインプレメンテーションを用いることにより、グラフィックスシステム内に専用ビニングインプレメンテーションを設ける必要性が回避できることが理解される。1つの特定の実施形態において、既存のラスタライゼーションインプレメンテーションが、ビニングを支援した後、ビニング動作を行う第1の動作モードまたはラスタライゼーションを行う第2の動作モードのいずれかで動作できるように、改変される。その結果、エネルギー消費の低減および性能向上により、グラフィックスシステムの動作全体を大幅に向上させることが可能になる。ハードウェアインプレメンテーションにおいても、グラフィックスハードウェアのサイズ低減が可能となり、これにより、コスト低減も可能となる。
【0060】
本明細書中、特定の実施形態について述べてきたが、本発明はこれに限定されず、本発明の範囲内において多くの改変および付加が可能であることが理解される。例えば、本発明の範囲から逸脱することなく、以下の従属請求項の特徴と、独立請求項の特徴との多様な組み合わせが可能である。

【特許請求の範囲】
【請求項1】
複数のタイルを含むフレーム用のグラフィックスデータを生成する、タイルベースのグラフィックスシステムであって、
前記フレーム用の複数のグラフィックスプリミティブを受信する入力手段と、
第1の動作モードおよび第2の動作モードで動作するように構成されたグラフィックス処理回路であって、
前記第1の動作モードにおいて、前記グラフィックス処理回路は、前記入力手段から前記複数のグラフィックスプリミティブを受け取り、ビニング動作を行うように構成され、前記ビニング動作において、前記複数のタイルそれぞれについて、前記複数のグラフィックスプリミティブのうち前記タイルと交差するものを特定するタイルリストが決定され、
前記第2の動作モードにおいて、前記グラフィックス処理回路は、割り当てられたタイル用の前記タイルリストを受け取り、ラスタライゼーション動作を行うように構成され、前記ラスタライゼーション動作において、前記タイルリストに応じて前記割り当てられたタイル用の前記グラフィックスデータが生成される、
グラフィックス処理回路と、
前記第1の動作モードと前記第2の動作モードとの間での前記グラフィックス処理回路の切り換えを制御するための制御回路と、
を含む、システム。
【請求項2】
前記グラフィックス処理回路は、複数のメモリブロックを含む作業メモリを
前記第1の動作モードにおいて、各メモリブロックはタイルと関連付けられ、前記ビニング動作時において、各メモリブロックは、前記複数のグラフィックスプリミティブのうち、前記関連付けられたタイルと交差するものを記録するために用いられ、
前記第2の動作モードにおいて、各メモリブロックは、前記割り当てられたタイルの画素と関連付けられ、前記ラスタライゼーション動作時において、各メモリブロックは、前記関連付けられた画素用に生成された画素データを保存するために用いられる、
請求項1に記載の、タイルベースのグラフィックスシステム。
【請求項3】
前記グラフィックス処理回路は、前記第1の動作モードを支援するように改変されたラスタライゼーション回路であり、
前記作業メモリは、前記ラスタライゼーション動作を行う際に前記ラスタライゼーション回路によって用いられるように提供されるタイルメモリであり、前記作業メモリは、前記第1の動作モード時において、前記複数のグラフィックスプリミティブのうち、各メモリブロックと関連付けられた前記タイルと交差するものを記録するために再利用されるように構成される、
請求項2に記載の、タイルベースのグラフィックスシステム。
【請求項4】
前記ラスタライゼーション回路は、
単位のアレイから個々の単位を選択する選択回路であって、前記第1の動作モードにおいて、各単位は、前記タイルのうちの1つを含み、前記第2の動作モードにおいて、各単位は、前記割り当てられたタイルの画素を含む、選択回路と、
選択された単位について、前記単位と関連付けられるべき出力データを計算する単位処理回路であって、前記第1の動作モードにおいて、前記出力データは、前記複数のグラフィックスプリミティブのうち前記選択された単位と交差するものを示し、前記第2の動作モードにおいて、前記出力データは、前記選択された単位が前記複数のグラフィックスプリミティブと交差する様態に依存する前記選択された単位用の画素データを提供する、単位処理回路と、
を含む、
請求項3に記載の、タイルベースのグラフィックスシステム。
【請求項5】
前記第1の動作モードにおいて、前記単位処理回路はジオメトリ交差アルゴリズムを実行し、前記第2の動作モードにおいて、前記単位処理回路は、サンプルベースのシェーディングアルゴリズムを実行する、請求項4に記載の、タイルベースのグラフィックスシステム。
【請求項6】
各メモリブロックはnビットを含み、
前記第1の動作モードにおいて、前記グラフィックス処理回路は、n個のグラフィックスプリミティブになるまで前記ビニング動作を行う、
請求項2から5のいずれかの請求項に記載の、タイルベースのグラフィックスシステム。
【請求項7】
前記複数のグラフィックスプリミティブがnを超えた場合、前記制御回路は、前記第1の動作モードにおいて前記グラフィックス処理回路に前記ビニング動作を反復的に行わせるように構成され、各反復において、異なるn個のプリミティブが考慮される、
請求項6に記載の、タイルベースのグラフィックスシステム。
【請求項8】
各反復間において、前記作業メモリの内容がビンメモリに書き込まれる、
請求項7に記載の、タイルベースのグラフィックスシステム。
【請求項9】
フレーム内のタイル数がタイル内の画素数を超えた場合、前記制御回路は、前記第1の動作モードにおいて前記グラフィックス処理回路に前記ビニング動作を反復的に行わせるように構成され、各反復において、前記フレームの異なる領域が考慮され、各領域のタイル数は、画素sinaタイル内の画素数を超えない、請求項2から8のいずれかの請求項に記載の、タイルベースのグラフィックスシステム。
【請求項10】
各反復間において、前記作業メモリの内容がビンメモリに書き込まれる、
請求項9に記載の、タイルベースのグラフィックスシステム。
【請求項11】
前記作業メモリは、前記グラフィックス処理回路に対して局所的に設けられる、
請求項2から10のいずれかの請求項に記載の、タイルベースのグラフィックスシステム。
【請求項12】
前記グラフィックス処理回路は複数のグラフィックス処理エンジンを含み、前記複数のグラフィックス処理エンジンはそれぞれ、前記制御回路によって前記第1の動作モードまたは前記第2の動作モードで動作するように制御される、
前記いずれかの請求項に記載の、タイルベースのグラフィックスシステム。
【請求項13】
前記制御回路は、前記グラフィックス処理エンジンのうち複数のを前記第1の動作モードにし、前記フレームの異なる領域を前記グラフィックス処理エンジンのうち異なる1つに割り当てるように構成され、これにより、前記ビニング動作は、前記複数のグラフィックス処理エンジンにわたって並行に行われる、
請求項12に記載の、タイルベースのグラフィックスシステム。
【請求項14】
前記グラフィックス処理回路によって生成された前記タイルリストはビット列を含み、各ビットは、対応するグラフィックスプリミティブと、前記対応するグラフィックスプリミティブが前記関連付けられたタイルと交差するか否かを示す値とに関連付けられ、
前記タイルベースのグラフィックスシステムは、
前記タイルリストおよび各グラフィックスプリミティブの記述を受け取るマージングエンジンであって、前記マージングエンジンは、複数のベクトルを含むベクトルファイルを生成し、各ベクトルは、前記関連付けられたタイルと交差する前記グラフィックスプリミティブのうちの1つの記述を提供し、前記ベクトルファイルは、前記グラフィックス処理回路が前記第2の動作モードにおいて前記関連付けられたタイル用のグラフィックスデータを生成するように動作する際に前記グラフィックス処理回路によって用いられる、マージングエンジン、
をさらに含む、
請求項6に従属した場合に前記いずれかの請求項に記載の、タイルベースのグラフィックスシステム。
【請求項15】
前記マージングエンジンは、前記グラフィックス処理回路によって提供されるシェーディングエンジンを含む、請求項14に記載の、タイルベースのグラフィックスシステム。
【請求項16】
前記グラフィックス処理回路は、前記ビニング動作を行うためのシェーディングエンジンを含む、前記いずれかの請求項に記載の、タイルベースのグラフィックスシステム。
【請求項17】
複数のタイルを含むフレーム用のグラフィックスデータを生成するためにデータ処理システムを動作させる方法であって、
前記グラフィックスデータを生成するプロセスにおいて、第1の動作モードと第2の動作モードとの間でグラフィックス処理論理を選択的に切り換えるステップと、
前記第1の動作モードにおいて前記グラフィックス処理論理が前記フレーム用の複数のグラフィックスプリミティブを受け取ると、前記グラフィックス処理論理はビニング動作を行い、前記ビニング動作において、前記複数のタイルそれぞれについて、前記複数のグラフィックスプリミティブのうち前記タイルと交差する前記グラフィックスプリミティブを特定するタイルリストを決定する、ステップと、
前記第2の動作モードにおいて、割り当てられたタイルについて前記タイルリストを前記グラフィックス処理論理が受け取ると、前記グラフィックス処理論理は、ラスタライゼーション動作を行い、前記ラスタライゼーション動作において、前記タイルリストに応じて前記割り当てられたタイル用の前記グラフィックスデータを生成する、ステップと、
前記タイルそれぞれについて前記ラスタライゼーション動作が行われると、前記フレーム用の前記グラフィックスデータを出力するステップと、
を含む、方法。
【請求項18】
コンピュータプログラムを含む持続性保存媒体であって、前記コンピュータプログラムは、コンピュータ上において実行されると、請求項17に記載の複数のタイルを含むフレーム用のグラフィックスデータを生成する方法を前記コンピュータに行わせる、持続性保存媒体。
【請求項19】
複数のタイルを含むフレーム用のグラフィックスデータを生成する、タイルベースのグラフィックスシステムであって、
前記フレーム用の複数のグラフィックスプリミティブを受け取る入力手段と、
第1の動作モードおよび第2の動作モードで動作するグラフィックス処理手段であって、
前記第1の動作モードにおいて、前記グラフィックス処理手段は、前記入力手段から前記複数のグラフィックスプリミティブを受け取り、ビニング動作を行い、前記ビニング動作において、前記複数のタイルそれぞれについて、前記複数のグラフィックスプリミティブのうち前記タイルと交差するものを特定するタイルリストを決定し、
前記第2の動作モードにおいて、前記グラフィックス処理手段は、割り当てられたタイルについて前記タイルリストを受け取り、ラスタライゼーション動作を行い、前記ラスタライゼーション動作において、前記タイルリストに応じて前記割り当てられたタイルについて前記グラフィックスデータを生成する、グラフィックス処理手段と、
前記グラフィックス処理手段の前記第1の動作モードと前記第2の動作モードとの間での切り換えを制御する制御手段と、
を含む、システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−168951(P2012−168951A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−30669(P2012−30669)
【出願日】平成24年2月15日(2012.2.15)
【出願人】(594154428)エイアールエム リミテッド (85)
【Fターム(参考)】