(57)【要約】      （修正有）【課題】グラフィックプロセッサおいて、不必要なグラフィック処理オペレーションを回避し、消費電力の削減と効率を改善する選択的ラスタライゼーションを提供する。【解決手段】グラフィックパイプライン１０において、レンダービットが１である場合、タイルの中の全てのものを、いつも通りにレンダリングする。レンダービットが０である場合、タイルに対しては何もラスタライゼーションしない。それに応じて、デプステスト、ピクセルシェーディング、フレームバッファアクセスおよびマルチサンプルアンチエリアシング（ＭＳＡＡ）リゾルブは、このタイルに対して行われない。【選択図】図１
2018163678.tif 000002
【特許請求の範囲】
【請求項１】
ピクセルまたはサンプルをタイルの中に電子的に編成するステップと、
バーテクスシェイダの位置部分をレンダリングするステップと、
第１タイルが以前の第２タイルから変化しているか否かを決定するために、前記位置部分のレンダリングの後でインジケータを検査するステップと、を含み、
前記第１タイルが以前の第２タイルから変化していない場合には、前記バーテクスシェイダの属性部分をレンダリングすることなく、かつ、
前記第１タイルが以前の第２タイルから変化している場合に、前記位置部分に加えて前記属性部分をレンダリングする、
方法。
【請求項２】
タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用するステップと、
を含む、請求項２に記載の方法。
【請求項４】
前記指示に対するそれぞれのタイルに関するビットを使用するステップと、
タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用するステップと、
を含む、請求項２に記載の方法。
【請求項５】
ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットをビットマスクに保管するステップと、
を含む、請求項４に記載の方法。
【請求項６】
一連のタイルサイズを用いた階層的ラスタライゼーションを使用するステップと、
を含む、請求項２に記載の方法。
【請求項７】
前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付けるステップと、
を含む、請求項６に記載の方法。
【請求項８】
最初にバーテクスシェイダの位置部分をレンダリングするステップと、
バーテクス属性シェイディングを遅延させるステップと、
を含む、請求項１に記載の方法。
【請求項９】
指示ビットが前記タイルをレンダリングしないよう指示する場合に、バーテクス属性シェイディングを回避するステップと、
を含む、請求項８に記載の方法。
【請求項１０】
少なくとも一つのビットがラスタライゼーションしないように指示する場合は、バーテクス属性シェイディングに進む以前に、境界ボックスとオーバーラップしているタイルにおける全てのビットを検査するステップと、
を含む、請求項９に記載の方法。
【請求項１１】
コンピュータにシーケンスを実行させるコンピュータプログラムであって、
前記シーケンスは、
ピクセルまたはサンプルをタイルの中に電子的に編成し、
バーテクスシェイダの位置部分をレンダリングし、
第１タイルが以前の第２タイルから変化しているか否かを決定するために、前記位置部分のレンダリングの後でインジケータを検査し、
前記第１タイルが以前の第２タイルから変化していない場合には、前記バーテクスシェイダの属性部分をレンダリングすることなく、かつ、
前記第１タイルが以前の第２タイルから変化している場合に、前記位置部分に加えて前記属性部分をレンダリングする、
コンピュータプログラム。
【請求項１２】
前記シーケンスは、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示する、
請求項１１に記載のコンピュータプログラム。
【請求項１３】
前記シーケンスは、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用する、
請求項１２に記載のコンピュータプログラム。
【請求項１４】
前記シーケンスは、前記指示に対するそれぞれのタイルに関するビットを使用し、かつ、
タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用する、
請求項１２に記載のコンピュータプログラム。
【請求項１５】
前記シーケンスは、ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットを保管する
請求項１４に記載のコンピュータプログラム。
【請求項１６】
前記シーケンスは、一連のタイルサイズを用いた階層的ラスタライゼーションを使用する、
請求項１２に記載のコンピュータプログラム。
【請求項１７】
前記シーケンスは、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付ける、
請求項１６に記載のコンピュータプログラム。
【請求項１８】
前記シーケンスは、最初にバーテクスシェイダの位置部分をレンダリングし、かつ、
バーテクス属性シェイディングを遅延させる、
請求項１１に記載のコンピュータプログラム。
【請求項１９】
前記シーケンスは、指示ビットが前記タイルをレンダリングしないよう指示する場合に、バーテクス属性シェイディングを回避する、
請求項１８に記載のコンピュータプログラム。
【請求項２０】
前記シーケンスは、少なくとも一つのビットがラスタライゼーションしないように指示する場合は、バーテクス属性シェイディングに進む以前に、境界ボックスとオーバーラップしているタイルにおける全てのビットを検査する、
請求項１９に記載のコンピュータプログラム。
【請求項２１】
ラスタライザであり、
ピクセルまたはサンプルをタイルの中に電子的に編成し、バーテクスシェイダの位置部分をレンダリングし、第１タイルが以前の第２タイルから変化しているか否かを決定するために前記位置部分のレンダリングの後でインジケータを検査し、
前記第１タイルが以前の第２タイルから変化していない場合には、前記バーテクスシェイダの属性部分をレンダリングすることなく、かつ、
前記第１タイルが以前の第２タイルから変化している場合に、前記位置部分に加えて前記属性部分をレンダリングする、ラスタライザと、
前記ラスタライザに接続されたバッファと、
を含む、装置。
【請求項２２】
前記ラスタライザは、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示する、
請求項２１に記載の装置。
【請求項２３】
前記ラスタライザは、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用する、
請求項２２に記載の装置。
【請求項２４】
前記ラスタライザは、前記指示に対するそれぞれのタイルに関するビットを使用し、かつ、
タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用する、
請求項２２に記載の装置。
【請求項２５】
前記ラスタライザは、前記ラスタライザによる使用のために、フレームに対する前記指示に対するビットをビットマスクに保管する、
請求項２４に記載の装置。
【請求項２６】
前記ラスタライザは、一連のタイルサイズを用いた階層的ラスタライゼーションを使用する、
請求項２２に記載の装置。
【請求項２７】
前記ラスタライザは、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付ける、
請求項２６に記載の装置。
【請求項２８】
前記装置は、オペレーティングシステムを含む、
請求項２１に記載の装置。
【請求項２９】
前記装置は、バッテリを含む、
請求項２１に記載の装置。
【請求項３０】
前記装置は、ファームウェア、および、前記ファームウェアをアップデートするためのモジュール、を含む、
請求項２１に記載の装置。
【請求項３１】
請求項１１乃至２０のうちいずれか一項に記載のコンピュータプログラムを記憶したコンピュータで読取り可能な有形の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはグラフィック処理に関し、より特定的にはラスタライゼーションに関する。
【背景技術】
【０００２】
グラフィックプロセッサにとって消費電力と効率は重要である。不必要なグラフィック処理オペレーションを回避するように実質的な努力が行われてきた。デプスカリング（ｄｅｐｔｈ  ｃｕｌｌｉｎｇ）は、描写に係る所定の部分の処理を回避するためのプロセスの例であり、それらの部分が描写に係る他の部分によってふさがれる場合に行われる。このことは、消費電力とエネルギを節約し、かつ、システムのパフォーマンスを改善する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
一般的に、ビデオ描写を構成している複数のフレームのそれぞれが、次から次へとレンダリングされる（ｒｅｎｄｅｒｅｄ）。典型的には、全部のフレームがレンダリングされる。いくつかのケースにおいては、フレームのある部分が一つのフレームから別のフレームになっても変わらないことが分かっていても、そうである。しかしながら、手動で、どの領域がアップデートが必要かを記録し、アップデートが必要な領域だけをレンダリングすることは、著しい管理作業とソフトウェアの複雑性を含んでいる。加えて、プログラム可能なステージは、プリミティブ（ｐｒｉｍｉｔｉｖｅｓ）を転換し、シェイディングするので、アップデートが必要な領域を特定することは、著しい量の作業を含んでいる。
【課題を解決するための手段】
【０００４】
レンダービットが１である場合、タイルの中の全てのものが、いつも通りにレンダリングされる。しかしながら、レンダービットが０である場合、このタイルに対しては何もラスタライゼーションされない。
【図面の簡単な説明】
【０００５】
以下の図面に関していくつかの実施例が説明される。
【図１】図１は、一つの実施例に係る模式的な図である。
【図２】図２は、一つの実施例に従った、ラスタライゼーションシーケンスのフローチャートである。
【図３】図３は、一つの実施例に従った、レンダービットを算出するためのフローチャートである。
【図４】図４は、別の実施例に従った、レンダービットを算出するためのフローチャートである。
【図５】図５は、さらに別の実施例に従った、レンダービットを算出するためのフローチャートである。
【図６】図６は、一つの実施例に対するシステム図である。
【図７】図７は、一つの実施例に係る正面図である。
【発明を実施するための形態】
【０００６】
本発明の一つの実施例に従えば、ピクセルまたはサンプルで構成された、所与のタイルは、あらゆる形状であってよく、正方形または長方形を含んでいる。これらのピクセルは、カラー（ｃｏｌｏｒ）、デプス（ｄｅｐｔｈ）、ステンシル値（ｓｔｅｎｃｉｌ  ｖａｌｕｅ）、および、他の値を含んでいる。それぞれのタイルは、さらに単一のビット、ここにおいてはレンダービット（ｒｅｎｄｅｒ  ｂｉｔ）として参照される、を用いて拡張されている。一つの実施例において、レンダービットが１である場合、タイルの中の全てのものが、いつも通りにレンダリングされる。しかしながら、レンダービットが０である場合、このタイルに対しては何もラスタライゼーションされない。それに応じて、デプステスト、ピクセルシェイディング、フレームバッファアクセス、および、マルチサンプルアンチエリアシング（ＭＳＡＡ）リゾルブは、このタイルに対して行われない。他の実施例においては、それでもなお、いくつかのオペレーションが行われ得るが、レンダービットに基づいて少なくとも一つのオペレーションは回避される。もちろん、レンダービットは、ビット０が全部がレンダリングされるべきことを示し、ビット１はより限定されたレンダリングを示すように、切り換えられてもよい。
【０００７】
別の実施例においては、よりきめの細かいコントロールができるようにするために、それぞれのタイルに対して複数のレンダービットが保管される。例えば、レンダービットは、タイルについて複数のレンダーターゲットのサブセットがリユースされ得ることを示してもよい。
【０００８】
そして、レンダリングされていないタイルは、それらのコンテンツまたはポイントを、レンダリングされていない以前のフレームからの同一のタイルからのコンテンツにコピーする。
【０００９】
このように、いくつかの実施例に従って、ラスタライゼーション作業が全体として削減され得る。たとえ全部でなくても、いくつかのタイルに対するラスタライゼーションが削減されるからである。
【００１０】
スクリーン上の全てのタイルに対して、レンダービットは、長いビットマスク（ｂｉｔｍａｓｋ）の中に保管されてよい。ビットマスクは、グラフィックアーキテクチャに対して、特には、ラスタライザ（ｒａｓｔｅｒｉｚｅｒ）に対して提供される。
【００１１】
図１を参照すると、このように、グラフィックパイプライン１０は、入力アセンブラステージ１２を含んでいる。入力アセンブラステージは、三角形（ｔｒｉａｎｇｌｅ）といったデータをパイプラインに対して供給する。バーテクスシェイダ（ｖｅｒｔｅｘ  ｓｈａｄｅｒ）ステージ１４は、頂点を処理する。ジオメトリシェイダ（ｇｅｏｍｅｔｒｙ  ｓｈａｄｅｒ）ステージ１６は、三角形といった、プリミティブを処理する。ストリーム出力ステージ２６は、パイプラインからのプリミティブデータを、ラスタライザステージ１８への途中で、メモリ２８に対してストリームする。ラスタライザステージ１８は、どのピクセルのプリミティブがオーバーラップしているかを判断して、プリミティブをクリップしてピクセルシェイダのためのプリミティブを用意し、ピクセルシェイダステージ２２をどのように呼び出すか決定する。ピクセルシェイダステージは、プリミティブに対して挿入されたデータを受け取って、カラーといった、ピクセル毎のデータを生成する。最後に、出力合併ステージ２４は、ピクセルシェイダ値、デプス、および、ステンシル情報といった種々のタイプの出力データを、レンダーターゲットおよびデプス／ステンシルバッファのコンテンツと結合して、最終的なパイプライン結果を生成する。ラスタライザステージ１８は、レンダービットを保管するためのバッファ２０を含んでよい。他のグラフィカルパイプラインも、また、他の実施例において使用することができる。
【００１２】
一般的に、三角形をトラバース（ｔｒａｖｅｒｓｅ）する場合に、階層的ラスタライゼーションが使用される。一つの一般的な階層的ラスタライゼーション技術は、三角形の頂点がレンダリングされるように画像平面上に投射することであり、次に、投射された三角形の２次元の境界ボックスを算出する。そして、部分的又は完全にこのボックスの内側にある全てのタイルは、いくつかのオーダーにおいて訪問される。次に、典型的には、より大きなそれぞれのタイルの中のより小さなタイルが訪問等される。大抵は、ある小さなタイルサイズにおいてトラバースを終えることによって、ピクセルレベルに達するまで行われる。
【００１３】
一つの実施例に従えば、ラスタライザステージ１８は変更され、階層的ラスタライゼーションの最中に、レンダービットに係る所与のタイルサイズに達した場合、タイルのレンダービットが最初にテストされる。例えば、この目的のための一つの役に立つタイルサイズは、３２×３２ピクセルまたはサンプルである。対応するレンダービットがゼロである場合、タイルにおける、三角形のラスタライゼーションおよびあらゆる更なる処理は、停止される。しかしながら、他のレンダービット設定を有するタイルに対しては、いつも通りにレンダリングが継続される。
【００１４】
従って、フレーム間で多くの領域が同一である場合、ラスタライゼーションは削減される。このことは、新たな結果を全く生成しないタイルを結果として生じ、一方、いくつかのタイルは、まだ、いつも通りにレンダリングされる。例えば、三角形といった、所与のプリミティブは、一つ以上のタイルに及んでよく、これらのタイル全てより少ないタイルだけがレンダリングされ得る。プリミティブのどの部分をレンダリングするかの決定は、レンダービットによって支配されている。
【００１５】
ステンシルオペレーションと違って、このオペレーションはタイル毎に行われるものであり、サンプル毎ではない。加えて、このレンダービットテストは、ラスタライゼーションの最中に行われる。つまり、ピクセルシェイディング、デプステスト、および、アルファ（ａｌｐｈａ）テストの以前に行われる。これにより、テストはより早くなる。計算又はメモリのバンド幅を全く浪費しないからである。従って、消費電力はゼロである。タイル毎、三角形毎にだけテストすることは、電力使用がゼロに近いものと考えられるからである。
【００１６】
一般的には、三角形をトラバースし、どのタイルがさらなる処理が必要かを決定するために、頂点の位置が知られる。従って、一つの実施例においては、最初にバーテクスシェイダの位置部分だけが実行され、バーテクス属性シェイディングが遅延される。次に、三角形は、タイルの解像度まで階層的に小さくラスタライゼーションされ、全てのオーバーラップしているタイルのレンダービットが検査される。値「０（ゼロ）」をもったレンダービットが見つからない場合、三角形全体が捨てられてよい。そして、バーテクス属性シェイディングを実行する必要はなく、三角形／挿入設定を行う必要もない。値「１」をもったレンダービットが少なくとも一つ見つかった場合、いつも通りにラスタライゼーションが進行する。
【００１７】
さらに別の実施例としては、三角形の境界ボックスとオーバーラップしている全てのタイルのレンダービットが最初に検査される。１状態にある少なくとも一つのレンダービットが見つかった場合、三角形決定およびバーテクス属性シェイディングに進行する以前にである。このことは、レンダリングされる必要のない三角形を素早く選別するために、最初のテストとして使用され得る。
【００１８】
図２を参照すると、このように、ラスタライゼーションシーケンス３０は、ソフトウェア、ファームウェア、及び/又は、ハードウェアにおいて実施されてよい。ソフトウェアとファームウェアの実施例においては、磁気、光、または、半導体ストレージといった、一つまたはそれ以上のコンピュータで読取り可能な固定媒体に保管されたコンピュータで実行されるインストラクションによって実行され得る。
【００１９】
ラスタライゼーションシーケンス３００は、一つの実施例において、ブロック３２に示すように、レンダリングされるべき三角形の頂点を投射すること、および、ブロック３４に示すように、三角形の２次元境界ボックスを計算することによって開始される。しかしながら、階層的ラスタライゼーションの他の形式も、また、使用することができる。
【００２０】
次に、境界ボックスの中で、タイルが進行的に訪問され、レンダービットについてそれぞれのタイルを検査する。別の言葉で言えば、ブロック３５に示すように、より小さなサイズのタイルが進行的に次々と訪問される。ダイヤモンド形３６での検査は、レンダービットが特定されたか否かを判断する。そうでなければ、このタイルはパス（ｐａｓｓ）され、処理が中止される（ブロック４０）。そして、レンダービットが検出されるまで、連続して進行的にタイルが訪問される。レンダービットが検出された場合、ラスタライゼーションは、ブロック４４に示すように、進行的により小さなタイルを用いて継続される。ダイヤモンド形４６に従って、最後のタイルが特定されるまで続く。
【００２１】
レンダービットを生成するために種々の異なる技術が利用されてよい。例えば、ユーザは、これらのビットを、アプリケーションプログラムインターフェイス（ＡＰＩ）コールまたは既存のアプリケーションプログラムインターフェイスコールに対するエクステンションを使用して、設定することができる。さらに別の実施例に従って、ユーザは、ドローコール（ｄｒａｗ  ｃａｌｌ）ごとの境界ボリュームとブーリアン（Ｂｏｏｌｅａｎ）またはジオメトリの他のいくつかのグループを提供することができる。ブーリアンは、ドローコールにおける何か、つまりパイプライン状態と（テクスチャバッファといった）全ての添付されたリソースおよび変化する入力が、最後のフレームから変化したか否かを信号で知らせる。例えば、テクスチャ、アニメーションパラメータまたはシェイダコード、バーテクスバッファ、または、変換（ｔｒａｎｓｆｏｒｍ）が変化し得る。加えて、カメラ変換が変化したか否か、または、ポスト処理パスが使用されたか、を信号で知らせる別のブーリアンが存在し得る。レンダービットは、次に、この情報から計算することができ、グラフィックアーキテクチャに対して提供される。
【００２２】
ここで一つの問題は、一つのピクセルがスクリーン上のどこかで変化したとしても、ヒストグラムベースのトーンマッピングポスト処理パスは、わずかに異なるだけということである。これは、スクリーン上の全てのタイルがわずかに異なる値を有し、再使用できるタイルが無いことを意味している。パラメーターを決定するために全てのピクセルを解析するあらゆるポスト処理パスは、潜在的に全てのレンダービットを偽（ｆａｌｓｅ）にすることがある。この問題を回避するために一つの方法は、処理されていないフレームバッファのコピーを以前のフレームから保管し、レンダービットベースのタイルコピーが適用された後でポスト処理パスを適用することである。
【００２３】
図３を参照すると、このように、シーケンス５０は、ソフトウェア、ファームウェア、及び/又は、ハードウェアにおいて実施されてよい。ソフトウェアとファームウェアの実施例においては、磁気、光、または、半導体ストレージといった、一つまたはそれ以上のコンピュータで読取り可能な固定媒体に保管されたコンピュータで実行されるインストラクションによって実行され得る。一つの実施例に従えば、ソフトウェアとファームウェアで実施される実施例は、グラフィックプロセッサに関連付けされるメモリの中に保管されてよい。
【００２４】
ブロック５２に示すように、ジオメトリのグループは、一時に一つ処理される。それぞれのグループに対して、ブロック５４に示すように、検査は、ブーリアンが以前のフレームからの変化を示しているか否かを判断する。そうであれば、以前および現在のフレームに対するジオメトリグループの境界ボリュームとオーバーラップする全てのタイルは、ブロック５６に示されるように、再度レンダリングされるように設定される。そうでなければ、オーバーラップジオメトリグループが以前のフレームからの変化を示していない場合には、タイルがスキップされてよく、ブロック５８に示されるように、フローは次のグループへと進行する。タイルは、一つのジオメトリグループだけに基づいてはスキップされない。後続のジオメトリグループが同一のタイルとオーバーラップして、１のレンダービットを設定することがあるからである。タイルをスキップする決定は、全てのジオメトリグループが処理されたとき（以前のステップにおいてレンダービットが生成されていなければ）最初に行うことができる。全てのジオメトリグループについて繰り返した後で、全てのレンダービットが設定される。
【００２５】
ドローコールといった、ジオメトリのそれぞれのグループは、一時に一つ処理される。ジオメトリグループのブーリアンが、何も変化していないことを示している場合、フローは、次のジオメトリグループに進む。一方で、ブーリアンが何かが変化したことを示している場合、以前のフレームと現在のフレーム両方に対するジオメトリグループの境界ボリュームとオーバーラップする全てのタイルは、１に設定される。このことは、ジオメトリグループのコンテンツが変化したために以前のフレームに置かれたタイルが、再度レンダリングされることを確実にする。そして、現在のフレームに置かれたジオメトリグループも、また再度レンダリングされる。このことは、この技術を用いないでレンダリングされた画像と全く同一の画像を生成するために、画像の正しい部分がアップデートされることを確実にしている。
【００２６】
さらに別の実施例に従えば、グラフィックドライバはレンダリング状態の経過を追って、自動的にブーリアンを計算する。図３に説明するようにである。
【００２７】
図４を参照すると、シーケンス６０は、ソフトウェア、ファームウェア、及び/又は、ハードウェアにおいて実施されてよい。ソフトウェアとファームウェアの実施例においては、磁気、光、または、半導体ストレージといった、一つまたはそれ以上のコンピュータで読取り可能な固定媒体に保管されたコンピュータで実行されるインストラクションによって実行され得る。
【００２８】
フレームのレンダリングの最中に、ドライバ及び/又はハードウェアは、ジオメトリのそれぞれのグループに対して現在のレンダリング状態のハッシュ（ｈａｓｈ）を計算して保管する（ブロック６２）。ハッシュは、例えば、いくつか例をあげると、シェイダ、テクスチャ、サンプル、または、コンスタントバッファ、に基づいてよい。ジオメトリは、例えば、ドローコールであってよい。次のフレームがレンダリングされる(ブロック６３）。次に、後続のフレームについて、ジオメトリのそれぞれのグループに対して対応するハッシュが計算され、最後のフレームから保管されたハッシュと比較される（ブロック６４）。ハッシュが異なる場合（ダイヤモンド形６６）、以前のフレームと現在のフレーム両方に対するジオメトリグループの境界ボリュームとオーバーラップする全てのタイルは、以前のように、１に設定される（ブロック６８）。そして、そうでなければ（ブロック６９）、フローが反復される。順序が考慮されることに留意する。例えば、２つのドローセルが同一のハッシュを有しているが、異なる順序で発生する場合に、それらはなお再度レンダリングされる。
【００２９】
図５を参照すると、シーケンス７０は、ソフトウェア、ファームウェア、及び/又は、ハードウェアにおいて実施されてよい。ソフトウェアとファームウェアの実施例においては、磁気、光、または、半導体ストレージといった、一つまたはそれ以上のコンピュータで読取り可能な固定媒体に保管されたコンピュータで実行されるインストラクションによって実行され得る。
【００３０】
一つの実施例に従えば、フレームおよびジオメトリのそれぞれのグループに対するレンダリングの最中に、ドライバまたはハードウェアは、現在のレンダリング状態のハッシュおよびレンダービットのビットマスクを計算する。ビットマスクはゼロとして初期化される（ブロック７２）。そして、ジオメトリグループのレンダリングの最中に、タッチ（ｔｏｕｃｈ）されたそれぞれのタイルは１としてマークされる（ブロック７４）。次のフレームのレンダリングの最中（ブロック７６）、リストの中にハッシュが存在する場合は（ダイヤモンド形７８）、対応するタイルについてのエントリーがアクセス済としてマークされる（ブロック８０）。存在しない場合は、例えば、バーテクス位置シェイディングによって、境界ボリュームが計算され（ブロック８２）、全てのオーバーラップされたタイルは、１としてマークされる（ブロック８４）。加えて、アクセスされていない全てのエントリに対するレンダービットは、アクセスされていない全てのタイルのビットマスクとＯＲされる（ブロック８６）。これらは、潜在的に変化した領域を示しているからである。
【００３１】
従って、以前のフレームに対する境界ボックスは必要とされない。計算されたレンダービットは、また、より正確であり得る。以前のフレームからのマスクは、実際にタッチされたものであって、単に境界ボリュームがオーバーラップしただけではないタイルを表しているからである。
【００３２】
レンダービットを計算するために、現在のフレームに対する全てのドローコールが利用可能にされ、処理される。図３から図５に係る方法のうち一つに従って説明されるようにである。これが行われた後に、フレームのレンダリングが開始される。このことは、いくつかの追加の遅延をもたらす。完全なフレームがドライバに対して提出されるまで、レンダリングは開始できないからである。全てのレンダービットがゼロに設定されている場合には、フレーム全体がスキップされて、以前のフレームが再使用される得る。
【００３３】
上記の方法のうち一つを使用してレンダービットを計算するために、ジオメトリのそれぞれのグループに対する境界ボリュームが必要になる。図５に示されたシーケンスにおいては、現在のフレームに対する境界ボリュームだけが必要とされたが、一方、図３および図４のシーケンスにおいては、以前および現在のフレームの両方に対する境界ボリュームが使用される。一つのオプションは、現在のグラフィックアプリケーションプログラムインターフェイスへのエクステンションを通じて、ユーザにこれらのものを供給させることである。アフィン（ａｆｆｉｎｅ）バーテクスシェイダおよびジオメトリ／ドメインでないシェイダのためといった、いくつかの場合には、ジオメトリに対して境界ボックスを変換することによって境界ボリュームが自動的に計算されてよい。他の場合には、境界を計算するためにバーテクス位置シェイディングを実行することが望ましい。いくつかの他の場合には、自動的な方法が使用され得る。以下を参照のこと。J.Hasselgre  、J.Munkberg、  T.Akenine-Moller共著、"Automatic  Pre-Tessellation  Culling"、ACM  Transaction  on  Graphics、28(2)  pages  19:1-19:10、  2009。
【００３４】
これらの技術の他の使用も存在する。例えば、カスケード（ｃａｓｃａｄｅ）されたシャドウ（ｓｈａｄｏｗ）マップを使用したレンダリングシャドウに関して、シャドウマップは、最適化されたデプスマップラスタライザを使用してグラフィック処理ユニット上で生成され得る。最初に、視点からのレンダリングパスの最中にアクセスされるそれぞれのシャドウマップにおけるタイルが決定される。このことは、視点から見えるピクセルのフットプリント（ｆｏｏｔｐｒｉｎｔ）をシャドウマップ空間に投射して、ピクセルごとに好適なシャドウマップ解像度を選択することによって行われてよい。このことは、それぞれのシャドウマップにおける、レンダリングが必要な数多くのタイルを選択する。その他のタイルはレンダリングの必要がない。それらは、シャドウマップのルックアップ（ｌｏｏｋｕｐ）を行うときにアクセスされないからである。一般にこのことを利用するための唯一の方法は、シャドウマップを中央処理ユニット上にレンダリングすることである。しかしながら、ここにおいて説明された技術を用いて、レンダービットが生成され、対応するシャドウビットがアクセスされるタイルに対して１が設定される。このことは、シャドウマップのレンダリングを実質的にスピードアップさせ得る。加えて、いくつかの実施例においては、シャドウマップに対して圧縮を使用することができ、メモリのバンド幅を削減することができる。
【００３５】
図６は、システム３００の実施例を示している。実施例において、システム３００は、メディアシステムであってよいが、システム３００は、このコンテクスト（ｃｏｎｔｅｘｔ）に限定されない。例えば、システム３００は、以下のものの中に取り込まれてよい。すなわち、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビジョン、スマートデバイス（例えば、スマートフォン、スマートタブレット、または、スマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージデバイス、データ通信デバイス、等である。
【００３６】
実施例において、システム３００は、ディスプレイ３２０に接続されたプラットフォーム３０２を含んでいる。プラットフォーム３０２は、コンテンツサービスデバイス３３０またはコンテンツ配送デバイス３４０もしくは他の類似のコンテンツソースといった、コンテンツデバイスからコンテンツを受信する。一つまたはそれ以上のナビゲーション機能を含むナビゲーションコントローラ３５０は、例えば、プラットフォーム３０２及び/又はディスプレイ３２０とインタラクションするために使用され得る。これらのコンポーネントのそれぞれは、以下に詳細に説明される。
【００３７】
実施例においおて、プラットフォーム３０２は、チップセット３０５、プロセッサ３１０、メモリ３１２、ストレージ３１４、グラフィックサブシステム３１５、アプリケーション３１６、及び/又は、ラジオ３１８のあらゆる組み合わせを含んでよい。チップセット３０５は、プロセッサ３１０、メモリ３１２、ストレージ３１４、グラフィックサブシステム３１５、アプリケーション３１６、及び/又は、ラジオ３１８の間の相互通信を提供することができる。例えば、チップセット３１５は、ストレージ３１４との相互通信を提供することができるストレージアダプタ（図示なし）を含んでよい。
【００３８】
プロセッサ３１０は、複合命令セットコンピュータ（ＣＩＳＣ）または縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、×８６インストラクションセットとコンパチブルなプロセッサ、マルチコア、または、あらゆる他のマイクロプロセッサもしくは中央処理ユニット（ＣＰＵ）として実施されてよい。実施例において、プロセッサ３１０は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ、等を含んでよい。プロセッサは、メモリ３１２と供に、図１から図５に係るシーケンスを実施することができる。
【００３９】
メモリ３１２は、これらに限定されるわけではないが、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ），または、スタティックＲＡＭ（ＳＲＡＭ）といった、揮発性メモリとして実施されてよい。
【００４０】
ストレージ３１４は、これらに限定されるわけではないが、磁気ディスクドライブ、光ディスクドライブ、内蔵ストレージデバイス、外付けストレージデバイス、フラッシュメモリ、バッテリバックアップＳＤＲＡＭ（シンクロナスＤＲＡＭ）、及び/又は、ネットワークアクセス可能なストレージデバイスといった、不揮発性ストレージデバイスとして実施されてよい。実施例において、ストレージ３１４は、例えば、複数のハードドライブが含まれている場合に種々のデジタルメディアに対するストレージパフォーマンスの拡張された保護を増大させるための従来技術を含んでいる。
【００４１】
グラフィックサブシステム３１５は、静止画または動画といった画像を表示するための処理を実行する。グラフィックサブシステム３１５は、例えば、グラフィック処理ユニット（ＧＰＵ）またはビジュアル処理ユニット（ＶＰＵ）であってよい。グラフィックサブシステム３１５とディスプレイ３２０を通信可能に接続するために、アナログまたはデジタルインターフェイスが使用され得る。例えば、インターフェイスは、ハイディフィニションマルチメディアインターフェイス（ＨＤＭＩ（登録商標））、ディスプレイポート、無線ＨＤＭＩ、及び/又は、無線ＨＤ対応技術、のいずれかであってよい。グラフィックサブシステム３１５は、プロセッサ３１０またはチップセット３０５の中に取り込まれ得る。グラフィックサブシステム３１５は、チップセット３０５に通信可能に接続されたスタンドアロンカードであり得る。
【００４２】
ここにおいて説明されるは、グラフィック及び/又はビデオ処理技術は、種々のハードウェアアーキテクチャにおいて実施されてよい。例えば、グラフィック及び/又はビデオ機能は、チップセットの中で統合されてよい。代替的に、個別のグラフィック及び/又はビデオプロセッサが使用されてよい。さらに別の実施例として、グラフィック及び/又はビデオ機能は、マルチコアプロセッサを含む、汎用プロセッサによって実施され得る。さらなる実施例においては、家電機器において本機能が実施されてよい。
【００４３】
ラジオ３１８は、種々の好適な無線通信技術を使用して信号を送信及び受信することができる一つまたはそれ以上のラジオを含んでいる。そうした技術は、一つまたはそれ以上のネットワークに渡る通信を含んでいる。典型的な無線ネットワークは、（限定されるわけではないが）無線ローカルエリアネットワーク（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡＮ）、携帯電話ネットワーク、および、衛星ネットワークを含んでいる。そうしたネットワークに渡る通信において、ラジオ３１８は、一つまたはそれ以上の適用可能な規格のあらゆるバージョンに従って動作する。
【００４４】
実施例において、ディスプレイ３２０は、あらゆるテレビジョンタイプのモニタまたはディスプレイを含んでよい。ディスプレイ３２０は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビジョン類似品、及び/又は、テレビジョンを含んでよい。ディスプレイ３２０は、デジタル及び/又はアナログであってよい。実施例において、ディスプレイ３２０は、ホログラフィディスプレイであってよい。ディスプレイ３２０は、また、ビジュアル投射を受信する透明なサーフェスであってよい。そうした投射は、情報、画像、及び/又は、オブジェクトに係る種々の形式を伝達する。例えば、そうした投射は、モバイル拡張現実（ＭＡＲ）アプリケーションのためのビジュアルなオーバーレイであってよい。一つまたはそれ以上のソフトウェアアプリケーション３１６のコントロールの下で、プラットフォーム３０２はディスプレイ３２０上にユーザインターフェイス３２２を表示し得る。
【００４５】
実施例において、コンテンツサービスデバイス３３０は、あらゆるナショナル、インターナショナル、及び/又は、独立したサービスによってホストされてよく、従って、例えば、インターネットを介してプラットフォーム３０２にアクセス可能である。コンテンツサービスデバイス３３０は、プラットフォーム３０２及び/又はディスプレイ３２０に接続されてよい。プラットフォーム３０２及び/又はコンテンツサービスデバイス３３０は、メディア情報をネットワーク３６０に対して又はネットワークから通信（例えば、送信及び/又は受信）するために、ネットワーク３６０に対して接続されてよい。コンテンツ配送デバイス３４０も、また、プラットフォーム３０２及び/又はディスプレイ３２０に対して接続されてよい。
【００４６】
実施例において、コンテンツサービスデバイス３３０は、以下のものを含んでよい。すなわち、ケーブルテレビジョンボックス、パーソナルコンピュータ、ネットワーク、電話、インターネットできるデバイスまたはデジタル情報及び/又はコンテンツを配信できる装置、および、ネットワーク３６０を介して又は直接的にコンテンツプロバイダとプラットフォーム３０２及び/又はディスプレイ３２０との間で一方向または双方向でコンテンツを通信することができるあらゆる他の類似のデバイス、である。コンテンツの実施例は、例えば、ビデオ、音楽、医療およびゲーム情報、等を含むあらゆるメディア情報を含んでいる。
【００４７】
コンテンツサービスデバイス３３０は、メディア情報、デジタル情報、及び/又は、他のコンテンツを含んでいるテレビ番組といったコンテンツを受信する。コンテンツプロバイダの実施例は、あらゆる無線または衛星テレビ、またはラジオ、もしくはインターネットコンテンツプロバイダを含んでよい。
【００４８】
実施例において、プラットフォーム３０２は、一つまたはそれ以上のナビゲーション機能を有しているナビゲーションコントローラ３５０からコントロール信号を受信する。コントローラ３５０のナビゲーション機能は、例えば、ユーザインターフェイス３２２とインタラクションするために使用され得る。実施例において、ナビゲーションコントローラ３５０は、ポインティングデバイスであってよく、空間的（例えば、連続した多次元の）データをユーザがコンピュータの中に入力できるようにするコンピュータハードウェアコンポーネント（特には、ヒューマンインターフェイスデバイス）であってよい。グラフィカルユーザインターフェイス（ＧＵＩ）、テレビとモニタといった、多くのシステムにより、ユーザは、身体的なジェスチャを使用して、データをコントロールしてコンピュータまたはテレビジョンにデータを提供することができる。
【００４９】
コントローラ３５０のナビゲーション機能の動きは、ポインタ、カーソル、フォーカスリング、または、ディスプレイ上に表示される他の視覚的インジケータの動きによって、ディスプレイ（例えば、ディスプレイ３２０）上にエコーされ得る。例えば、ソフトウェアアプリケーション３１６のコントロールの下で、ナビゲーションコントローラ３５０上に置かれたナビゲーション機能が、例えば、ユーザインターフェイス３２２上に表示された仮想ナビゲーション機能に対してマップされてよい。実施例において、コントローラ３５０は、別個のコンポーネントでなくてよく、プラットフォーム３０２及び/又はディスプレイ３２０の中に取り込まれてよい。しかしながら、実施例は、ここにおいて示され又は説明されたエレメントまたはコンテクストの中に限定されるものではない。
【００５０】
実施例において、ドライバ（図示なし）は、例えば、イネーブルされた場合に、最初のブートアップの後でボタンをタッチすることで、ユーザが、テレビジョンのようなプラットフォーム３０２を即座に電源オンおよびオフできるようにする技術を含んでいる。プログラムロジックによって、プラットフォーム３０２は、プラットフォームが電源「オフ」された場合に、メディアアダプタもしくは他のコンテンツサービスデバイス３３０またはコンテンツ配送デバイス３４０に対して、コンテンツをストリーム（ｓｔｒｅａｍ）することができる。加えて、チップセット３０５は、例えば、５．１サラウンドサウンドオーディオ及び/又は高品位７．１サラウンドサウンドオーディオをサポートするハードウェア及び/又はソフトウェアを含んでよい。ドライバは、統合されたグラフィックプラットフォームのためのグラフィックドライバを含んでいる。実施例において、グラフィックドライバは、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）エクスプレスグラフィックカードを含み得る。
【００５１】
種々の実施例においては、システム３００において示された一つまたはそれ以上のあらゆるコンポーネントは、統合されてよい。例えば、プラットフォーム３０２とコンテンツサービスデバイス３３０が統合されてよく、または、プラットフォーム３０２とコンテンツ配送デバイス３４０が統合されてよく、もしくは、例えば、プラットフォーム３０２、コンテンツサービスデバイス３３０、および、コンテンツ配送デバイス３４０が統合されてよい。種々の実施例において、プラットフォーム３０２とディスプレイ３２０は統合されたユニコードであってよい。ディスプレイ３２０とコンテンツサービスデバイス３３０は統合されてよく、または、例えば、ディスプレイ３２０とコンテンツ配送デバイス３４０が統合されてよい。
【００５２】
種々の実施例において、システム３００は、無線システム、有線システム、または、両方の組み合わせとして実施されてよい。無線システムとして実施された場合、システム３００は、無線のシェアードメディア（ｓｈａｒｅｄ  ｍｅｄｉａ）に渡り通信するのに好適なコンポーネントおよびインターフェイスを含んでいる。一つまたはそれ以上のアンテナ、送信器、受信器、トランシーバ、アンプ、フィルタ、コントロールロジック、等といったものである。無線のシェアードメディアの実施例は、ＲＦスペクトラム、等といった、無線スペクトラムの部分を含んでいる。有線システムとして実施された場合、システム３００は、有線の通信メディアに渡り通信するのに好適なコンポーネントおよびインターフェイスを含んでいる。入力／出力（Ｉ／Ｏ）アダプタ、Ｉ／Ｏアダプタを対応する有線の通信メディアに接続するための物理的なコネクタ、ネットワークインターフェイスカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ、等といったものである。有線の通信メディアの実施例は、電線、ケーブル、金属リード、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペア電線、同軸ケーブル、光ファイバ、等を含んでいる。
【００５３】
プラットフォーム３０２は、情報を通信するための一つまたはそれ以上の論理的または物理的チャネルを確立し得る。情報は、メディア情報およびコントロール情報を含んでよい。メディア情報は、ユーザに対して意味されるコンテンツを表しているあらゆるデータを参照し得る。コンテンツの実施例は、例えば、以下のものを含んでよい。音声会話からのデータ、ビデオ会議、ストリーミングビデオ、電子メール（「ｅメール」）メッセージ、音声メールメッセージ、英数字シンボル、グラフィック画像、ビデオ、テキスト、等である。音声会話からのデータは、例えば、スピーチ情報、サイレンス期間、バックグラウンドノイズ、コンフォートノイズ、トーン、等であり得る。コントロール情報は、コマンド、インタラクション、または、自動化されたシステムに対して意味をなすコントロールワードを表しているあらゆるデータを参照し得る。例えば、コントロール情報は、システムを通じてメディア情報をルートするために、または、既定の方法でメディア情報を処理するようにノードにインストラクションするために使用される。しかしながら、実施例は、図５において示され又は説明されたエレメントまたはコンテクストの中に限定されるものではない。
【００５４】
上述のように、システム３００は、種々の物理的スタイルまたはフォームファクタで実施されてよい。図７は、システム３００が実施されるスモールフォームファクタのデバイス４００の実施例を示している。実施例において、例えば、デバイス４００は、無線機能を有するモバイルコンピューティングデバイスとして実施され得る。モバイルコンピューティングデバイスは、処理システム、および、例えば、一つまたはそれ以上のバッテリといった、モバイル電源を有するあらゆるデバイスを参照し得る。
【００５５】
上述のように、モバイルコンピューティングデバイスの実施例は、以下のものを含んでよい。パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビジョン、スマートデバイス（例えば、スマートフォン、スマートタブレット、または、スマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージデバイス、データ通信デバイス、等である。
【００５６】
モバイルコンピューティングデバイスの実施例は、また、人が身に付けられるように構成されたコンピュータを含んでよい。リストコントロール、指コントロール、指輪コンピュータ、メガネコンピュータ、ベルトクリップコンピュータ、腕バンドコンピュータ、靴コンピュータ、衣服コンピュータ、および、他のウェアラブルコンピュータといったものである。実施例において、例えば、モバイルコンピューティングデバイスは、音声通信及び/又はデータ通信と同様に、コンピュータアプリケーションを実行することができるスマートフォンとして実施されてよい。いくつかの実施例は、例として、スマートフォンとして実施されたモバイルコンピューティングデバイスを用いて説明されるが、他の無線モバイルコンピューティングデバイスを使用しても同様に他の実施例が実行され得ることが理解される。実施例は、このコンテクストの中に限定されるものではない。
【００５７】
プロセッサ３１０は、いくつかの実施例において、カメラ３２３およびグローバルポジショニングシステムセンサ３２１と通信し得る。メモリ３１２は、プロセッサ３１０に接続されており、ソフトウェア及び/又はファームウェアの実施例において、図２から図５に示されたシーケンスを実施するためのコンピュータで読取り可能なインストラクションを保管することができる。
【００５８】
図７に示されるように、デバイス４００は、ハウジング４０２、ディスプレイ４０４、入力／出力（Ｉ／Ｏ）デバイス４０６、および、アンテナ４０８を含んでいる。デバイス４００は、また、ナビゲーション機能４１２を含んでいる。ディスプレイ４０４は、モバイルコンピューティングデバイスに適した情報を表示するためのあらゆる好適なディスプレイユニットを含んでよい。Ｉ／Ｏデバイス４０６は、モバイルコンピューティングデバイスの中に情報を入力するためのあらゆる好適なＩ／Ｏデバイスを含んでよい。Ｉ／Ｏデバイス４０６の実施例は、以下のものを含んでよい。英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカ、音声認識デバイスとソフトウェア、等である。情報も、また、マイクロフォンを用いてデバイス４００の中に入力される。そうした情報は、音声認識デバイスによってデジタル化され得る。実施例は、このコンテクストの中に限定されるものではない。
【００５９】
種々の実施例は、ハードウェアエレメント、ソフトウェアエレメント、または、両方の組み合わせを使用して実施されてよい。ハードウェアエレメントの実施例は、以下のものを含み得る。プロセッサ、マイクロプロセッサ、回路、回路エレメント（例えば、トランジスタ、抵抗、キャパシタ、インダクタ、等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、論理ゲート、抵抗、半導体デバイス、チップ、マイクロチップ、チップセットトップボックス、等である。ソフトウェアの実施は、以下のものを含み得る。ソフトウェアコンポーネント、プロセッサ、アプリケーション、コンピュータプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインターフェイス、アプリケーションプログラムインターフェイス（ＡＰＩ）、インストラクションセット、コンピューティングコード、コードセグメント、コンピュータコードセグメント、ワード、バリュー、シンボル、または、これらのあらゆる組み合わせ、である。実施例が、ハードウェアエレメント及び/又はソフトウェアエレメントを使用して実施されているか否かの判断は、数多くの要因に従って変化し得る。所望の計算レート、電力消費レベル、熱許容量、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、および、他のデザインまたはパフォーマンス制約、といったものである。
【００６０】
以降の節及び/又は例示は、さらなる実施例に関するものである。
【００６１】
一つの実施例に係る方法は、ピクセルまたはサンプルをタイルの中に電子的に編成するステップと、複数のタイルのそれぞれに対して、複数のラスタライゼーションオペレーションの全てをラスタライザにおいて完了するか否か、または、代替的に、前記ラスタライザにおける少なくとも一つのオペレーションを所与のタイルに対して省略するか否か、を電子的に指示するステップと、を含む。本方法は、また、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示するステップと、を含む。本方法は、また、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用するステップと、を含む。本方法は、また、前記指示に対するそれぞれのタイルに関するビットを使用するステップと、タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用するステップと、を含む。本方法は、また、前記ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットを保管するステップと、を含む。本方法は、また、一連のタイルサイズを用いた階層的ラスタライゼーションを使用するステップと、を含む。本方法は、また、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付けるステップと、を含む。本方法は、また、最初にバーテクスシェイダの位置部分をレンダリングするステップと、バーテクス属性シェイディングを遅延させるステップと、を含む。本方法は、また、指示ビットが前記タイルをレンダリングしないよう指示する場合に、バーテクス属性シェイディングを回避するステップと、を含む。本方法は、また、少なくとも一つのビットがラスタライゼーションしないように指示する場合は、バーテクス属性シェイディングに進む以前に、境界ボックスとオーバーラップしているタイルにおける全てのビットを検査するステップと、を含む。
【００６２】
別の実施例は、シーケンスを実施するために実行されるインストラクションを保管している、少なくとも一つのコンピュータで読取り可能な固定媒体であって、前記シーケンスは、ピクセルまたはサンプルをタイルの中に電子的に編成し、かつ、複数のタイルのそれぞれに対して、複数のラスタライゼーションオペレーションの全てをラスタライザにおいて完了するか否か、または、代替的に、前記ラスタライザにおける少なくとも一つのオペレーションを所与のタイルに対して省略するか否か、を電子的に指示する、コンピュータで読取り可能な固定媒体である。前記媒体は、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示するシーケンス、を含んでいる。前記媒体は、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用するシーケンス、を含んでいる。前記媒体は、前記指示に対するそれぞれのタイルに関するビットを使用し、かつ、タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用するシーケンス、を含んでいる。前記媒体は、前記ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットを保管するシーケンス、を含んでいる。前記媒体は、一連のタイルサイズを用いた階層的ラスタライゼーションを使用するシーケンス、を含んでいる。前記媒体は、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付けるシーケンス、を含んでいる。前記媒体は、最初にバーテクスシェイダの位置部分をレンダリングし、かつ、バーテクス属性シェイディングを遅延させるシーケンス、を含んでいる。  前記媒体は、指示ビットが前記タイルをレンダリングしないよう指示する場合に、バーテクス属性シェイディングを回避するシーケンス、を含んでいる。前記媒体は、少なくとも一つのビットがラスタライゼーションしないように指示する場合は、バーテクス属性シェイディングに進む以前に、境界ボックスとオーバーラップしているタイルにおける全てのビットを検査するシーケンス、を含んでいる。
【００６３】
別の実施例は、装置であって、ラスタライゼーションであり、ピクセルまたはサンプルをタイルの中に電子的に編成し、かつ、複数のタイルのそれぞれに対して、複数のラスタライゼーションオペレーションの全てをラスタライザにおいて完了するか否か、または、代替的に、前記ラスタライザにおける少なくとも一つのオペレーションを所与のタイルに対して省略するか否か、を電子的に指示する、ラスタライザと、前記ラスタライザに接続されたバッファと、を含む。装置は、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示する、ラスタライザを含んでいる。装置は、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用するラスタライザ、を含んでいる。装置は、前記指示に対するそれぞれのタイルに関するビットを使用し、かつ、タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用するラスタライザ、を含んでいる。装置は、前記ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットを保管するラスタライザ、を含んでいる。装置は、一連のタイルサイズを用いた階層的ラスタライゼーションを使用するラスタライザ、を含んでいる。装置は、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付けるラスタライザ、を含んでいる。装置は、オペレーティングシステム、バッテリ、ファームウェア、および、前記ファームウェアをアップデートするためのモジュール、を含んでいる。
【００６４】
ここにおいて説明されたグラフィック処理技術は、種々のハードウェアアーキテクチャにおいて実施され得る。例えば、グラフィック機能は、チップセットの中に統合されてよい。代替的に、別個のグラフィックプロセッサが使用されてもよい。さらに別の実施例として、グラフィック機能は、マルチコアプロセッサを含む、汎用プロセッサによって実施され得る。
【００６５】
この明細書の全体にわたり「一つの実施例（“ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ”ｏｒ”ａｎ  ｅｍｂｏｄｉｍｅｎｔ“）」への言及は、実施例に関して説明された所定の特徴、構成、または、特性が、本発明の少なくとも一つの実施例に含まれていることを意味するものである。従って、「一つの実施例」というフレーズの表現は、必ずしも同一の実施例について言及するものではない。さらに、所定の機能、構成、または、特性は、説明された特定の実施例よりむしろ、他の好適なフォームにおいて制定することができる。
【００６６】
限定された数量の実施例が説明されてきたが、当業者であれば、そうした実施例から、多くの変形およびバリエーションを認識するであろう。添付の特許請求の範囲は、全てのこうした変形およびバリエーションを、本発明開示に係る真の精神と発明の範囲の中にあるものとしてカバーするように意図されたものである。
【符号の説明】
【００６７】
１０  グラフィックパイプライン
１２  入力アセンブラ
１４  バーテクスシェイダ
１６  ジオメトリシェイダ
１８  ラスタライザ
２２  ピクセルシェイダ
３００  システム
３０２  プラットフォーム
３２０  ディスプレイ
３３０  コンテンツサービスデバイス
３４０  コンテンツ配送デバイス
３６０  ネットワーク
【図１】
2018163678.tif 000003
【図２】
2018163678.tif 000004
【図３】
2018163678.tif 000005
【図４】
2018163678.tif 000006
【図５】
2018163678.tif 000007
【図６】
2018163678.tif 000008
【図７】
2018163678.tif 000009