(57)【要約】複数のレンダリングパイプライン（図５）を用いてコンピュータグラフィックフレーム（図７）シーケンスを生成するシステム、方法、およびコンピュータプログラム製品である。各フレームに対し、各レンダリングパイプライン（図５）が、特定のフレームのグラフィックデータ総量のサブセットを受信する。フレームが完了すると、各レンダリングパイプライン（図５）がパフォーマンスリポート（図７）をパフォーマンスモニタ（図７）に送信する。パフォーマンスモニタ（図７）が、それぞれのレンダリングパイプライン（図７）がそれらのタイルをレンダリングするのに要した時間にかなりの不一致があったかどうか判定する。不一致を検出し、この不一致がある閾値よりも大きいと判定される場合、割り当て手段（図７）がタイルのサイズを変更し、次のフレームにする。これにより、レンダリングパイプライン（図７）全体にわたってバランスをとるようになる。【特許請求の範囲】
【請求項１】
コンピュータグラフィックフレームシーケンスを生成するシステムであって、
各レンダリングパイプラインが、フレームシーケンスになっている現在のフレームそれぞれのためのグラフィックデータの別個のサブセットを受信し、グラフィックデータの前記別個のサブセットをレンダリングし、前記レンダリングを行う間に各レンダリングパイプラインそれぞれに生じた作業負荷に関するパフォーマンスリポートを生成する複数のレンダリングパイプラインと、
各レンダリングパイプラインから前記パフォーマンスリポートを受信して、負荷の不均衡を識別するパフォーマンスモニタと、
次のフレームのためのグラフィックデータを前記レンダリングパイプラインに再割り当てする割り当て手段とを備え、再割り当てが前記負荷の不均衡に基づくものであり、これを求めることにより、前記次のフレームのレンダリングと対応付けられている次の負荷の不均衡を低減する、システム。
【請求項２】
グラフィックアプリケーションをさらに備え、前記グラフィックアプリケーションが前記パフォーマンスモニタを備える、請求項１に記載のシステム。
【請求項３】
前記グラフィックアプリケーションがさらに前記割り当て手段を備える、請求項２に記載のシステム。
【請求項４】
各前記レンダリングパイプラインからレンダリングしたグラフィックデータを受信し、前記レンダリングしたグラフィックデータを合成して、各前記フレームを生成するコンポジタをさらに備える、請求項１に記載のシステム。
【請求項５】
グラフィックデータの前記別個のサブセットそれぞれが、前記現在のフレームの複数のタイルの１つに対応する、請求項１に記載のシステム。
【請求項６】
前記現在のフレームの前記タイルに対して、前記次のフレームのタイルのサイズ変更を行うことにより、前記割り当て手段が、グラフィックデータを前記次のフレームのための前記レンダリングパイプラインに再割り当てする、請求項５に記載のシステム。
【請求項７】
複数のレンダリングパイプラインを用いて連続するフレームをレンダリングする方法であって、
（ａ）各レンダリングパイプラインが現在のフレームのタイルをレンダリングする、現在のフレームをレンダリングするステップと、
（ｂ）各パフォーマンスリポートが前記レンダリングの間にそれぞれのレンダリングパイプラインに生じた作業負荷を表している、各レンダリングパイプラインのためのパフォーマンスリポートを生成するステップと、
（ｃ）パフォーマンスリポートをパフォーマンスモニタに送信するステップと、
（ｄ）各レンダリングパイプラインで、次のフレームのタイルと対応付けられているグラフィックデータを受信するステップとを含み、現在のフレームの対応するタイルに対して、次のフレームの複数のタイルのサイズを変更したことを含む、方法。
【請求項８】
複数のレンダリングパイプラインを用いてレンダリングを行う、連続するフレームのレンダリングを制御する方法であって、
（ａ）各パフォーマンスリポートが現在のフレームをレンダリングする間にそれぞれのレンダリングパイプラインに生じた作業負荷を表している、各レンダリングパイプラインのためのパフォーマンスリポートを受信するステップと、
（ｂ）パフォーマンスリポートが、レンダリングパイプラインの間の負荷がかなりの不均衡であることを表しているかどうか判定するステップと、
（ｃ）かなりの負荷の均衡を表している場合には、現在のフレームの対応するタイルに対して、次のフレームの少なくとも１つのタイルのサイズを変更するステップと、
（ｄ）次のフレームと対応付けられているグラフィックデータをレンダリングパイプラインに送信するステップとを含み、任意のレンダリングパイプラインに送信したグラフィックデータが次のフレームのタイルと対応付けられている、方法。
【請求項９】
前記ステップｂ）が、
（ｉ）現在のフレームのタイルのレンダリング時間が最も長いレンダリングパイプラインを判定するステップと、
（ｉｉ）現在のフレームのタイルのレンダリング時間が最も短いレンダリングパイプラインを判定するステップと、
（ｉｉｉ）最長レンダリング時間と最短レンダリング時間との間の差が閾値を越えているか判定するステップとを含み、これにより、負荷の不均衡がかなりのものであることを表す、請求項８に記載の方法。
【請求項１０】
閾値が、最長レンダリング時間の割合である請求項９に記載の方法。
【請求項１１】
前記ステップｃ）が、
（ｉ）次のフレームに対して、最短レンダリング時間のレンダリングパイプラインに対応するタイルのサイズを、最長レンダリング時間と最短レンダリング時間との間の差に比例する分だけ大きくするステップと、
（ｉｉ）次のフレームに対して、最長レンダリング時間のレンダリングパイプラインに対応するタイルのサイズを同じ分だけ小さくするステップとを含む、請求項９に記載の方法。
【請求項１２】
現在のフレームのタイルのサブセットが第１のハーフフレームから構成され、現在のフレームの残余のタイルが第２のハーフフレームから構成され、前記ステップｂ）が、
（ｉ）現在のフレームの第１のハーフフレーム全タイルのレンダリング時間を合計するステップと、
（ｉｉ）現在のフレームの第２のハーフフレームすべてのレンダリング時間を合計するステップと、
（ｉｉｉ）２つの合計の間の差が閾値を越えているかどうか判定するステップとを含み、これにより、負荷の不均衡がかなりのものであることを表す、請求項８に記載の方法。
【請求項１３】
前記ステップｃ）が、
（ｉ）次のフレームに対して、より小さい合計を有するハーフフレームの少なくとも１つのタイルのサイズを大きくするステップと、
（ｉｉ）次のフレームに対して、より大きい合計を有するハーフフレームの少なくとも１つのタイルのサイズを小さくするステップとを含み、
より小さい合計を有するハーフフレームのサイズを、２つの合計の間の差に比例する分だけ大きくして、より大きい合計を有するハーフフレームのサイズを、同じ分だけ大きくする、請求項１２に記載の方法。
【請求項１４】
前記ステップｃ）がさらに、
（ｉｉｉ）現在のフレームの第１のハーフフレームのタイルのレンダリング時間が最も長いレンダリングパイプラインを判定するステップと、
（ｉｖ）現在のフレームの第１のハーフフレームのタイルのレンダリング時間が最も短いレンダリングパイプラインを判定するステップと、
（ｖ）現在のフレームの第１のハーフフレームにおける最長レンダリング時間と最短レンダリング時間との間の差を判定するステップと、
（ｖｉ）現在のフレームの第１のハーフフレームにおける最長レンダリング時間と最短レンダリング時間との間の差が閾値を越えているかどうか判定するステップと、
（ｖｉｉ）差が閾値を超えている場合は、
次のフレームに対して、現在のフレームの第１のハーフフレームにおいて、最短レンダリング時間のレンダリングパイプラインに対応するタイルのサイズを、現在のフレームの第１のハーフフレームにおける最長レンダリング時間と最短レンダリング時間との間の差に比例する分だけ大きくして、
次のフレームに対して、現在のフレームの第１のハーフフレームにおいて、最長レンダリング時間のレンダリングパイプラインに対応するタイルのサイズを、同じ分だけ小さくする、請求項１３に記載の方法。
【請求項１５】
前記ステップｃ）がさらに、
（ｉｉｉ）現在のフレームの第２のハーフフレームのタイルのレンダリング時間が最も長いレンダリングパイプラインを判定するステップと、
（ｉｖ）現在のフレームの第２のハーフフレームのタイルのレンダリング時間が最も短いレンダリングパイプラインを判定するステップと、
（ｖ）現在のフレームの第２のハーフフレームにおける最長レンダリング時間と最短レンダリング時間との間の差を判定するステップと、
（ｖｉ）現在のフレームの第２のハーフフレームにおける最長レンダリング時間と最短レンダリング時間との間の差が閾値を越えているかどうか判定するステップと、
（ｖｉｉ）差が閾値を超えている場合は、
次のフレームに対して、現在のフレームの第２のハーフフレームにおいて、最短レンダリング時間のレンダリングパイプラインに対応するタイルのサイズを、現在のフレームの第１のハーフフレームにおける最長レンダリング時間と最短レンダリング時間との間の差に比例する分だけ大きくして、
次のフレームに対して、現在のフレームの第２のハーフフレームにおいて、最長レンダリング時間のレンダリングパイプラインに対応するタイルのサイズを、同じ分だけ小さくする、請求項１３に記載の方法。
【請求項１６】
コンピュータに複数のレンダリングパイプラインを用いて連続するフレームをレンダリングさせるための制御論理を格納しているコンピュータが使用可能な媒体を備えるコンピュータプログラム製品であって、コンピュータ制御論理が、
各レンダリングパイプラインが現在のフレームのタイルをレンダリングする、コンピュータに現在のフレームをレンダリングさせる、第１のコンピュータ読み取り可能プログラムコード手段と、
各パフォーマンスリポートが前記レンダリングの間にそれぞれのレンダリングパイプラインに生じた作業負荷を表す、コンピュータに各レンダリングパイプラインのパフォーマンスリポートを生成させる、第２のコンピュータ読み取り可能プログラムコード手段と、
コンピュータにパフォーマンスリポートをパフォーマンスモニタに送信させる、第３のコンピュータ読み取り可能プログラムコード手段と、
コンピュータに各レンダリングパイプラインでグラフィックデータを受信可能にさせる第４のコンピュータ読み取り可能プログラムコード手段とを備え、各レンダリングパイプラインで受信したグラフィックデータが、次のフレームのタイルに対応付けられていて、次のフレームの複数のタイルを、現在のフレームに対応するタイルに対してサイズを変更した、コンピュータプログラム製品。
【請求項１７】
複数のレンダリングパイプラインを用いてレンダリングを行う、コンピュータに連続するフレームのレンダリングを制御させるための制御論理を格納しているコンピュータが使用可能な媒体を備えるコンピュータプログラム製品であって、コンピュータ制御論理が、
前記レンダリングの間にそれぞれのレンダリングパイプラインに生じた作業負荷を表す、コンピュータに各レンダリングパイプラインのパフォーマンスリポートを受信させる、第１のコンピュータ読み取り可能プログラムコード手段と、
パフォーマンスリポートがレンダリングパイプラインの間に負荷の不均衡がかなりあることを表しているかどうかコンピュータに判定させる、第２のコンピュータ読み取り可能プログラムコード手段と、
負荷の均衡がかなりのものであると表されている場合は、現在のフレームの対応するタイルに対して、次のフレームの少なくとも１つのタイルのサイズを変更することにより、次のフレームをレンダリングする間にレンダリングパイプラインに生じた作業負荷のバランスをコンピュータに再びとらせる第３のコンピュータ読み取り可能プログラムコード手段と、
コンピュータに次のフレームと対応付けられているグラフィックデータをレンダリングパイプラインに送信させる、第４のコンピュータ読み取り可能プログラムコード手段とを備え、任意のレンダリングパイプラインに送信されたグラフィックデータが、次のフレームのタイルと対応付けられている、コンピュータプログラム製品。
【請求項１８】
前記第２のコンピュータ読み取り可能プログラムコード手段が、
（ｉ）コンピュータに現在のフレームのタイルのレンダリング時間が最も長いレンダリングパイプラインを判定させる、コンピュータ読み取り可能プログラムコード手段と、
（ｉｉ）コンピュータに現在のフレームのタイルのレンダリング時間が最も短いレンダリングパイプラインを判定させる、コンピュータ読み取り可能プログラムコード手段と、
（ｉｉｉ）最長レンダリング時間と最短レンダリング時間との間の差が閾値を越えているかどうか判定させる、コンピュータ読み取り可能プログラムコード手段とを備え、これにより、負荷の不均衡がかなりのものであることを表す、請求項１７に記載のコンピュータプログラム製品。
【請求項１９】
閾値が、最長レンダリング時間の割合である、請求項１７に記載のコンピュータプログラム製品。
【請求項２０】
前記第３のコンピュータ読み取り可能プログラムコード手段が、
（ｉ）次のフレームのために、最長レンダリング時間と最短レンダリング時間との間の差に比例する分だけ、コンピュータに最短レンダリング時間のレンダリングパイプラインに対応するタイルのサイズを大きくさせる、コンピュータ読み取り可能プログラムコード手段と、
（ｉｉ）次のフレームのために、コンピュータに最長レンダリング時間のレンダリングパイプラインに対応するタイルのサイズを同じ分だけ小さくさせる、コンピュータ読み取り可能プログラムコード手段とを備える、請求項１７に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
発明の分野
ここで説明する本発明は、コンピュータグラフィックシステムパフォーマンスに関する。
【背景技術】
【０００２】
背景技術
コンピュータグラフィックシステムは、パフォーマンスを向上させるために並列処理を用いることがある。特に、グラフィックシステムでは、画像を生成するために２つ以上のレンダリングパイプラインを用いることもある。このようなアーキテクチャでは、各パイプラインがフレームのある部分をレンダリングする。レンダリングが完了すると、それぞれのレンダリングパイプラインの出力をコンポジタが合成して、完全なフレームを生成する。このような構成により、スループットを相当増加することができる。例えば、４つの等しいレンダリングパイプラインを用いる場合、特定のフレームをレンダリングするのに要する時間は、平均して、１つのレンダリングパイプラインを用いた場合に要する時間の４分の１である。
【０００３】
しかしながら、これは平均に過ぎない。このようなパフォーマンスの向上は、各フレームに対し要する処理を全レンダリングパイプラインに平均的に分散する場合にのみ可能である。通常はこのようにはならない。例えば、４つのレンダリングパイプラインを用いて、各パイプラインがフレームの特定のカドラントをレンダリングする場合、他のカドラントよりもレンダリングがさらに必要なカドラントが存在することもある。このような場合では、フレームのレンダリングは、最も遅いレンダリングパイプラインと同じ速度でしか実行できないことになる。最も遅いパイプラインが終了した時に、フレームがようやく完了することになる。図１に例を示す。ここでは、フレーム１００を４つのカドラント、１１０、１２０、１３０および１４０に分割する。各カドラントを特定のレンダリングパイプラインに割り当てる場合、他のカドラントと比較して、カドラント１１０と対応付けられているパイプラインが行う処理が多いことは明らかである。その結果、カドラント１１０と対応付けられているレンダリングパイプラインが終了した時に、このフレームのレンダリングが完了することになる。この例は極端な場合であるが、任意の複数のレンダリングパイプラインがあるとしても、ある状況では、多重パイプラインコンピュータグラフィックシステムのパフォーマンスは、シングルパイプラインコンピュータグラフィックシステムのパフォーマンスよりずっとよいとは限らないことを示している。
【０００４】
従って、複数のレンダリングパイプラインを有するコンピュータグラフィックシステムに固有の並列処理を、より完全に活用するシステムおよび方法が必要である。特に、複数のレンダリングパイプラインを有する利点をすべての状況の下で実現する必要がある。
【発明の開示】
【課題を解決するための手段】
【０００５】
簡単な発明の要約
ここで説明する本発明は、複数のレンダリングパイプラインを用いてコンピュータグラフィックフレームシーケンスを生成するためのシステム、方法、およびコンピュータプログラム製品である。各フレームに対して、各レンダリングパイプラインがグラフィックデータ総量のサブセットをレンダリングする。各レンダリングパイプラインの出力が、フレーム部を表す。本発明の実施の形態では、各フレーム部は長方形である。各長方形を、以下ではタイルと称する。各レンダリングパイプラインは従って、任意のフレーム内のそれが有する特定のタイルのレンダリングを行う。１つのフレームが完了した後、各レンダリングパイプラインはパフォーマンスリポートを生成する。パフォーマンスリポートは、現在のフレーム内のタイルをレンダリングするのに要する時間量について表している。
【０００６】
フレームが完了すると、各レンダリングパイプラインはそのパフォーマンスリポートをパフォーマンスモニタに送信する。パフォーマンスモニタは、タイルをレンダリングするレンダリングパイプラインが要する時間の間にかなりの不一致があったかどうか判定する。不一致を検出して、この不一致がかなりのものであると判定される場合は（すなわち、ある閾値を越えている場合は）、割り当て手段がタイルのサイズを変更して、次のフレームにする。この場合は、処理負荷が最大のレンダリングパイプラインが、次のフレームのためにそのタイルのサイズを小さくすることになる。これにより、このパイプラインの負荷を低減する。次に、そのパフォーマンスリポートからわかる処理負荷が最も小さいレンダリングパイプラインが、そのタイルのサイズを大きくすることになる。従って、このパイプラインの負荷が増加する。後者のパイプラインでは次のフレームのための処理が増え、前者のパイプラインではレンダリングが少なくなる。これにより、レンダリングパイプライン全体にわたって負荷のバランスがとれ、次のフレームになる。これは、各フレームをレンダリングした後で、ほぼリアルタイムで負荷のバランスをとることを表しているので、並列アーキテクチャを最適に用いることができる。
【０００７】
さらに本発明の実施の形態の機能、利点さらに各種の本発明の実施の形態の構造および動作について、添付の図面を参照にして詳細に説明する。
【発明を実施するための最良の形態】
【０００８】
発明の詳細な説明
Ｉ．概要
ここで説明する本発明は、複数のレンダリングパイプラインを用いてコンピュータグラフィックフレームシーケンスを生成するシステム、方法およびコンピュータプログラム製品である。各フレームに対して、各レンダリングパイプラインがグラフィックデータ総量のサブセットをレンダリングする。各レンダリングパイプラインの出力は、フレーム部を表す。本発明の実施の形態では、各フレーム部は長方形である。各長方形について、以下ではタイルと称する。各レンダリングパイプラインは従って、任意のフレーム内のその特定のタイルをレンダリングする。フレームが完了した後、各レンダリングパイプラインは次に、パフォーマンスリポートを生成する。パフォーマンスリポートは、現在のフレーム内のタイルをレンダリングするのに要した時間量を表す。フレームが完了すると、各レンダリングパイプラインがそのパフォーマンスリポートをパフォーマンスモニタに送信する。パフォーマンスモニタが、レンダリングパイプラインがタイルをレンダリングするのに要した時間の間にかなりの不一致があったかどうか判定する。不一致を検出して、かなりの不一致があると判定される場合には（すなわち、ある閾値を越える場合には）、次に、割り当て手段がタイルのサイズを変更して次のフレームにする。このような場合は、処理負荷が最大のレンダリングパイプラインが、次のフレームのためにそのタイルのサイズを小さくすることになる。これにより、このパイプラインの負荷を低減する。そのパフォーマンスリポートからわかるように、処理負荷が最も小さいレンダリングパイプラインは次に、そのタイルのサイズを大きくする。従って、このパイプラインの負荷が増加することになる。従って、後者のパイプラインでは、次のフレームのために実行する処理が増加することになり、前者のパイプラインでは、実行するレンダリングが低減することになる。待ち時間がほとんどなく、レンダリングパイプライン全体にわたって負荷のバランスをとって次のフレームになる。これは、各フレームをレンダリングした後、ほぼリアルタイムで負荷のバランスをとることを表し、並列アーキテクチャを最適に用いることができるようになる。
【０００９】
図２は、４つのタイルに細分したフレームを示す。個別のレンダリングパイプラインが、各タイルにあてられている。従って、第１のレンダリングパイプラインが、図２のフレームの左上のカドラントをレンダリングし、第２のレンダリングパイプラインが、フレームの右上のカドラントをレンダリングする等になる。各レンダリングパイプラインの処理が完了すると、４つの得られるタイルを合成して、図２のフレームを形成する。
【００１０】
現在のフレームのレンダリングが完了した後、各レンダリングパイプラインがパフォーマンスリポートを生成して、パフォーマンスモニタに送信する。パフォーマンスモニタが、それぞれのレンダリングパイプラインの処理負担に不一致があるかどうか判定する。例えば、上側タイルの１つまたは両方で、下側タイルの１つまたは両方よりもかなり長くレンダリングに時間がかかったと判定される場合には、次に処理負荷を、レンダリングパイプラインの間で均等にバランスをとらないようにする。タイルのサイズを変更して、レンダリングパイプライン間で処理負担を再割り当てする。図３に、考えられる結果を示す。ここでは、上下のタイルを分ける水平方向の境界を、下側にずらしている。上側カドラントは共に大きくなっており、下側カドラントは共に小さくなっている。その結果、上側タイル用の２つのレンダリングパイプラインはそれぞれ、フレームをより多くレンダリングする。また、２つの下側のタイル用の２つのレンダリングパイプラインは、フレームより少なくレンダリングする。
【００１１】
図４は、図２のフレームに対して水平方向の境界が下がり、縦方向の境界が左に移動した場合を示す。また、これにより、各４つのレンダリングパイプラインの処理作業負荷を調整する。右上のタイルと対応付けられているレンダリングパイプラインのレンダリング作業負荷が最も大きく増加している。フレームの左下のタイル用のレンダリングパイプラインのレンダリング作業負荷が最も少なくなっている。
【００１２】
ＩＩ．システム
本発明のシステムについて、一般的に図５に示す。コンピュータグラフィックシステム５００は、グラフィックアプリケーションプログラム５１０を含む。アプリケーション５１０は、各レンダリングパイプライン５２０ａ〜５２０ｎと通信を行う。これにより、アプリケーション５１０から各レンダリングパイプライン５２０ａ〜５２０ｎにグラフィックデータを分散する。レンダリングが完了すると、各レンダリングパイプラインがパフォーマンスリポートをパフォーマンスモニタ（図示せず）に送信する。本発明の実施の形態では、パフォーマンスモニタをアプリケーション５１０の一部として実行する。各パイプラインのパフォーマンスリポートは、当該パイプラインが現在のフレームのそのタイルをレンダリングするのに要する時間量を表す。また、各レンダリングパイプライン５２０ａ〜５２０ｎが、そのタイルと対応付けられているレンダリングしたデータをコンポジタ５３０に送信する。コンポジタ５３０は次に、レンダリングしたデータ、すなわちタイルを合成して、出力５３５を生成して、次に表示装置５４０に表示することができる。本発明の別の実施の形態では、出力５３５をプリンタまたはメモリ媒体等の異なる形態の入力／出力（Ｉ／Ｏ）装置に送信することもできる。
【００１３】
図６は、レンダリングパイプラインをより詳細に示す。レンダリングパイプライン６００は説明のためだけであり、本発明の範囲を限定するものではない。当業者にわかるように、この説明のように、他の種類のレンダリングパイプラインを用いることもできる。従って、レンダリングパイプライン５２０ａ〜５２０ｎが図６に示す構造を有することもできるが、レンダリングパイプラインの他の実施の形態を用いることもできる。また、レンダリングパイプライン５２０ａ〜５２０ｎが同一である必要はない。
【００１４】
レンダリングパイプライン６００は、バーテックス操作手段６２２、ピクセル操作手段６２４、ラスタライザ６３０、テクスチャメモリ６４０、およびフレームバッファ６５０を備える。レンダリングパイプラインは、グラフィックデータ６１０を受信する。これは、始めにバーテックス操作手段６２２およびピクセル操作手段６２４に送られる。テクスチャメモリ６４０は、テクスチャ６４２等の２つ以上のテクスチャまたは画像を保存できる。テクスチャメモリ６４０は、バス（図示せず）により、テクスチャユニット６３４と接続している。ラスタライザ６３０は、テクスチャユニット６３４およびブレンディングユニット６３６を備える。テクスチャユニット６３４およびブレンディングユニット６３６を、グラフィックプロセッサの一部として別々にも一緒にも実施することができる。レンダリングパイプライン６００のこれらの機能の動作は、ここに記載の当該技術の当業者に周知のものである。
【００１５】
本発明の実施の形態では、テクスチャユニット６３４が、テクスチャメモリ６４０に保存してあるテクスチャおよび／または画像６４２からポイントサンプルまたは濾波したテクスチャサンプルのいずれかを取得することができる。ブレンディングユニット６３６が、重み付け値によりテクセルおよび／またはピクセル値を混合して、１つのテクセルまたはピクセルを生成する。テクスチャユニット６３８および／またはブレンディングユニット６３６の出力を、フレームバッファ６５０に保存する。フレームバッファ６５０の内容を次に、出力６７０として読み出す。
【００１６】
図７は、そのパフォーマンスリポート動作を行っている間の本発明のシステムをより詳細に示す。各レンダリングパイプライン５２０ａ〜５２０ｎが、それぞれ７３０ａ〜７３０ｎと表示されたパフォーマンスリポートを、パフォーマンスモニタ７２０に送信する。図示の実施の形態では、パフォーマンスモニタ７２０をアプリケーション５１０に組み込んでいる。パフォーマンスリポートは、各フレームのレンダリングの後で行われる。パフォーマンスモニタ７２０が、それぞれのレンダリングパイプライン５２０ａ〜５２０ｎの作業負荷にいずれかの不一致があることをパフォーマンスリポートが示しているかどうか判定する。本発明の実施の形態では、パフォーマンスモニタ７２０が、現在のフレームのタイルをレンダリングするのに要した時間が最も長いレンダリングパイプラインを識別して、現在のフレームのタイルをレンダリングするのに要した時間が最も短いレンダリングパイプラインを識別する。２つの時間の間の差が閾値を越えている場合は、かなりの不一致が存在するという結論に達する。このような結論を次に、割り当て手段７１０に送る。本発明の別の実施の形態では、パフォーマンスリポートに示されるようなレンダリングパイプラインの作業負荷をクロックサイクルによって表すことに留意されたい。
【００１７】
図８では、割り当て手段７１０がグラフィックデータを各レンダリングパイプライン５２０ａ〜５２０ｎに送信する。各レンダリングパイプラインが、次のフレームに必要な全グラフィックデータの個別のサブセットを受信する。従って、レンダリングパイプライン５２０がグラフィックデータ８１０ａを受信する。同様に、レンダリングパイプライン５２０ｂがグラフィックデータ８１０ｂを受信し、以下同様である。各レンダリングパイプラインに送信されたグラフィックデータは、レンダリングパイプライン５２０ａ〜５２０ｎにそれぞれ対応付けられているタイルのサイズおよび形状のいずれの変化についても反映している。タイルのサイズ変更プロセスを、割り当て手段７１０が実行する。以下に、より詳細に説明する。
【００１８】
図７および図８に示す実施の形態では、割り当て手段７１０およびパフォーマンスモニタ７２０をグラフィックアプリケーション５１０の構成部品として示していることに留意されたい。本発明の別の実施の形態では、これらの手段をアプリケーション５１０の外部に配置することができる。これらの手段を、ソフトウェア、ハードウェア、またはファームウェア、またはこれらを組み合わせて実施することもできる。
【００１９】
本発明の割り当て手段７１０およびパフォーマンスモニタ７２０を、ハードウェア、ソフトウェアまたはこれらを組み合わせて用いて実施することもできる。本発明の実施の形態では、アプリケーションプログラム５１０の一部としてソフトウェアとして実施する。これを、コンピュータシステムまたは他の処理システム上で実行する。このようなコンピュータシステム９００の例を、図９に示す。コンピュータシステム９００は、プロセッサ９０４等の２つ以上のプロセッサを含む。プロセッサ９０４を、バスまたはネットワーク等の通信インフラストラクチャ９０６と接続する。この説明を読んだ後、当該技術の当業者にとって、他のコンピュータシステムおよび／またはコンピュータアーキテクチャを用いてどのように本発明を実施するか、明らかになるであろう。
【００２０】
コンピュータシステム９００はまた、メインメモリ９０８、好ましくはランダムアクセスメモリ（ＲＡＭ）を含み、セカンダリメモリ９１０も含む。セカンダリメモリ９１０は、例えば、ハードディスクドライブ９１２および／またはリムーバブル記憶装置９１４を含むこともできる。リムーバブル記憶装置９１４は、周知の方法でリムーバブル記憶ユニット９１８からの読み出し、および／または書き込みを行う。リムーバブル記憶ユニット９１８は、フロッピー（登録商標）ディスク、磁気テープ、光学ディスクまたはリムーバブル記憶装置９１４で読み書きする他の記憶媒体である。リムーバブル記憶ユニット９１８は、コンピュータソフトウェアおよび／またはデータを保存しているコンピュータが使用可能な記憶媒体を含む。
【００２１】
別の実施例では、セカンダリメモリ９１０は、コンピュータシステム９００にコンピュータプログラムまたは他の命令をロードできる他の手段を含むこともできる。このような手段は、例えば、リムーバブル記憶ユニット９２２およびインターフェース９２０である。このような手段の例として、リムーバブルメモリチップ（ＥＰＲＯＭ、またはＰＲＯＭ等）、対応するソケット、他のリムーバブル記憶ユニット９２２、ソフトウェアおよびデータをリムーバブル記憶ユニット９２２からコンピュータシステム９００へ転送するインターフェース９２０を含むこともできる。
【００２２】
コンピュータシステム９００はまた、通信インターフェース９２４を含むこともできる。通信インターフェース９２４により、ソフトウェアおよびデータをコンピュータシステム９００および外部装置の間で転送することができる。通信インターフェース９２４の例として、モデム、ネットワークインターフェース（イーサネット（登録商標）カード等）、通信ポート、ＰＣＭＣＩＡスロットおよびカード等を含むこともできる。通信インターフェース９２４を介して転送したソフトウェアおよびデータは、信号９２８の形態である。通信インターフェース９２４が受信可能な電子信号、電磁信号、光信号または他の信号とすることができる。これらの信号９２８を、通信経路（すなわち、チャネル）９２６を介して通信インターフェース９２４に送る。このチャネル９２６は、信号９２８を送信する。ワイヤまたはケーブル、光ファイバ、電話線、携帯電話リンク、ＲＦリンクおよび他の通信チャネルを用いて実施することもできる。本発明の実施の形態では、信号９２８は、パフォーマンスリポート７３０ａ〜７３０ｎを含み、パフォーマンスモニタ７２０が受信して処理する。グラフィックデータ８１０ａ〜８１０ｎを示す情報についても、プロセッサ９０４からレンダリングパイプライン５２０ａ〜５２０ｎへ信号９２８の形態で送信することができる。
【００２３】
この文献では、”コンピュータプログラム媒体”および”コンピュータが使用可能な媒体”という用語は、一般にリムーバブル記憶ユニット９１８および９２２、ハードディスクドライブ９１２にインストールするハードディスク、および信号９２８等を表すのに用いる。これらのコンピュータプログラム製品は、コンピュータシステム９００にソフトウェアを供給する手段である。
【００２４】
コンピュータプログラム（コンピュータ制御論理ともいう）を、メインメモリ９０８および／またはセカンダリメモリ９１０に格納する。コンピュータプログラムはまた、通信インターフェース９２４を介して受信することもできる。このようなコンピュータプログラムを実行することにより、コンピュータシステム９００に、ここに説明した本発明を実施させることができる。特に、コンピュータプログラムを実行することにより、プロセッサ９０４に本発明を実施させることができる。従って、このようなコンピュータプログラムは、コンピュータシステム９００の制御装置ということになる。ソフトウェアを用いて本発明を実施する場合は、ソフトウェアをコンピュータプログラム製品に格納して、リムーバブル記憶装置９１４、ハードドライブ９１２または通信インターフェース９２４を用いてコンピュータシステム９００にロードすることもできる。
【００２５】
ＩＩＩ．方法
一実施の形態による本発明の方法を、図１０に示す。この実施の形態は、フレームのタイルを横一列または縦一列（すなわち、１×ｎまたはｎ×１）で構成する場合の処理について述べている。このプロセスは、ステップ１０１０から開始する。ステップ１０２０では、インデックス値ｉをゼロに初期化する。ステップ１０３０では、パフォーマンスモニタが各レンダリングパイプライン用に、フレームｉのパフォーマンスリポートを受信する。ステップ１０４０では、このアプリケーションの実行が完了したかどうか判定する。完了したならば、このプロセスはステップ１０８０で終了する。アプリケーションがまだ終了していない場合は、このプロセスはステップ１０５０に続く。ここで、現在のフレームのそれぞれのタイルをレンダリングするのに要した時間量について、レンダリングパイプライン間に不均衡があったかどうか判定する。この判定について、より詳細に以下に示す。
【００２６】
不均衡を検出する場合は、次にこのプロセスはステップ１０５５に続く。ここで、次のフレームをレンダリングするために、レンダリングパイプライン間の負荷のバランスを再びとるように、タイルのサイズを変更する。例えば、フレームのタイルが横に一列に並んでいて、隣接するタイルに対応する２つのレンダリングパイプラインの間に不均衡が存在する場合は、サイズ変更について数値的に以下のように表すことができる。
【００２７】
ピクセルシフト＝０．５＊（ｍａｘｔｉｍｅ−ｍｉｎｔｉｍｅ）＊（ｍａｘｔｉｌｅの幅）／ｍａｘｔｉｍｅ
この式は、２つの隣接するタイルの間の縦方向の境界をずらす量を表している。ｍａｘｔｉｍｅは、そのタイルをレンダリングするのが最も長かったレンダリングパイプラインが要した時間量をいう。同様に、ｍｉｎｔｉｍｅは、そのタイルをレンダリングするのが最も短かったレンダリングパイプラインが要した時間をいう。ｍａｘｔｉｌｅの幅は、レンダリングするのに最も時間がかかったタイルの幅である。
【００２８】
ｍａｘｔｉｍｅおよびｍｉｎｔｉｍｅに対応するタイルがじかに隣接していない場合は、次に間に入っている１つのタイルまたは複数のタイルは現在の幅を保ち、小さいタイルの方向に位置を変えることに留意されたい。また、タイルが横一列ではなく縦一列に配列されている場合は、次にタイルの間の境界は水平方向で、境界のずれは縦方向である。従って、上のｍａｘｔｉｌｅの幅をｍａｘｔｉｌｅの高さと置換する。これらの変化について、以下により詳細に説明する。
【００２９】
ステップ１０６０では、次のフレームを処理するためにインデックスｉを１増分する。ステップ１０７０では、グラフィックデータを割り当て手段がレンダリングパイプラインに送信する。グラフィックデータの割り当ては、タイルごとに行う。特定のタイルと対応付けられているグラフィックデータを、特定のレンダリングパイプラインに送信する。必要な場合には、上記ステップ１０５５で説明したプロセスによりタイルのサイズを変更する。次のフレームのレンダリングが完了したら、処理はステップ１０３０に戻る。
【００３０】
レンダリングパイプライン間に不均衡が存在するかどうか判定する上記ステップ１０５０について、図１１により詳細に示す。このプロセスは、ステップ１１１０から開始する。ステップ１１２０では、ｍａｘｔｉｍｅのレンダリングパイプライン、すなわち、現在のフレームのそのタイルのレンダリング時間が最も長いパイプラインを判定する。ステップ１１３０では、ｍｉｎｔｉｍｅのレンダリングパイプライン、すなわち、現在のフレームのそのタイルのレンダリング時間が最も短いパイプラインを判定する。ステップ１１４０では、ｍａｘｔｉｍｅとｍｉｎｔｉｍｅとの間の差が閾値を越えているかどうか判定する。越えている場合は、次に不均衡を検出する（条件１１６０）。越えていない場合には、次に不均衡が無いことを検出する（条件１１５０）。このプロセスは、ステップ１１７０で終了する。
【００３１】
本発明の実施の形態では、閾値を、ｍａｘｔｉｍｅの一定の割合であると定義している。例えば、閾値を、ｍａｘｔｉｍｅの１０％と定義することができる。この場合、ｍａｘｔｉｍｅとｍｉｎｔｉｍｅとの間の差がｍａｘｔｉｍｅの１０％を越えている場合は、次に不均衡を検出する。データセットのサイズをレンダリングしているかどうかにより、別の割合が適当となる。あるデータセットには、１０％が適当である。しかしながら、１または２％が大きなデータセットにはより適当である。データセットでは、ｍａｘｔｉｍｅの１または２％でもかなりの不一致となるからである。
【００３２】
ステップ１０５５でのタイルサイズ変更について、図１２Ａおよび図１２Ｂに示す。図１２Ａのフレームは、２つのタイルからなる。現在のフレームのそれらの幅は、１２１０および１２３０と表示されている。この例では、それぞれのレンダリングパイプラインで要する時間に不均衡が検出されている。幅１２３０を有するタイルが、幅１２１０を有するタイルよりもレンダリングする時間がかなり長くかかっている。その結果、２つのタイルの間の境界を、距離１２３７だけずらす。従って、次のフレームには、タイルがそれぞれ幅１２２０および１２４０を有することになる。このサイズ変更により、各レンダリングパイプラインによってレンダリングする必要があるグラフィックデータの量を変更するので、それぞれの作業負荷が、次のフレームではよりバランスがとれたものとなる。
【００３３】
図１２Ｂは、縦方向に配列した２つのタイルからなるフレームを示す。現在のフレームでは、タイルは高さ１２５０および１２７０を有している。２つのタイルのレンダリング時間にかなりの不均衡が存在すると判定される。特に、幅１２７０を有するタイルは、幅１２５０を有するタイルよりもレンダリングするのにかなり長い時間がかかっている。その結果、２つのタイルの間の境界を、距離１２７７だけ上にずらす。次のフレームでは従って、一方のタイルが高さ１２８０を有し、他方のタイルが高さ１２６０を有することになる。従って、次のフレームでは、前者のフレームと比較して、一方のレンダリングパイプラインがより小さなタイルをレンダリングして、他方のレンダリングパイプラインがより大きなタイルをレンダリングすることになる。それぞれの作業負荷は、次のフレームではさらにバランスがとれている。
【００３４】
図１３Ａおよび図１３Ｂは、横一列に配列した４つのタイルからなるフレームを示す。図１３Ａに示す現在のフレームでは、２つの隣接するフレームが幅１３１０および１３２０を有している。次に、４つのレンダリングパイプラインについて判定を行う。幅１３１０を有するタイルと対応付けられているレンダリングパイプラインでは、そのタイルのレンダリング時間が最も短かったのに対し（ｍｉｎｔｉｍｅ）、幅１３２０を有するタイルと対応付けられているレンダリングパイプラインでは、そのタイルのレンダリングが最も長かった（ｍａｘｔｉｍｅ）。また、これらの２つのレンダリング時間差がかなりのものなので、不均衡であると判定される。従って、図１３Ｂに示すように、レンダリングに要する時間が最も短かったタイルの幅を距離１３３５だけ増加する。レンダリングに要する時間が最も長かったタイルを対応する分だけ減らす。従って、次のフレームでは、これらの２つのタイルはそれぞれ幅１３３０および１３４０を有し、従って、それらに対応付けられたレンダリングパイプラインの作業負荷が変更される。他の２つのタイルの幅は、変更されないままである。
【００３５】
図１４Ａおよび図１４Ｂは、不均衡が検出されているが、レンダリングするのに要する時間が最も長いタイルとレンダリングするのに要する時間が最も短いタイルとの間に、２つ以上のタイルがある状態を示している。図１４Ａでは、幅１４１０を有するタイルのレンダリング時間が最も短く、幅１４３０を有するタイルのレンダリング時間が最も長かったと判定されている。その結果、タイルの境界が、図１４Ｂに示すようにずれている。特に、レンダリング時間が最も短かったフレームの右側の境界が、距離１４３５だけ右にずれている。また、レンダリング時間が最も長かったフレームの左側の境界が、同じ距離だけ右にずれている。従って、次のフレームのために、これらの２つのタイルはそれぞれ幅１４３０および１４５０を有している。幅１４２０を有する間のタイルが右に位置が移動しているが、幅は元のままである。従って、このタイルの位置は移動しているが、サイズ変更はされていない。
【００３６】
本発明のプロセスの別の実施の形態について、図１５に示す。この実施の形態は、フレームが横に２つ縦に２つの４つのタイルに分割されている状態について説明している。このプロセスは、ステップ１５０５から開始する。ステップ１５１０では、インデックス値をゼロに初期化する。ステップ１５１５では、パフォーマンスモニタが各レンダリングパイプラインから現在のフレームのパフォーマンスリポートを受信する。ステップ１５２０では、アプリケーションの実行が終了しているかどうか判定する。終了している場合は、プロセスはステップ１５７０で終了するが、終了していない場合は、プロセスはステップ１５２５に続く。ここで、ハーフフレームを２つレンダリングするのに不均衡が存在するかどうか判定する（すなわち、２つの左側のタイルを一括し、２つの右側のタイルを一括して比較する）。この判定について、以下により詳細に説明する。
【００３７】
このような不均衡が存在する場合は、次に処理はステップ１５３０に続く。ここで、縦方向の境界が、左側または右側のいずれかにずれているので、４つのタイルすべてのサイズが変更されている。このずれの大きさを、図１０のステップ１０５５のプロセスにより判定する。この場合、左側ハーフフレームおよび右側ハーフフレームを、１つのタイルとして扱う。左側ハーフタイルをレンダリングする時間は、左上のタイルおよび左下のタイルをレンダリングする時間の合計である。右側ハーフフレームをレンダリングする時間は、同様に計算する。次に、ピクセルシフトを計算する上記の式を当てはめて、境界のずれの程度を判定する。
【００３８】
ステップ１５３５では、左半分の上下のタイルの間に不均衡が存在するかどうか決定する。存在する場合は、処理はステップ１５４０に続く。ここで、左上（ＵＬ）および左下の（ＬＬ）タイルのサイズを変更する。ステップ１５４５では、右上および右下のタイルＵＲ、ＬＲのレンダリングの間に不均衡が存在するかどうか判定する。存在する場合は、次に右上および右下のタイルのサイズ変更をステップ１５５０で行う。ステップ１５４０および１５５０のサイズ変更動作を、ピクセルシフトを計算する上記の式により行う。ｍａｘｔｉｌｅの幅を、ｍａｘｔｉｌｅの高さで置換する。
【００３９】
ステップ１５５５では、次のフレームをレンダリングできるように、インデックス値を１増分する。ステップ１５６０では、次のフレームのグラフィックデータを、各レンダリングパイプラインに送信する。任意のレンダリングパイプラインに送信したグラフィックデータは、サイズ変更を行ったタイルに依存する。処理は次に、ステップ１５１５に戻る。
【００４０】
左側ハーフフレームと右側ハーフフレームとの間に不均衡が存在するかどうか判定するステップである、上記ステップ１５２５について、図１６により詳細に説明する。このプロセスは、ステップ１６１０から開始する。ステップ１６２０では、左側のタイルに要する総レンダリング時間について、左上の（ＵＬ）タイルのレンダリングに要する時間（ｕｐｐｅｒ＿ｌｅｆｔ＿ｔｉｍｅ）と、左下の（ＬＬ）タイルのレンダリングに要する時間（ｌｏｗｅｒ＿ｌｅｆｔ＿ｔｉｍｅ）とを合計することにより判定する。便宜上、総計をｌｅｆｔ＿ｔｉｍｅと称する。
【００４１】
ステップ１６３０では、右側のタイルである、右上のタイルＵＲおよび右下のタイルＬＲに対して、同様の動作を行う。右側のタイルに要する総レンダリング時間について、右上の（ＵＲ）タイルのレンダリングに要する時間（ｕｐｐｅｒ＿ｒｉｇｈｔ＿ｔｉｍｅ）と、右下の（ＬＲ）タイルのレンダリングに要する時間（ｌｏｗｅｒｒｉｇｈｔ＿ｔｉｍｅ）とを合計することにより判定する。便宜上、総計をｒｉｇｈｔ＿ｔｉｍｅと称する。
【００４２】
ステップ１６４０では、ｌｅｆｔ＿ｔｉｍｅおよびｒｉｇｈｔ＿ｔｉｍｅの間の差の大きさが閾値を越えているかどうか判定する。越えている場合は、左側ハーフフレームと右側ハーフフレームとの間の不均衡を検出する（状態１６５０）。越えていない場合は、次にかなりの不均衡が無いことを検出する（状態１６６０）。このプロセスは、ステップ１６７０で終了する。
【００４３】
図１５の処理の結果について、図１７Ａ〜図１７Ｃに示す。図１７Ａは、２×２に配列されたタイルからなるフレームを示す。左側ハーフフレームの幅を、幅１７０５と示す。右側ハーフフレームの幅を、幅１７１０と示す。上側タイルの高さを高さ１７１２と示し、下側のタイルの高さを高さ１７１４と示す。図１７Ｂでは、右側の時間が左側の時間をかなりのマージンで越えていることが判定されている。その結果、縦方向の境界が距離１７２２だけ右側にずれている。その結果、左側ハーフフレームが幅１７１５を有し、右側ハーフフレームが幅１７２０を有している。この点で、上側のタイルおよび下側のタイルの高さは変化していない。図１７Ｃでは、フレームの左側および右側が独立していると考えられる。左側に対し、タイルＵＬが、現在のフレームのタイルＬＬをレンダリングするよりもかなり時間がかかったと判定される。その結果、左側の水平方向の境界が上に上がるので、タイルＬＬの高さが距離１７３５だけ増加する。その結果、タイルＵＬが、高さ１７３０を有することになる。右側については、タイルＵＲが、現在のフレームのタイルＬＲをレンダリングするよりもかなり時間がかかったと判定される。その結果、右側の水平方向の境界が距離１７４５だけ上に上がる。次のフレームのために、タイルＵＲの高さが１７４０になる。
【００４４】
本発明の方法の別の実施の形態では、２×２フレームを、上側ハーフフレームおよび下側ハーフフレームとしてまず処理することができる。このような実施の形態では、上側ハーフフレームおよび下側ハーフフレームのいずれかがもう一方よりもレンダリングする時間がかかったかどうか判定する。いずれかのハーフフレームについて、このハーフフレームをレンダリングするのに要した時間は、その左側のタイルおよび右側のタイルのレンダリング時間の合計である。上側ハーフフレームまたは下側ハーフフレームのいずれかが、レンダリングするのにもう一方よりもかなり時間を要した場合は、次のフレームのために、水平方向の境界をピクセルシフトを計算する上記の式で判定された分だけずらす。次に、これらのハーフフレームそれぞれの左側のタイルおよび右側のタイルについて考えることができる。各ハーフフレームについて、左側のタイルまたは右側のタイルがもう一方よりもレンダリングするのにかなり時間を要したかどうか判定する。時間を要した場合には、次のフレームのために、そのハーフフレームの縦方向の境界を、上記のピクセルシフトの式によりずらす。
【００４５】
上述の２×２、１×ｎ、およびｎ×１の場合のほかに、タイリング法をこのような場合に分解することができるとすれば、上記の方法を、タイリング法に応用することができる。例えば、８つのタイルが横２列に並んでいるタイリング法を、それぞれ１×８のハーフタイル２つに分解することができる図１０、図１１および図１２Ｂで述べたように、２つのハーフタイルの間のレンダリング時間の差がかなりのもののである場合は、水平方向の境界を、始めにずらすことができる。図１０、図１１、および図１３Ｂまたは図１４Ｂで述べたように、各ハーフフレーム内でサイズ変更を行うことができる。
【００４６】
レンダリングパイプラインの観点から、本発明の処理について図１８に示す。このプロセスは、ステップ１８１０から開始する。ステップ１８２０では、インデックス値をゼロに初期化する。ステップ１８３０では、フレームｉをレンダリングする。ステップ１８４０では、各レンダリングパイプラインが、現在のフレームのそれぞれのタイルをレンダリングするのに要する時間の長さを表すパフォーマンスリポートを生成する。ステップ１８５０では、パフォーマンスリポートをパフォーマンスモニタに送信する。ステップ１８６０では、アプリケーションの実行が終了したかどうか判定する。終了している場合は、このプロセスはステップ１８９０で終了する。終了していない場合は、このプロセスはインデックス値を１増分するステップ１８７０に続く。ステップ１８８０では、いずれかの不均衡を判定していずれかのタイルのサイズを変更した後、レンダリングパイプラインが次のフレームのためのグラフィックデータを受信する。前のフレームで行われたように、各レンダリングパイプラインが、特定のタイルに対応付けられたグラフィックデータを受信する。このプロセスは次に、次のフレームをレンダリングするステップ１８３０に続く。
【図面の簡単な説明】
【００４７】
【図１】図１は、他のタイルと比較して、１つのタイルのレンダリングにかなり要するフレームを示す。
【図２】図２は、全タイルにレンダリングを要するフレームを示す。
【図３】図３は、タイルのサイズを変更して、それぞれのレンダリングパイプラインで必要な処理を調整したフレームを示す。
【図４】図４は、タイルのサイズをさらに変更して、レンダリングパイプライン全体にわたって処理負担をさらに再割り当てしたフレームを示す。
【図５】図５は、本発明の実施の形態による全体的なシステムを示す。
【図６】図６は、本発明の実施の形態によるレンダリングパイプラインをより詳細に示すブロック図である。
【図７】図７は、パフォーマンスモニタおよび割り当て手段をグラフィックアプリケーションに組み込んだ本発明の実施の形態を示す。
【図８】図８は、本発明の実施の形態によるレンダリングパイプラインに分散したグラフィックデータを示す。
【図９】図９は、本発明の実施の形態の計算環境を示す。
【図１０】図１０は、フレームのタイルを横一列または縦一列に配列した場合の本発明の実施の形態の処理を示すフローチャートである。
【図１１】図１１は、本発明の実施の形態による１組のレンダリングパイプライン全体にわたって不均衡があるかどうかの判定を、より詳細に示すフローチャートである。
【図１２】図１２Ａおよび図１２Ｂは、２つのタイルからなる任意のフレームのタイルのサイズ変更を示す。
【図１３】図１３Ａおよび図１３Ｂは、横一列に配列した４つのタイルからなるフレームのタイルのサイズ変更を示す。
【図１４】図１４Ａおよび図１４Ｂは、フレームが横一列に配列した４つのタイルからなり、サイズの大きくなったタイルがサイズの小さくなったタイルに隣接しないタイルのサイズ変更表す。
【図１５】図１５は、２つの列および２つの行に配列した４つのタイルからなるフレームの、本発明の実施の形態の処理を示すフローチャートである。
【図１６】図１６は、本発明の実施の形態による、２×２配列の４つのタイルからなるフレームの左側のタイルと右側のタイルとに対して不均衡が存在するかどうかの判定を示すフローチャートである。
【図１７】図１７Ａから図１７Ｃは、タイルが始めに２×２配列で構成されているフレームでのタイルのサイズ変更を表す。
【図１８】図１８は、レンダリングパイプラインの観点から、本発明の実施の形態の処理を示すフローチャートである。
【図１】
2006512680.tif 000002
【図２】
2006512680.tif 000003
【図３】
2006512680.tif 000004
【図４】
2006512680.tif 000005
【図５】
2006512680.tif 000006
【図６】
2006512680.tif 000007
【図７】
2006512680.tif 000008
【図８】
2006512680.tif 000009
【図９】
2006512680.tif 000010
【図１０】
2006512680.tif 000011
【図１１】
2006512680.tif 000012
2006512680.tif 000013
2006512680.tif 000014
2006512680.tif 000015
【図１５】
2006512680.tif 000016
【図１６】
2006512680.tif 000017
2006512680.tif 000018
【図１８】
2006512680.tif 000019
【国際調査報告】
2006512680.tif 000020