JP6676703B2 - 選択的ラスタライゼーション - Google Patents

選択的ラスタライゼーション Download PDF

Info

Publication number
JP6676703B2
JP6676703B2 JP2018106779A JP2018106779A JP6676703B2 JP 6676703 B2 JP6676703 B2 JP 6676703B2 JP 2018106779 A JP2018106779 A JP 2018106779A JP 2018106779 A JP2018106779 A JP 2018106779A JP 6676703 B2 JP6676703 B2 JP 6676703B2
Authority
JP
Japan
Prior art keywords
tile
previous
rasterizer
bits
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018106779A
Other languages
English (en)
Other versions
JP2018163678A (ja
Inventor
ジー.アケニヌ−モラー トーマス
ジー.アケニヌ−モラー トーマス
ジェイ.ムンクベリ カール
ジェイ.ムンクベリ カール
ピー.クラーベリ フランツ
ピー.クラーベリ フランツ
Original Assignee
インテル コーポレイション
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2018163678A publication Critical patent/JP2018163678A/ja
Application granted granted Critical
Publication of JP6676703B2 publication Critical patent/JP6676703B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R19/00Arrangements for measuring currents or voltages or for indicating presence or sign thereof
    • G01R19/0092Arrangements for measuring currents or voltages or for indicating presence or sign thereof measuring current only
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J2207/00Indexing scheme relating to details of circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • H02J2207/40Indexing scheme relating to details of circuit arrangements for charging or depolarising batteries or for supplying loads from batteries adapted for charging from various sources, e.g. AC, DC or multivoltage

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Image Generation (AREA)

Description

本発明は、一般的にはグラフィック処理に関し、より特定的にはラスタライゼーションに関する。
グラフィックプロセッサにとって消費電力と効率は重要である。不必要なグラフィック処理オペレーションを回避するように実質的な努力が行われてきた。デプスカリング(depth culling)は、描写に係る所定の部分の処理を回避するためのプロセスの例であり、それらの部分が描写に係る他の部分によってふさがれる場合に行われる。このことは、消費電力とエネルギを節約し、かつ、システムのパフォーマンスを改善する。
一般的に、ビデオ描写を構成している複数のフレームのそれぞれが、次から次へとレンダリングされる(rendered)。典型的には、全部のフレームがレンダリングされる。いくつかのケースにおいては、フレームのある部分が一つのフレームから別のフレームになっても変わらないことが分かっていても、そうである。しかしながら、手動で、どの領域がアップデートが必要かを記録し、アップデートが必要な領域だけをレンダリングすることは、著しい管理作業とソフトウェアの複雑性を含んでいる。加えて、プログラム可能なステージは、プリミティブ(primitives)を転換し、シェイディングするので、アップデートが必要な領域を特定することは、著しい量の作業を含んでいる。
レンダービットが1である場合、タイルの中の全てのものが、いつも通りにレンダリングされる。しかしながら、レンダービットが0である場合、このタイルに対しては何もラスタライゼーションされない。
以下の図面に関していくつかの実施例が説明される。
図1は、一つの実施例に係る模式的な図である。 図2は、一つの実施例に従った、ラスタライゼーションシーケンスのフローチャートである。 図3は、一つの実施例に従った、レンダービットを算出するためのフローチャートである。 図4は、別の実施例に従った、レンダービットを算出するためのフローチャートである。 図5は、さらに別の実施例に従った、レンダービットを算出するためのフローチャートである。 図6は、一つの実施例に対するシステム図である。 図7は、一つの実施例に係る正面図である。
本発明の一つの実施例に従えば、ピクセルまたはサンプルで構成された、所与のタイルは、あらゆる形状であってよく、正方形または長方形を含んでいる。これらのピクセルは、カラー(color)、デプス(depth)、ステンシル値(stencil value)、および、他の値を含んでいる。それぞれのタイルは、さらに単一のビット、ここにおいてはレンダービット(render bit)として参照される、を用いて拡張されている。一つの実施例において、レンダービットが1である場合、タイルの中の全てのものが、いつも通りにレンダリングされる。しかしながら、レンダービットが0である場合、このタイルに対しては何もラスタライゼーションされない。それに応じて、デプステスト、ピクセルシェイディング、フレームバッファアクセス、および、マルチサンプルアンチエリアシング(MSAA)リゾルブは、このタイルに対して行われない。他の実施例においては、それでもなお、いくつかのオペレーションが行われ得るが、レンダービットに基づいて少なくとも一つのオペレーションは回避される。もちろん、レンダービットは、ビット0が全部がレンダリングされるべきことを示し、ビット1はより限定されたレンダリングを示すように、切り換えられてもよい。
別の実施例においては、よりきめの細かいコントロールができるようにするために、それぞれのタイルに対して複数のレンダービットが保管される。例えば、レンダービットは、タイルについて複数のレンダーターゲットのサブセットがリユースされ得ることを示してもよい。
そして、レンダリングされていないタイルは、それらのコンテンツまたはポイントを、レンダリングされていない以前のフレームからの同一のタイルからのコンテンツにコピーする。
このように、いくつかの実施例に従って、ラスタライゼーション作業が全体として削減され得る。たとえ全部でなくても、いくつかのタイルに対するラスタライゼーションが削減されるからである。
スクリーン上の全てのタイルに対して、レンダービットは、長いビットマスク(bitmask)の中に保管されてよい。ビットマスクは、グラフィックアーキテクチャに対して、特には、ラスタライザ(rasterizer)に対して提供される。
図1を参照すると、このように、グラフィックパイプライン10は、入力アセンブラステージ12を含んでいる。入力アセンブラステージは、三角形(triangle)といったデータをパイプラインに対して供給する。バーテクスシェイダ(vertex shader)ステージ14は、頂点を処理する。ジオメトリシェイダ(geometry shader)ステージ16は、三角形といった、プリミティブを処理する。ストリーム出力ステージ26は、パイプラインからのプリミティブデータを、ラスタライザステージ18への途中で、メモリ28に対してストリームする。ラスタライザステージ18は、どのピクセルのプリミティブがオーバーラップしているかを判断して、プリミティブをクリップしてピクセルシェイダのためのプリミティブを用意し、ピクセルシェイダステージ22をどのように呼び出すか決定する。ピクセルシェイダステージは、プリミティブに対して挿入されたデータを受け取って、カラーといった、ピクセル毎のデータを生成する。最後に、出力合併ステージ24は、ピクセルシェイダ値、デプス、および、ステンシル情報といった種々のタイプの出力データを、レンダーターゲットおよびデプス/ステンシルバッファのコンテンツと結合して、最終的なパイプライン結果を生成する。ラスタライザステージ18は、レンダービットを保管するためのバッファ20を含んでよい。他のグラフィカルパイプラインも、また、他の実施例において使用することができる。
一般的に、三角形をトラバース(traverse)する場合に、階層的ラスタライゼーションが使用される。一つの一般的な階層的ラスタライゼーション技術は、三角形の頂点がレンダリングされるように画像平面上に投射することであり、次に、投射された三角形の2次元の境界ボックスを算出する。そして、部分的又は完全にこのボックスの内側にある全てのタイルは、いくつかのオーダーにおいて訪問される。次に、典型的には、より大きなそれぞれのタイルの中のより小さなタイルが訪問等される。大抵は、ある小さなタイルサイズにおいてトラバースを終えることによって、ピクセルレベルに達するまで行われる。
一つの実施例に従えば、ラスタライザステージ18は変更され、階層的ラスタライゼーションの最中に、レンダービットに係る所与のタイルサイズに達した場合、タイルのレンダービットが最初にテストされる。例えば、この目的のための一つの役に立つタイルサイズは、32×32ピクセルまたはサンプルである。対応するレンダービットがゼロである場合、タイルにおける、三角形のラスタライゼーションおよびあらゆる更なる処理は、停止される。しかしながら、他のレンダービット設定を有するタイルに対しては、いつも通りにレンダリングが継続される。
従って、フレーム間で多くの領域が同一である場合、ラスタライゼーションは削減される。このことは、新たな結果を全く生成しないタイルを結果として生じ、一方、いくつかのタイルは、まだ、いつも通りにレンダリングされる。例えば、三角形といった、所与のプリミティブは、一つ以上のタイルに及んでよく、これらのタイル全てより少ないタイルだけがレンダリングされ得る。プリミティブのどの部分をレンダリングするかの決定は、レンダービットによって支配されている。
ステンシルオペレーションと違って、このオペレーションはタイル毎に行われるものであり、サンプル毎ではない。加えて、このレンダービットテストは、ラスタライゼーションの最中に行われる。つまり、ピクセルシェイディング、デプステスト、および、アルファ(alpha)テストの以前に行われる。これにより、テストはより早くなる。計算又はメモリのバンド幅を全く浪費しないからである。従って、消費電力はゼロである。タイル毎、三角形毎にだけテストすることは、電力使用がゼロに近いものと考えられるからである。
一般的には、三角形をトラバースし、どのタイルがさらなる処理が必要かを決定するために、頂点の位置が知られる。従って、一つの実施例においては、最初にバーテクスシェイダの位置部分だけが実行され、バーテクス属性シェイディングが遅延される。次に、三角形は、タイルの解像度まで階層的に小さくラスタライゼーションされ、全てのオーバーラップしているタイルのレンダービットが検査される。値「0(ゼロ)」をもったレンダービットが見つからない場合、三角形全体が捨てられてよい。そして、バーテクス属性シェイディングを実行する必要はなく、三角形/挿入設定を行う必要もない。値「1」をもったレンダービットが少なくとも一つ見つかった場合、いつも通りにラスタライゼーションが進行する。
さらに別の実施例としては、三角形の境界ボックスとオーバーラップしている全てのタイルのレンダービットが最初に検査される。1状態にある少なくとも一つのレンダービットが見つかった場合、三角形決定およびバーテクス属性シェイディングに進行する以前にである。このことは、レンダリングされる必要のない三角形を素早く選別するために、最初のテストとして使用され得る。
図2を参照すると、このように、ラスタライゼーションシーケンス30は、ソフトウェア、ファームウェア、及び/又は、ハードウェアにおいて実施されてよい。ソフトウェアとファームウェアの実施例においては、磁気、光、または、半導体ストレージといった、一つまたはそれ以上のコンピュータで読取り可能な固定媒体に保管されたコンピュータで実行されるインストラクションによって実行され得る。
ラスタライゼーションシーケンス300は、一つの実施例において、ブロック32に示すように、レンダリングされるべき三角形の頂点を投射すること、および、ブロック34に示すように、三角形の2次元境界ボックスを計算することによって開始される。しかしながら、階層的ラスタライゼーションの他の形式も、また、使用することができる。
次に、境界ボックスの中で、タイルが進行的に訪問され、レンダービットについてそれぞれのタイルを検査する。別の言葉で言えば、ブロック35に示すように、より小さなサイズのタイルが進行的に次々と訪問される。ダイヤモンド形36での検査は、レンダービットが特定されたか否かを判断する。そうでなければ、このタイルはパス(pass)され、処理が中止される(ブロック40)。そして、レンダービットが検出されるまで、連続して進行的にタイルが訪問される。レンダービットが検出された場合、ラスタライゼーションは、ブロック44に示すように、進行的により小さなタイルを用いて継続される。ダイヤモンド形46に従って、最後のタイルが特定されるまで続く。
レンダービットを生成するために種々の異なる技術が利用されてよい。例えば、ユーザは、これらのビットを、アプリケーションプログラムインターフェイス(API)コールまたは既存のアプリケーションプログラムインターフェイスコールに対するエクステンションを使用して、設定することができる。さらに別の実施例に従って、ユーザは、ドローコール(draw call)ごとの境界ボリュームとブーリアン(Boolean)またはジオメトリの他のいくつかのグループを提供することができる。ブーリアンは、ドローコールにおける何か、つまりパイプライン状態と(テクスチャバッファといった)全ての添付されたリソースおよび変化する入力が、最後のフレームから変化したか否かを信号で知らせる。例えば、テクスチャ、アニメーションパラメータまたはシェイダコード、バーテクスバッファ、または、変換(transform)が変化し得る。加えて、カメラ変換が変化したか否か、または、ポスト処理パスが使用されたか、を信号で知らせる別のブーリアンが存在し得る。レンダービットは、次に、この情報から計算することができ、グラフィックアーキテクチャに対して提供される。
ここで一つの問題は、一つのピクセルがスクリーン上のどこかで変化したとしても、ヒストグラムベースのトーンマッピングポスト処理パスは、わずかに異なるだけということである。これは、スクリーン上の全てのタイルがわずかに異なる値を有し、再使用できるタイルが無いことを意味している。パラメーターを決定するために全てのピクセルを解析するあらゆるポスト処理パスは、潜在的に全てのレンダービットを偽(false)にすることがある。この問題を回避するために一つの方法は、処理されていないフレームバッファのコピーを以前のフレームから保管し、レンダービットベースのタイルコピーが適用された後でポスト処理パスを適用することである。
図3を参照すると、このように、シーケンス50は、ソフトウェア、ファームウェア、及び/又は、ハードウェアにおいて実施されてよい。ソフトウェアとファームウェアの実施例においては、磁気、光、または、半導体ストレージといった、一つまたはそれ以上のコンピュータで読取り可能な固定媒体に保管されたコンピュータで実行されるインストラクションによって実行され得る。一つの実施例に従えば、ソフトウェアとファームウェアで実施される実施例は、グラフィックプロセッサに関連付けされるメモリの中に保管されてよい。
ブロック52に示すように、ジオメトリのグループは、一時に一つ処理される。それぞれのグループに対して、ブロック54に示すように、検査は、ブーリアンが以前のフレームからの変化を示しているか否かを判断する。そうであれば、以前および現在のフレームに対するジオメトリグループの境界ボリュームとオーバーラップする全てのタイルは、ブロック56に示されるように、再度レンダリングされるように設定される。そうでなければ、オーバーラップジオメトリグループが以前のフレームからの変化を示していない場合には、タイルがスキップされてよく、ブロック58に示されるように、フローは次のグループへと進行する。タイルは、一つのジオメトリグループだけに基づいてはスキップされない。後続のジオメトリグループが同一のタイルとオーバーラップして、1のレンダービットを設定することがあるからである。タイルをスキップする決定は、全てのジオメトリグループが処理されたとき(以前のステップにおいてレンダービットが生成されていなければ)最初に行うことができる。全てのジオメトリグループについて繰り返した後で、全てのレンダービットが設定される。
ドローコールといった、ジオメトリのそれぞれのグループは、一時に一つ処理される。ジオメトリグループのブーリアンが、何も変化していないことを示している場合、フローは、次のジオメトリグループに進む。一方で、ブーリアンが何かが変化したことを示している場合、以前のフレームと現在のフレーム両方に対するジオメトリグループの境界ボリュームとオーバーラップする全てのタイルは、1に設定される。このことは、ジオメトリグループのコンテンツが変化したために以前のフレームに置かれたタイルが、再度レンダリングされることを確実にする。そして、現在のフレームに置かれたジオメトリグループも、また再度レンダリングされる。このことは、この技術を用いないでレンダリングされた画像と全く同一の画像を生成するために、画像の正しい部分がアップデートされることを確実にしている。
さらに別の実施例に従えば、グラフィックドライバはレンダリング状態の経過を追って、自動的にブーリアンを計算する。図3に説明するようにである。
図4を参照すると、シーケンス60は、ソフトウェア、ファームウェア、及び/又は、ハードウェアにおいて実施されてよい。ソフトウェアとファームウェアの実施例においては、磁気、光、または、半導体ストレージといった、一つまたはそれ以上のコンピュータで読取り可能な固定媒体に保管されたコンピュータで実行されるインストラクションによって実行され得る。
フレームのレンダリングの最中に、ドライバ及び/又はハードウェアは、ジオメトリのそれぞれのグループに対して現在のレンダリング状態のハッシュ(hash)を計算して保管する(ブロック62)。ハッシュは、例えば、いくつか例をあげると、シェイダ、テクスチャ、サンプル、または、コンスタントバッファ、に基づいてよい。ジオメトリは、例えば、ドローコールであってよい。次のフレームがレンダリングされる(ブロック63)。次に、後続のフレームについて、ジオメトリのそれぞれのグループに対して対応するハッシュが計算され、最後のフレームから保管されたハッシュと比較される(ブロック64)。ハッシュが異なる場合(ダイヤモンド形66)、以前のフレームと現在のフレーム両方に対するジオメトリグループの境界ボリュームとオーバーラップする全てのタイルは、以前のように、1に設定される(ブロック68)。そして、そうでなければ(ブロック69)、フローが反復される。順序が考慮されることに留意する。例えば、2つのドローセルが同一のハッシュを有しているが、異なる順序で発生する場合に、それらはなお再度レンダリングされる。
図5を参照すると、シーケンス70は、ソフトウェア、ファームウェア、及び/又は、ハードウェアにおいて実施されてよい。ソフトウェアとファームウェアの実施例においては、磁気、光、または、半導体ストレージといった、一つまたはそれ以上のコンピュータで読取り可能な固定媒体に保管されたコンピュータで実行されるインストラクションによって実行され得る。
一つの実施例に従えば、フレームおよびジオメトリのそれぞれのグループに対するレンダリングの最中に、ドライバまたはハードウェアは、現在のレンダリング状態のハッシュおよびレンダービットのビットマスクを計算する。ビットマスクはゼロとして初期化される(ブロック72)。そして、ジオメトリグループのレンダリングの最中に、タッチ(touch)されたそれぞれのタイルは1としてマークされる(ブロック74)。次のフレームのレンダリングの最中(ブロック76)、リストの中にハッシュが存在する場合は(ダイヤモンド形78)、対応するタイルについてのエントリーがアクセス済としてマークされる(ブロック80)。存在しない場合は、例えば、バーテクス位置シェイディングによって、境界ボリュームが計算され(ブロック82)、全てのオーバーラップされたタイルは、1としてマークされる(ブロック84)。加えて、アクセスされていない全てのエントリに対するレンダービットは、アクセスされていない全てのタイルのビットマスクとORされる(ブロック86)。これらは、潜在的に変化した領域を示しているからである。
従って、以前のフレームに対する境界ボックスは必要とされない。計算されたレンダービットは、また、より正確であり得る。以前のフレームからのマスクは、実際にタッチされたものであって、単に境界ボリュームがオーバーラップしただけではないタイルを表しているからである。
レンダービットを計算するために、現在のフレームに対する全てのドローコールが利用可能にされ、処理される。図3から図5に係る方法のうち一つに従って説明されるようにである。これが行われた後に、フレームのレンダリングが開始される。このことは、いくつかの追加の遅延をもたらす。完全なフレームがドライバに対して提出されるまで、レンダリングは開始できないからである。全てのレンダービットがゼロに設定されている場合には、フレーム全体がスキップされて、以前のフレームが再使用される得る。
上記の方法のうち一つを使用してレンダービットを計算するために、ジオメトリのそれぞれのグループに対する境界ボリュームが必要になる。図5に示されたシーケンスにおいては、現在のフレームに対する境界ボリュームだけが必要とされたが、一方、図3および図4のシーケンスにおいては、以前および現在のフレームの両方に対する境界ボリュームが使用される。一つのオプションは、現在のグラフィックアプリケーションプログラムインターフェイスへのエクステンションを通じて、ユーザにこれらのものを供給させることである。アフィン(affine)バーテクスシェイダおよびジオメトリ/ドメインでないシェイダのためといった、いくつかの場合には、ジオメトリに対して境界ボックスを変換することによって境界ボリュームが自動的に計算されてよい。他の場合には、境界を計算するためにバーテクス位置シェイディングを実行することが望ましい。いくつかの他の場合には、自動的な方法が使用され得る。以下を参照のこと。J.Hasselgre 、J.Munkberg、 T.Akenine-Moller共著、"Automatic Pre-Tessellation Culling"、ACM Transaction on Graphics、28(2) pages 19:1-19:10、 2009。
これらの技術の他の使用も存在する。例えば、カスケード(cascade)されたシャドウ(shadow)マップを使用したレンダリングシャドウに関して、シャドウマップは、最適化されたデプスマップラスタライザを使用してグラフィック処理ユニット上で生成され得る。最初に、視点からのレンダリングパスの最中にアクセスされるそれぞれのシャドウマップにおけるタイルが決定される。このことは、視点から見えるピクセルのフットプリント(footprint)をシャドウマップ空間に投射して、ピクセルごとに好適なシャドウマップ解像度を選択することによって行われてよい。このことは、それぞれのシャドウマップにおける、レンダリングが必要な数多くのタイルを選択する。その他のタイルはレンダリングの必要がない。それらは、シャドウマップのルックアップ(lookup)を行うときにアクセスされないからである。一般にこのことを利用するための唯一の方法は、シャドウマップを中央処理ユニット上にレンダリングすることである。しかしながら、ここにおいて説明された技術を用いて、レンダービットが生成され、対応するシャドウビットがアクセスされるタイルに対して1が設定される。このことは、シャドウマップのレンダリングを実質的にスピードアップさせ得る。加えて、いくつかの実施例においては、シャドウマップに対して圧縮を使用することができ、メモリのバンド幅を削減することができる。
図6は、システム300の実施例を示している。実施例において、システム300は、メディアシステムであってよいが、システム300は、このコンテクスト(context)に限定されない。例えば、システム300は、以下のものの中に取り込まれてよい。すなわち、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビジョン、スマートデバイス(例えば、スマートフォン、スマートタブレット、または、スマートテレビ)、モバイルインターネットデバイス(MID)、メッセージデバイス、データ通信デバイス、等である。
実施例において、システム300は、ディスプレイ320に接続されたプラットフォーム302を含んでいる。プラットフォーム302は、コンテンツサービスデバイス330またはコンテンツ配送デバイス340もしくは他の類似のコンテンツソースといった、コンテンツデバイスからコンテンツを受信する。一つまたはそれ以上のナビゲーション機能を含むナビゲーションコントローラ350は、例えば、プラットフォーム302及び/又はディスプレイ320とインタラクションするために使用され得る。これらのコンポーネントのそれぞれは、以下に詳細に説明される。
実施例においおて、プラットフォーム302は、チップセット305、プロセッサ310、メモリ312、ストレージ314、グラフィックサブシステム315、アプリケーション316、及び/又は、ラジオ318のあらゆる組み合わせを含んでよい。チップセット305は、プロセッサ310、メモリ312、ストレージ314、グラフィックサブシステム315、アプリケーション316、及び/又は、ラジオ318の間の相互通信を提供することができる。例えば、チップセット315は、ストレージ314との相互通信を提供することができるストレージアダプタ(図示なし)を含んでよい。
プロセッサ310は、複合命令セットコンピュータ(CISC)または縮小命令セットコンピュータ(RISC)プロセッサ、×86インストラクションセットとコンパチブルなプロセッサ、マルチコア、または、あらゆる他のマイクロプロセッサもしくは中央処理ユニット(CPU)として実施されてよい。実施例において、プロセッサ310は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ、等を含んでよい。プロセッサは、メモリ312と供に、図1から図5に係るシーケンスを実施することができる。
メモリ312は、これらに限定されるわけではないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM),または、スタティックRAM(SRAM)といった、揮発性メモリとして実施されてよい。
ストレージ314は、これらに限定されるわけではないが、磁気ディスクドライブ、光ディスクドライブ、内蔵ストレージデバイス、外付けストレージデバイス、フラッシュメモリ、バッテリバックアップSDRAM(シンクロナスDRAM)、及び/又は、ネットワークアクセス可能なストレージデバイスといった、不揮発性ストレージデバイスとして実施されてよい。実施例において、ストレージ314は、例えば、複数のハードドライブが含まれている場合に種々のデジタルメディアに対するストレージパフォーマンスの拡張された保護を増大させるための従来技術を含んでいる。
グラフィックサブシステム315は、静止画または動画といった画像を表示するための処理を実行する。グラフィックサブシステム315は、例えば、グラフィック処理ユニット(GPU)またはビジュアル処理ユニット(VPU)であってよい。グラフィックサブシステム315とディスプレイ320を通信可能に接続するために、アナログまたはデジタルインターフェイスが使用され得る。例えば、インターフェイスは、ハイディフィニションマルチメディアインターフェイス(HDMI(登録商標))、ディスプレイポート、無線HDMI、及び/又は、無線HD対応技術、のいずれかであってよい。グラフィックサブシステム315は、プロセッサ310またはチップセット305の中に取り込まれ得る。グラフィックサブシステム315は、チップセット305に通信可能に接続されたスタンドアロンカードであり得る。
ここにおいて説明されるは、グラフィック及び/又はビデオ処理技術は、種々のハードウェアアーキテクチャにおいて実施されてよい。例えば、グラフィック及び/又はビデオ機能は、チップセットの中で統合されてよい。代替的に、個別のグラフィック及び/又はビデオプロセッサが使用されてよい。さらに別の実施例として、グラフィック及び/又はビデオ機能は、マルチコアプロセッサを含む、汎用プロセッサによって実施され得る。さらなる実施例においては、家電機器において本機能が実施されてよい。
ラジオ318は、種々の好適な無線通信技術を使用して信号を送信及び受信することができる一つまたはそれ以上のラジオを含んでいる。そうした技術は、一つまたはそれ以上のネットワークに渡る通信を含んでいる。典型的な無線ネットワークは、(限定されるわけではないが)無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、無線メトロポリタンエリアネットワーク(WMAN)、携帯電話ネットワーク、および、衛星ネットワークを含んでいる。そうしたネットワークに渡る通信において、ラジオ318は、一つまたはそれ以上の適用可能な規格のあらゆるバージョンに従って動作する。
実施例において、ディスプレイ320は、あらゆるテレビジョンタイプのモニタまたはディスプレイを含んでよい。ディスプレイ320は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビジョン類似品、及び/又は、テレビジョンを含んでよい。ディスプレイ320は、デジタル及び/又はアナログであってよい。実施例において、ディスプレイ320は、ホログラフィディスプレイであってよい。ディスプレイ320は、また、ビジュアル投射を受信する透明なサーフェスであってよい。そうした投射は、情報、画像、及び/又は、オブジェクトに係る種々の形式を伝達する。例えば、そうした投射は、モバイル拡張現実(MAR)アプリケーションのためのビジュアルなオーバーレイであってよい。一つまたはそれ以上のソフトウェアアプリケーション316のコントロールの下で、プラットフォーム302はディスプレイ320上にユーザインターフェイス322を表示し得る。
実施例において、コンテンツサービスデバイス330は、あらゆるナショナル、インターナショナル、及び/又は、独立したサービスによってホストされてよく、従って、例えば、インターネットを介してプラットフォーム302にアクセス可能である。コンテンツサービスデバイス330は、プラットフォーム302及び/又はディスプレイ320に接続されてよい。プラットフォーム302及び/又はコンテンツサービスデバイス330は、メディア情報をネットワーク360に対して又はネットワークから通信(例えば、送信及び/又は受信)するために、ネットワーク360に対して接続されてよい。コンテンツ配送デバイス340も、また、プラットフォーム302及び/又はディスプレイ320に対して接続されてよい。
実施例において、コンテンツサービスデバイス330は、以下のものを含んでよい。すなわち、ケーブルテレビジョンボックス、パーソナルコンピュータ、ネットワーク、電話、インターネットできるデバイスまたはデジタル情報及び/又はコンテンツを配信できる装置、および、ネットワーク360を介して又は直接的にコンテンツプロバイダとプラットフォーム302及び/又はディスプレイ320との間で一方向または双方向でコンテンツを通信することができるあらゆる他の類似のデバイス、である。コンテンツの実施例は、例えば、ビデオ、音楽、医療およびゲーム情報、等を含むあらゆるメディア情報を含んでいる。
コンテンツサービスデバイス330は、メディア情報、デジタル情報、及び/又は、他のコンテンツを含んでいるテレビ番組といったコンテンツを受信する。コンテンツプロバイダの実施例は、あらゆる無線または衛星テレビ、またはラジオ、もしくはインターネットコンテンツプロバイダを含んでよい。
実施例において、プラットフォーム302は、一つまたはそれ以上のナビゲーション機能を有しているナビゲーションコントローラ350からコントロール信号を受信する。コントローラ350のナビゲーション機能は、例えば、ユーザインターフェイス322とインタラクションするために使用され得る。実施例において、ナビゲーションコントローラ350は、ポインティングデバイスであってよく、空間的(例えば、連続した多次元の)データをユーザがコンピュータの中に入力できるようにするコンピュータハードウェアコンポーネント(特には、ヒューマンインターフェイスデバイス)であってよい。グラフィカルユーザインターフェイス(GUI)、テレビとモニタといった、多くのシステムにより、ユーザは、身体的なジェスチャを使用して、データをコントロールしてコンピュータまたはテレビジョンにデータを提供することができる。
コントローラ350のナビゲーション機能の動きは、ポインタ、カーソル、フォーカスリング、または、ディスプレイ上に表示される他の視覚的インジケータの動きによって、ディスプレイ(例えば、ディスプレイ320)上にエコーされ得る。例えば、ソフトウェアアプリケーション316のコントロールの下で、ナビゲーションコントローラ350上に置かれたナビゲーション機能が、例えば、ユーザインターフェイス322上に表示された仮想ナビゲーション機能に対してマップされてよい。実施例において、コントローラ350は、別個のコンポーネントでなくてよく、プラットフォーム302及び/又はディスプレイ320の中に取り込まれてよい。しかしながら、実施例は、ここにおいて示され又は説明されたエレメントまたはコンテクストの中に限定されるものではない。
実施例において、ドライバ(図示なし)は、例えば、イネーブルされた場合に、最初のブートアップの後でボタンをタッチすることで、ユーザが、テレビジョンのようなプラットフォーム302を即座に電源オンおよびオフできるようにする技術を含んでいる。プログラムロジックによって、プラットフォーム302は、プラットフォームが電源「オフ」された場合に、メディアアダプタもしくは他のコンテンツサービスデバイス330またはコンテンツ配送デバイス340に対して、コンテンツをストリーム(stream)することができる。加えて、チップセット305は、例えば、5.1サラウンドサウンドオーディオ及び/又は高品位7.1サラウンドサウンドオーディオをサポートするハードウェア及び/又はソフトウェアを含んでよい。ドライバは、統合されたグラフィックプラットフォームのためのグラフィックドライバを含んでいる。実施例において、グラフィックドライバは、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレスグラフィックカードを含み得る。
種々の実施例においては、システム300において示された一つまたはそれ以上のあらゆるコンポーネントは、統合されてよい。例えば、プラットフォーム302とコンテンツサービスデバイス330が統合されてよく、または、プラットフォーム302とコンテンツ配送デバイス340が統合されてよく、もしくは、例えば、プラットフォーム302、コンテンツサービスデバイス330、および、コンテンツ配送デバイス340が統合されてよい。種々の実施例において、プラットフォーム302とディスプレイ320は統合されたユニコードであってよい。ディスプレイ320とコンテンツサービスデバイス330は統合されてよく、または、例えば、ディスプレイ320とコンテンツ配送デバイス340が統合されてよい。
種々の実施例において、システム300は、無線システム、有線システム、または、両方の組み合わせとして実施されてよい。無線システムとして実施された場合、システム300は、無線のシェアードメディア(shared media)に渡り通信するのに好適なコンポーネントおよびインターフェイスを含んでいる。一つまたはそれ以上のアンテナ、送信器、受信器、トランシーバ、アンプ、フィルタ、コントロールロジック、等といったものである。無線のシェアードメディアの実施例は、RFスペクトラム、等といった、無線スペクトラムの部分を含んでいる。有線システムとして実施された場合、システム300は、有線の通信メディアに渡り通信するのに好適なコンポーネントおよびインターフェイスを含んでいる。入力/出力(I/O)アダプタ、I/Oアダプタを対応する有線の通信メディアに接続するための物理的なコネクタ、ネットワークインターフェイスカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ、等といったものである。有線の通信メディアの実施例は、電線、ケーブル、金属リード、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペア電線、同軸ケーブル、光ファイバ、等を含んでいる。
プラットフォーム302は、情報を通信するための一つまたはそれ以上の論理的または物理的チャネルを確立し得る。情報は、メディア情報およびコントロール情報を含んでよい。メディア情報は、ユーザに対して意味されるコンテンツを表しているあらゆるデータを参照し得る。コンテンツの実施例は、例えば、以下のものを含んでよい。音声会話からのデータ、ビデオ会議、ストリーミングビデオ、電子メール(「eメール」)メッセージ、音声メールメッセージ、英数字シンボル、グラフィック画像、ビデオ、テキスト、等である。音声会話からのデータは、例えば、スピーチ情報、サイレンス期間、バックグラウンドノイズ、コンフォートノイズ、トーン、等であり得る。コントロール情報は、コマンド、インタラクション、または、自動化されたシステムに対して意味をなすコントロールワードを表しているあらゆるデータを参照し得る。例えば、コントロール情報は、システムを通じてメディア情報をルートするために、または、既定の方法でメディア情報を処理するようにノードにインストラクションするために使用される。しかしながら、実施例は、図5において示され又は説明されたエレメントまたはコンテクストの中に限定されるものではない。
上述のように、システム300は、種々の物理的スタイルまたはフォームファクタで実施されてよい。図7は、システム300が実施されるスモールフォームファクタのデバイス400の実施例を示している。実施例において、例えば、デバイス400は、無線機能を有するモバイルコンピューティングデバイスとして実施され得る。モバイルコンピューティングデバイスは、処理システム、および、例えば、一つまたはそれ以上のバッテリといった、モバイル電源を有するあらゆるデバイスを参照し得る。
上述のように、モバイルコンピューティングデバイスの実施例は、以下のものを含んでよい。パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビジョン、スマートデバイス(例えば、スマートフォン、スマートタブレット、または、スマートテレビ)、モバイルインターネットデバイス(MID)、メッセージデバイス、データ通信デバイス、等である。
モバイルコンピューティングデバイスの実施例は、また、人が身に付けられるように構成されたコンピュータを含んでよい。リストコントロール、指コントロール、指輪コンピュータ、メガネコンピュータ、ベルトクリップコンピュータ、腕バンドコンピュータ、靴コンピュータ、衣服コンピュータ、および、他のウェアラブルコンピュータといったものである。実施例において、例えば、モバイルコンピューティングデバイスは、音声通信及び/又はデータ通信と同様に、コンピュータアプリケーションを実行することができるスマートフォンとして実施されてよい。いくつかの実施例は、例として、スマートフォンとして実施されたモバイルコンピューティングデバイスを用いて説明されるが、他の無線モバイルコンピューティングデバイスを使用しても同様に他の実施例が実行され得ることが理解される。実施例は、このコンテクストの中に限定されるものではない。
プロセッサ310は、いくつかの実施例において、カメラ323およびグローバルポジショニングシステムセンサ321と通信し得る。メモリ312は、プロセッサ310に接続されており、ソフトウェア及び/又はファームウェアの実施例において、図2から図5に示されたシーケンスを実施するためのコンピュータで読取り可能なインストラクションを保管することができる。
図7に示されるように、デバイス400は、ハウジング402、ディスプレイ404、入力/出力(I/O)デバイス406、および、アンテナ408を含んでいる。デバイス400は、また、ナビゲーション機能412を含んでいる。ディスプレイ404は、モバイルコンピューティングデバイスに適した情報を表示するためのあらゆる好適なディスプレイユニットを含んでよい。I/Oデバイス406は、モバイルコンピューティングデバイスの中に情報を入力するためのあらゆる好適なI/Oデバイスを含んでよい。I/Oデバイス406の実施例は、以下のものを含んでよい。英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカ、音声認識デバイスとソフトウェア、等である。情報も、また、マイクロフォンを用いてデバイス400の中に入力される。そうした情報は、音声認識デバイスによってデジタル化され得る。実施例は、このコンテクストの中に限定されるものではない。
種々の実施例は、ハードウェアエレメント、ソフトウェアエレメント、または、両方の組み合わせを使用して実施されてよい。ハードウェアエレメントの実施例は、以下のものを含み得る。プロセッサ、マイクロプロセッサ、回路、回路エレメント(例えば、トランジスタ、抵抗、キャパシタ、インダクタ、等)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、抵抗、半導体デバイス、チップ、マイクロチップ、チップセットトップボックス、等である。ソフトウェアの実施は、以下のものを含み得る。ソフトウェアコンポーネント、プロセッサ、アプリケーション、コンピュータプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインターフェイス、アプリケーションプログラムインターフェイス(API)、インストラクションセット、コンピューティングコード、コードセグメント、コンピュータコードセグメント、ワード、バリュー、シンボル、または、これらのあらゆる組み合わせ、である。実施例が、ハードウェアエレメント及び/又はソフトウェアエレメントを使用して実施されているか否かの判断は、数多くの要因に従って変化し得る。所望の計算レート、電力消費レベル、熱許容量、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、および、他のデザインまたはパフォーマンス制約、といったものである。
以降の節及び/又は例示は、さらなる実施例に関するものである。
一つの実施例に係る方法は、ピクセルまたはサンプルをタイルの中に電子的に編成するステップと、複数のタイルのそれぞれに対して、複数のラスタライゼーションオペレーションの全てをラスタライザにおいて完了するか否か、または、代替的に、前記ラスタライザにおける少なくとも一つのオペレーションを所与のタイルに対して省略するか否か、を電子的に指示するステップと、を含む。本方法は、また、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示するステップと、を含む。本方法は、また、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用するステップと、を含む。本方法は、また、前記指示に対するそれぞれのタイルに関するビットを使用するステップと、タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用するステップと、を含む。本方法は、また、前記ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットを保管するステップと、を含む。本方法は、また、一連のタイルサイズを用いた階層的ラスタライゼーションを使用するステップと、を含む。本方法は、また、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付けるステップと、を含む。本方法は、また、最初にバーテクスシェイダの位置部分をレンダリングするステップと、バーテクス属性シェイディングを遅延させるステップと、を含む。本方法は、また、指示ビットが前記タイルをレンダリングしないよう指示する場合に、バーテクス属性シェイディングを回避するステップと、を含む。本方法は、また、少なくとも一つのビットがラスタライゼーションしないように指示する場合は、バーテクス属性シェイディングに進む以前に、境界ボックスとオーバーラップしているタイルにおける全てのビットを検査するステップと、を含む。
別の実施例は、シーケンスを実施するために実行されるインストラクションを保管している、少なくとも一つのコンピュータで読取り可能な固定媒体であって、前記シーケンスは、ピクセルまたはサンプルをタイルの中に電子的に編成し、かつ、複数のタイルのそれぞれに対して、複数のラスタライゼーションオペレーションの全てをラスタライザにおいて完了するか否か、または、代替的に、前記ラスタライザにおける少なくとも一つのオペレーションを所与のタイルに対して省略するか否か、を電子的に指示する、コンピュータで読取り可能な固定媒体である。前記媒体は、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示するシーケンス、を含んでいる。前記媒体は、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用するシーケンス、を含んでいる。前記媒体は、前記指示に対するそれぞれのタイルに関するビットを使用し、かつ、タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用するシーケンス、を含んでいる。前記媒体は、前記ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットを保管するシーケンス、を含んでいる。前記媒体は、一連のタイルサイズを用いた階層的ラスタライゼーションを使用するシーケンス、を含んでいる。前記媒体は、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付けるシーケンス、を含んでいる。前記媒体は、最初にバーテクスシェイダの位置部分をレンダリングし、かつ、バーテクス属性シェイディングを遅延させるシーケンス、を含んでいる。 前記媒体は、指示ビットが前記タイルをレンダリングしないよう指示する場合に、バーテクス属性シェイディングを回避するシーケンス、を含んでいる。前記媒体は、少なくとも一つのビットがラスタライゼーションしないように指示する場合は、バーテクス属性シェイディングに進む以前に、境界ボックスとオーバーラップしているタイルにおける全てのビットを検査するシーケンス、を含んでいる。
別の実施例は、装置であって、ラスタライゼーションであり、ピクセルまたはサンプルをタイルの中に電子的に編成し、かつ、複数のタイルのそれぞれに対して、複数のラスタライゼーションオペレーションの全てをラスタライザにおいて完了するか否か、または、代替的に、前記ラスタライザにおける少なくとも一つのオペレーションを所与のタイルに対して省略するか否か、を電子的に指示する、ラスタライザと、前記ラスタライザに接続されたバッファと、を含む。装置は、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示する、ラスタライザを含んでいる。装置は、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用するラスタライザ、を含んでいる。装置は、前記指示に対するそれぞれのタイルに関するビットを使用し、かつ、タイルにおけるレンダリングの変化を検出するためにレンダリング状態のハッシュを使用するラスタライザ、を含んでいる。装置は、前記ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットを保管するラスタライザ、を含んでいる。装置は、一連のタイルサイズを用いた階層的ラスタライゼーションを使用するラスタライザ、を含んでいる。装置は、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付けるラスタライザ、を含んでいる。装置は、オペレーティングシステム、バッテリ、ファームウェア、および、前記ファームウェアをアップデートするためのモジュール、を含んでいる。
ここにおいて説明されたグラフィック処理技術は、種々のハードウェアアーキテクチャにおいて実施され得る。例えば、グラフィック機能は、チップセットの中に統合されてよい。代替的に、別個のグラフィックプロセッサが使用されてもよい。さらに別の実施例として、グラフィック機能は、マルチコアプロセッサを含む、汎用プロセッサによって実施され得る。
この明細書の全体にわたり「一つの実施例(“one embodiment”or”an embodiment“)」への言及は、実施例に関して説明された所定の特徴、構成、または、特性が、本発明の少なくとも一つの実施例に含まれていることを意味するものである。従って、「一つの実施例」というフレーズの表現は、必ずしも同一の実施例について言及するものではない。さらに、所定の機能、構成、または、特性は、説明された特定の実施例よりむしろ、他の好適なフォームにおいて制定することができる。
限定された数量の実施例が説明されてきたが、当業者であれば、そうした実施例から、多くの変形およびバリエーションを認識するであろう。添付の特許請求の範囲は、全てのこうした変形およびバリエーションを、本発明開示に係る真の精神と発明の範囲の中にあるものとしてカバーするように意図されたものである。
10 グラフィックパイプライン
12 入力アセンブラ
14 バーテクスシェイダ
16 ジオメトリシェイダ
18 ラスタライザ
22 ピクセルシェイダ
300 システム
302 プラットフォーム
320 ディスプレイ
330 コンテンツサービスデバイス
340 コンテンツ配送デバイス
360 ネットワーク

Claims (31)

  1. コンピュータにおける方法であって、前記コンピュータのプロセッサが、
    ピクセルまたはサンプルをタイルの中に電子的に編成するステップと、
    バーテクスシェイダの位置部分を実行するステップと、
    記位置部分の実行の後でインジケータを検査して、第1タイルが以前の第2タイルから変化しているか否かを決定するステップと、を含み、
    前記第1タイルが以前の第2タイルから変化していない場合には、前記バーテクスシェイダの属性部分を実行することなく、かつ、
    前記第1タイルが以前の第2タイルから変化している場合に、前記位置部分に加えて前記属性部分を実行する、
    方法。
  2. タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示するステップと、
    を含む、請求項1に記載の方法。
  3. 前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用するステップと、
    を含む、請求項2に記載の方法。
  4. 前記指示に対するそれぞれのタイルに関するビットを使用するステップと、
    ンダリング状態情報のハッシュを使用してタイルにおけるレンダリングの変化を検出するステップと、
    を含む、請求項2に記載の方法。
  5. ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットをビットマスクに保管するステップと、
    を含む、請求項4に記載の方法。
  6. 一連のタイルサイズを用いた階層的ラスタライゼーションを使用するステップと、
    を含む、請求項2に記載の方法。
  7. 前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付けるステップと、
    を含む、請求項6に記載の方法。
  8. 最初にバーテクスシェイダの位置部分を実行するステップと、
    バーテクス属性シェイディングを遅延させるステップと、
    を含む、請求項1に記載の方法。
  9. 指示ビットが前記タイルをレンダリングしないよう指示する場合に、バーテクス属性シェイディングを回避するステップと、
    を含む、請求項8に記載の方法。
  10. 少なくとも一つのビットがラスタライゼーションしないように指示する場合は、バーテクス属性シェイディングに進む以前に、境界ボックスとオーバーラップしているタイルにおける全てのビットを検査するステップと、
    を含む、請求項9に記載の方法。
  11. コンピュータにシーケンスを実行させるコンピュータプログラムであって、
    前記シーケンスは、
    ピクセルまたはサンプルをタイルの中に電子的に編成し、
    バーテクスシェイダの位置部分を実行し、
    記位置部分の実行の後でインジケータを検査して、第1タイルが以前の第2タイルから変化しているか否かを決定し
    前記第1タイルが以前の第2タイルから変化していない場合には、前記バーテクスシェイダの属性部分を実行することなく、かつ、
    前記第1タイルが以前の第2タイルから変化している場合に、前記位置部分に加えて前記属性部分を実行する、
    コンピュータプログラム。
  12. 前記シーケンスは、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示する、
    請求項11に記載のコンピュータプログラム。
  13. 前記シーケンスは、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用する、
    請求項12に記載のコンピュータプログラム。
  14. 前記シーケンスは、前記指示に対するそれぞれのタイルに関するビットを使用し、かつ、
    ンダリング状態情報のハッシュを使用して、タイルにおけるレンダリングの変化を検出し、
    請求項12に記載のコンピュータプログラム。
  15. 前記シーケンスは、ラスタライザによる使用のために、ビットマスクにおけるフレームに対する指示ビットを保管する
    請求項14に記載のコンピュータプログラム。
  16. 前記シーケンスは、一連のタイルサイズを用いた階層的ラスタライゼーションを使用する、
    請求項12に記載のコンピュータプログラム。
  17. 前記シーケンスは、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付ける、
    請求項16に記載のコンピュータプログラム。
  18. 前記シーケンスは、最初にバーテクスシェイダの位置部分を実行し、かつ、
    バーテクス属性シェイディングを遅延させる、
    請求項11に記載のコンピュータプログラム。
  19. 前記シーケンスは、指示ビットが前記タイルをレンダリングしないよう指示する場合に、バーテクス属性シェイディングを回避する、
    請求項18に記載のコンピュータプログラム。
  20. 前記シーケンスは、少なくとも一つのビットがラスタライゼーションしないように指示する場合は、バーテクス属性シェイディングに進む以前に、境界ボックスとオーバーラップしているタイルにおける全てのビットを検査する、
    請求項19に記載のコンピュータプログラム。
  21. ラスタライザであり、
    ピクセルまたはサンプルをタイルの中に電子的に編成し、バーテクスシェイダの位置部分を実行、前記位置部分の実行の後でインジケータを検査して、第1タイルが以前の第2タイルから変化しているか否かを決定し
    前記第1タイルが以前の第2タイルから変化していない場合には、前記バーテクスシェイダの属性部分を実行することなく、かつ、
    前記第1タイルが以前の第2タイルから変化している場合に、前記位置部分に加えて前記属性部分を実行する、ラスタライザと、
    前記ラスタライザに接続されたバッファと、
    を含む、装置。
  22. 前記ラスタライザは、タイルのレベルでのラスタライゼーションの以前に、タイルを全てレンダリングするか否かを指示する、
    請求項21に記載の装置。
  23. 前記ラスタライザは、前記タイルのラスタライゼーションが行われない場合に、現在のフレームにおけるタイルの代わりに、以前のフレームにおける同一のタイルからのコンテンツを使用する、
    請求項22に記載の装置。
  24. 前記ラスタライザは、前記指示に対するそれぞれのタイルに関するビットを使用し、かつ、
    ンダリング状態情報のハッシュを使用して、タイルにおけるレンダリングの変化を検出する、
    請求項22に記載の装置。
  25. 前記ラスタライザは、前記ラスタライザによる使用のために、フレームに対する前記指示に対するビットをビットマスクに保管する、
    請求項24に記載の装置。
  26. 前記ラスタライザは、一連のタイルサイズを用いた階層的ラスタライゼーションを使用する、
    請求項22に記載の装置。
  27. 前記ラスタライザは、前記指示に対するビットを、前記一連のタイルサイズにおける特定の一つのタイルサイズに関連付ける、
    請求項26に記載の装置。
  28. 前記装置は、オペレーティングシステムを含む、
    請求項21に記載の装置。
  29. 前記装置は、バッテリを含む、
    請求項21に記載の装置。
  30. 前記装置は、ファームウェア、および、前記ファームウェアをアップデートするためのモジュール、を含む、
    請求項21に記載の装置。
  31. 請求項11乃至20のうちいずれか一項に記載のコンピュータプログラムを記憶したコンピュータで読取り可能な有形の記録媒体。
JP2018106779A 2013-10-07 2018-06-04 選択的ラスタライゼーション Active JP6676703B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/047,079 US9659393B2 (en) 2013-10-07 2013-10-07 Selective rasterization
US14/047,079 2013-10-07

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016104517A Division JP2016184419A (ja) 2013-10-07 2016-05-25 選択的ラスタライゼーション

Publications (2)

Publication Number Publication Date
JP2018163678A JP2018163678A (ja) 2018-10-18
JP6676703B2 true JP6676703B2 (ja) 2020-04-08

Family

ID=52776591

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2014195156A Pending JP2015076096A (ja) 2013-10-07 2014-09-25 選択的ラスタライゼーション
JP2016104517A Pending JP2016184419A (ja) 2013-10-07 2016-05-25 選択的ラスタライゼーション
JP2017112325A Active JP6495378B2 (ja) 2013-10-07 2017-06-07 選択的ラスタライゼーション
JP2017112324A Active JP6495377B2 (ja) 2013-10-07 2017-06-07 選択的ラスタライゼーション
JP2018106779A Active JP6676703B2 (ja) 2013-10-07 2018-06-04 選択的ラスタライゼーション

Family Applications Before (4)

Application Number Title Priority Date Filing Date
JP2014195156A Pending JP2015076096A (ja) 2013-10-07 2014-09-25 選択的ラスタライゼーション
JP2016104517A Pending JP2016184419A (ja) 2013-10-07 2016-05-25 選択的ラスタライゼーション
JP2017112325A Active JP6495378B2 (ja) 2013-10-07 2017-06-07 選択的ラスタライゼーション
JP2017112324A Active JP6495377B2 (ja) 2013-10-07 2017-06-07 選択的ラスタライゼーション

Country Status (2)

Country Link
US (3) US9659393B2 (ja)
JP (5) JP2015076096A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10957094B2 (en) 2013-03-29 2021-03-23 Advanced Micro Devices, Inc. Hybrid render with preferred primitive batch binning and sorting
US10169906B2 (en) 2013-03-29 2019-01-01 Advanced Micro Devices, Inc. Hybrid render with deferred primitive batch binning
US9659393B2 (en) * 2013-10-07 2017-05-23 Intel Corporation Selective rasterization
US9940686B2 (en) 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
US10037621B2 (en) 2015-06-18 2018-07-31 Intel Corporation Hierarchical quadrant based coverage testing for rasterization
KR102399686B1 (ko) * 2015-07-28 2022-05-19 삼성전자주식회사 3d 렌더링 방법 및 장치
GB2546810B (en) * 2016-02-01 2019-10-16 Imagination Tech Ltd Sparse rendering
US10186076B2 (en) * 2016-03-29 2019-01-22 Intel Corporation Per-sample MSAA rendering using comprehension data
US20170345206A1 (en) * 2016-05-27 2017-11-30 Intel Corporation Occlusion query apparatus and method for accelerated rendering
US10127707B2 (en) * 2016-06-27 2018-11-13 Intel Corporation Discard mechanism for tile-based rendering
US20180285272A1 (en) * 2017-04-01 2018-10-04 Intel Corporation Managing image writes
US10430990B2 (en) * 2017-09-20 2019-10-01 Intel Corporation Pixel compression mechanism
CN108878996B (zh) * 2018-05-22 2021-03-23 宁德时代新能源科技股份有限公司 电池组系统及其控制方法、管理设备
GB2580179B (en) 2018-12-21 2021-08-18 Imagination Tech Ltd Tile-based scheduling
US11270494B2 (en) 2020-05-22 2022-03-08 Microsoft Technology Licensing, Llc Shadow culling

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325040A (en) 1992-09-21 1994-06-28 Motorola, Inc. Method and apparatus for charging a battery powered electronic device
US5552898A (en) * 1994-07-06 1996-09-03 Agfa-Gevaert Lossy and lossless compression in raster image processor
KR100222074B1 (ko) 1996-12-17 1999-10-01 윤종용 정전력충전회로 및 이를 이용한 휴대용 컴퓨터
US6091422A (en) 1998-04-03 2000-07-18 Avid Technology, Inc. System for editing complex visual data providing a continuously updated rendering
US6222347B1 (en) 1998-04-30 2001-04-24 Apple Computer, Inc. System for charging portable computer's battery using both the dynamically determined power available based on power consumed by sub-system devices and power limits from the battery
US6646639B1 (en) * 1998-07-22 2003-11-11 Nvidia Corporation Modified method and apparatus for improved occlusion culling in graphics systems
WO2000011603A2 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
GB2343603B (en) 1998-11-06 2003-04-02 Videologic Ltd Shading 3-dimensional computer generated images
JP2001162548A (ja) 1999-12-03 2001-06-19 Denso Corp ねじ締付装置及び該装置の異物噛み込み判定方法
AU2002246920A1 (en) 2000-10-27 2002-08-06 Emerson Electric Co. Uninterruptible power supply
US6738069B2 (en) * 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering
US7301537B2 (en) 2002-12-20 2007-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Graphics processing apparatus, methods and computer program products using minimum-depth occlusion culling and zig-zag traversal
US7379599B1 (en) * 2003-07-30 2008-05-27 Matrox Electronic Systems Ltd Model based object recognition method using a texture engine
WO2005116930A1 (en) * 2004-05-24 2005-12-08 Koninklijke Philips Electronics N.V. Tile based graphics rendering
US7872450B1 (en) 2004-12-29 2011-01-18 American Power Conversion Corporation Adaptive battery charging
WO2006135838A2 (en) 2005-06-10 2006-12-21 Agere Systems Inc. Multi-threshold charging of a rechargeable battery
US7903047B2 (en) * 2006-04-17 2011-03-08 Qualcomm Mems Technologies, Inc. Mode indicator for interferometric modulator displays
JP4484858B2 (ja) 2006-10-19 2010-06-16 日立ビークルエナジー株式会社 蓄電池管理装置およびそれを備える車両制御装置
US8139058B2 (en) 2006-11-03 2012-03-20 Vivante Corporation Hierarchical tile-based rasterization algorithm
US9013139B2 (en) 2007-03-26 2015-04-21 The Gillette Company Adaptive charger device and method
US8207980B2 (en) * 2007-05-01 2012-06-26 Vivante Corporation Coordinate computations for non-power of 2 texture maps
WO2008145434A1 (en) 2007-05-31 2008-12-04 Nokia Corporation Portable telecommunications device
US8138723B2 (en) 2008-05-26 2012-03-20 Steve Carkner Remote battery charging system with dynamic voltage adjustment and method of use
US20100026240A1 (en) 2008-07-30 2010-02-04 3M Innovative Properties Company Lithium ion battery pack charging system and device including the same
US8217962B2 (en) * 2009-01-29 2012-07-10 Microsoft Corporation Single-pass bounding box calculation
GB2469526B (en) * 2009-04-17 2015-06-24 Advanced Risc Mach Ltd Generating and resolving pixel values within a graphics processing pipeline
US8183826B2 (en) 2009-05-15 2012-05-22 Battelle Memorial Institute Battery charging control methods, electric vehicle charging methods, battery charging apparatuses and rechargeable battery systems
JP5835879B2 (ja) 2009-09-25 2015-12-24 アーム・リミテッド メモリからのデータの配列の読み込みを制御する方法および装置
US8587581B2 (en) * 2009-10-15 2013-11-19 Nvidia Corporation Order-preserving distributed rasterizer
US20110089886A1 (en) 2009-10-21 2011-04-21 Stephen Dubovsky Maximum Power Point Tracking Bidirectional Charge Controllers for Photovoltaic Systems
US8505001B2 (en) * 2009-12-17 2013-08-06 Broadcom Corporation Method and system for utilizing data flow graphs to compile shaders
JP2012010089A (ja) * 2010-06-24 2012-01-12 Canon Inc 画像処理装置、制御方法、及びプログラム
US20120176386A1 (en) * 2011-01-10 2012-07-12 Hutchins Edward A Reducing recurrent computation cost in a data processing pipeline
US8441235B2 (en) 2011-01-31 2013-05-14 Taiwan Semiconductor Manufacturing Company, Ltd. Battery charger digital control circuit and method
US9331520B2 (en) 2011-12-22 2016-05-03 Texas Instruments Incorporated Inductively coupled charger
JP2013191913A (ja) 2012-03-12 2013-09-26 Renesas Electronics Corp ワイヤレス充電回路、ワイヤレス充電システム及び半導体装置
US20140192051A1 (en) * 2012-03-30 2014-07-10 Etay Meiri Offloading Tessellation from a Graphics Processor to a Central Processing Unit
US20140184633A1 (en) * 2012-12-31 2014-07-03 Nvidia Corporation Conservative bounding region rasterization
US9640148B2 (en) * 2013-06-03 2017-05-02 Arm Limited Method of and apparatus for controlling frame buffer operations
US9659393B2 (en) * 2013-10-07 2017-05-23 Intel Corporation Selective rasterization

Also Published As

Publication number Publication date
US10164458B2 (en) 2018-12-25
JP2017194984A (ja) 2017-10-26
JP2016184419A (ja) 2016-10-20
US20150097857A1 (en) 2015-04-09
US10164459B2 (en) 2018-12-25
JP6495377B2 (ja) 2019-04-03
JP2015076096A (ja) 2015-04-20
JP6495378B2 (ja) 2019-04-03
US20170264106A1 (en) 2017-09-14
JP2017194985A (ja) 2017-10-26
US20170256079A1 (en) 2017-09-07
JP2018163678A (ja) 2018-10-18
US9659393B2 (en) 2017-05-23

Similar Documents

Publication Publication Date Title
JP6676703B2 (ja) 選択的ラスタライゼーション
JP6504212B2 (ja) 装置、方法およびシステム
US9390541B2 (en) Programmable tile shader
US8970587B2 (en) Five-dimensional occlusion queries
TWI615807B (zh) 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統
TW201537555A (zh) 避免發送未改變區域至顯示器之技術
TWI517086B (zh) 用於去耦取樣為主描繪管線之低功率質心決定及紋理覆蓋區最佳化
TW201535316A (zh) 藉由合倂自相鄰圖元之片段以減少著色之技術
US9183652B2 (en) Variable rasterization order for motion blur and depth of field
US9262841B2 (en) Front to back compositing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200312

R150 Certificate of patent or registration of utility model

Ref document number: 6676703

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250