JP5579193B2 - タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト - Google Patents

タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト Download PDF

Info

Publication number
JP5579193B2
JP5579193B2 JP2011541584A JP2011541584A JP5579193B2 JP 5579193 B2 JP5579193 B2 JP 5579193B2 JP 2011541584 A JP2011541584 A JP 2011541584A JP 2011541584 A JP2011541584 A JP 2011541584A JP 5579193 B2 JP5579193 B2 JP 5579193B2
Authority
JP
Japan
Prior art keywords
tile
primitive
block
mask
tiles
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
JP2011541584A
Other languages
English (en)
Other versions
JP2012513053A (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 JP2012513053A publication Critical patent/JP2012513053A/ja
Application granted granted Critical
Publication of JP5579193B2 publication Critical patent/JP5579193B2/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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

Landscapes

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

Description

本発明は、三次元コンピュータグラフィックシステムに係り、より特定すれば、タイルベースレンダリングを使用するシステムに係る。
処理能力が高まるにつれて、三次元のコンピュータ作成画像の複雑さも増加した。頂点及び三角形メッシュを使用する人間の動きのような非常に複雑な3D物体のコンピュータモデルは、作成が容易になった。この種の3Dモデルを3Dコンピュータグラフィックシステムへ送り、3Dアニメ画像をコンピュータスクリーン上に作成することができる。コンピュータ作成の3Dアニメ画像は、3Dコンピュータゲーム、ナビゲーションツール、及びコンピュータ支援型エンジニアリングデザインツールで広く使用されている。
3Dコンピュータグラフィックシステムは、益々複雑なグラフィックや益々高速な表示の需要に対処しなければならない。表示モデルの細部が増加するにつれて、益々多くのプリミティブ及び頂点が使用される。又、テクスチャ及びシェーディング技術が進歩するにつれて、益々多くの情報がプリミティブ及び頂点データに添付される。近代的なゲームでは、レンダリングに百万を越えるプリミティブが存在する。それ故、メモリの帯域巾は、コンピュータグラフィックシステムの性能に影響する非常に大きな要因となる。
タイルベースのレンダリングシステムが良く知られている。これは、画像を複数の長方形ブロック又はタイルへと細分化する。英国特許第GB2343603号及び国際特許出願第WO2004/086309号に開示されたように、これらのシステムは、レンダリング表面をnxmのピクセルタイルのサブ表面へと分割し、三角形、線又は点のようなプリミティブのみが、プリミティブに重畳するタイルにおいて処理される。
タイルベースの3Dコンピュータグラフィックシステムにおいてタイル化のために遂行される主たるステップが図1に示されている。それらは、次の通りである。
1.図1の101において、プリミティブ及び頂点の入力データストリームが受け取られる。三角形ストリップ及び扇形のような、同様の位置におけるプリミティブが時間的に順次に到着する。
2.マクロタイルエンジン(MTE)は、頂点をスクリーンスペースへと変換し、後方を向いているか又は良く知られた方法を使用してクリッピング平面によりクリップされるプリミティブを除去する。次いで、プリミティブは、固定の最大数の頂点及びプリミティブを伴うプリミティブブロックへとグループ化され、そして図1の102においてメモリへ書き込まれる。頂点及びプリミティブの数は、プリミティブブロックのメモリアドレス(プリミティブブロックポインタ)と共に、103において、タイルエンジンへ送られ、プリミティブによりカバーされるタイルの表示リストのための制御ストリームに追加される。
プリミティブ及び頂点データをフェッチするためのメモリ帯域巾の影響を最小にするために、プリミティブは、プリミティブブロックの境界ボックスに基づいてマクロタイルにおけるプリミティブブロックへとグループ化される。図2において、マクロタイル201は、固定数のタイル202を伴うスクリーン200の長方形エリアである。例えば、マクロタイルは、スクリーンサイズの1/4又は1/16である。この構造を使用して、プリミティブブロックを局所化し、メモリの帯域巾を減少させる。プリミティブブロックのプリミティブがマクロタイルに交差するときには、それらが、グローバルマクロタイルリストと称される特殊なマクロタイプリストに書き込まれる。このように、プリミティブブロックのパラメータデータは、一度しか書き込まれない。マクロタイルからのプリミティブは、マクロタイル内のタイルでなければアクセスできず、一方、グローバルマクロタイルリストからのプリミティブは、全てのタイルによってアクセスすることができる。
3.マクロタイルエンジンにより書き込まれた(102)プリミティブブロックからの各プリミティブは、プリミティブブロックの境界ボックス内の各タイルに対してチェックされる。プリミティブブロックのプリミティブによりカバーされるタイルについて表示リストにプリミティブブロックが追加される。タイルの表示リストに関連した制御ストリームに書き込まれた制御データは、プリミティブブロック内の頂点及びプリミティブの数に対するプリミティブブロックヘッダ、プリミティブブロックが書き込まれるメモリアドレスのプリミティブブロックポインタ、及びタイルにおいて見ることのできるプリミティブに対するプリミティブマスクを含む。
表示リスト内の制御ストリームデータに対して各タイルに個別のメモリスペースが割り当てられる。テールポインタと称されるメモリアドレスポインタが各タイルの制御ストリームデータにおける次の空きアドレスに対して使用される。
タイル内の制御ストリームに対するメモリアクセスを改善するために、小さなキャッシュ即ちテールポインタキャッシュをタイルエンジンに追加することができる(103)。タイル内の制御ストリームの終了のメモリ位置は、テールポインタキャッシュに記憶されてそこから読み取られ、これは、タイルエンジンからの主たるメモリアクセスを減少させる。
4.タイルベースの3Dコンピュータグラフィックシステムの3D画像処理が、図3の領域アレイ300からのスクリーンのタイルごとに、104において遂行される。これは、図3の各タイル301の制御ストリームを通して進み、制御データ302においてプリミティブブロックポインタで指されたメモリアドレスから頂点及びプリミティブデータを読み取る。隠れた表面の除去、テクスチャ化及びシェーディングのような画像処理オペレーションがプリミティブブロックからタイルにおいて有効な全てのプリミティブに対して遂行される。
タイルベースのレンダリングの一例が図6に示されている。スクリーンの一部分であるマクロタイルMT0 600は、16枚のタイル601を内部に有する。2つの三角形ストリップ602、603及び大きな三角形604は、マクロタイルエンジンMTE605によって処理され、MT0のスクリーンの一部分へ投影される。3つのプリミティブブロックに関連した頂点及びプリミティブデータは、それら自身のメモリアドレスでメモリ607に書き込まれる。次いで、3つのプリミティブブロックのメモリアドレスポインタが、タイル処理のためにタイルエンジンTE606へ通される。全てのタイルがタイルエンジンによって横断されて、プリミティブがタイルの内部にあるかどうか判断すると共に、タイル内に見えるプリミティブブロックに関連した制御ストリームデータがタイル表示リストのためにメモリに書き込まれる。この例では、T5における表示制御ストリームは、3つのプリミティブブロックのアドレスポインタに対する制御データと、3つのプリミティブブロック内の三角形の三角形可視マスクとを含む。例えば、プリミティブブロック602の左から最初の3つの三角形及びプリミティブブロック603の右から最初の三角形は、三角形604と一緒に、T5において見ることができる。タイルT9では、制御ストリームデータは、プリミティブブロック603及び604からの情報のみで構成される。そうする間に、プリミティブブロック602に関連した頂点データのアドレスポインタのような制御データは、タイルT5のための2つの制御ストリームに挿入され、一方、プリミティブブロック604に関連した制御データは、マクロタイルMT0のタイルごとに制御ストリームへと挿入される。
3Dレンダリング処理608では、全てのタイルが図3の300のような領域アレイの順序で1つづつ処理される。3D処理における各タイルに対して、制御ストリームからの制御データが、図3の301のように、最初にメモリから読み取られる。タイル制御データにおけるプリミティブブロックに関連した頂点及びプリミティブデータは、図3の302のようにメモリから読み取られ、それ故、タイルに対して見える全ての三角形が処理されてスクリーンにレンダリングされる。
タイルベースのコンピュータグラフィックシステムでは、レンダリングがタイルごとに遂行される。タイルベースレンダリングの大きな利点は、グラフィックシステムの大きな内部記憶及びメモリ帯域巾の必要性を著しく減少することである。
タイルベースレンダリングの欠点は、各タイルの表示リストに対して制御データの増加が必要とされることである。三角形がカバーする全てのタイルに対して表示制御データを書き込むことが必要である。多数のタイルをカバーする大きな三角形では、書き込まれる制御データの合計量が顕著なものとなる。
例えば、スクリーンサイズ1920x1080のレンダリングは、16x16ピクセルの8160個のタイルへと分割することができる。全スクリーンをカバーする大きな三角形を全てのタイルの表示リストに追加しなければならない。制御データとして32ビットワードが2つ必要とされる場合には、合計制御ストリームデータは、単一のフルスクリーン三角形に対してほぼ64KBとなる。この場合に必要とされる制御データの量は、メモリスペース要求及びメモリ帯域巾に著しく影響し、それ故、タイルベースの3Dコンピュータグラフィックシステムのレンダリングの性能に影響を及ぼす。
英国特許出願第0717781.9号には、タイルエンジンの性能を改善するために2つのタイルを同時に処理するシステムが説明されている。2つの隣接タイルからの制御ストリームデータが単一の表示リストへと合成され、これは、合計制御ストリームデータを前記例において約32KBに減少する。制御ストリームデータのサイズは、この場合に約半分のサイズであるが、単一の三角形に対する制御データは、依然、顕著な量である。
本発明の好ましい実施形態は、タイルベースの3Dコンピュータグラフィックシステムにおいてマルチレベルの表示制御リストを可能にする方法及び装置を提供する。これは、特に、大きな三角形を伴うシーンに対して、書き込まれるタイルベースの制御ストリームデータの量を減少し、それにより、メモリ帯域巾を減少すると共に、タイルベースの3Dグラフィックシステムの性能を向上させる。
タイルベースのレンダリングシステムでは、複数のタイルをカバーする三角形は、制御ストリームデータにリファレンスを配さねばならない各タイルについてメモリ及び帯域巾を消費する。ここに提案する本発明は、多数のタイルに重畳する三角形が制御ストリームに対して少数のリファレンスを書き込むだけでよいように後続レベルが次第に大きなタイルグループを表すマルチレベルリスト構造を導入することにより、この問題を軽減する。ここに述べる実施形態では、マルチレベルリスト構造は、3つのレベル、即ちタイルレベル(1タイル)、ブロックレベル(NxM個のタイル)、及びマクロタイルレベル(XxY個のタイル)で具現化される。ここに提案する本発明は、複数のサブレベル表現を使用して、表示リストのための制御ストリームを更に効率良くできるように、容易に拡張することができる。
好ましい実施形態では、三次元コンピュータグラフィック画像をレンダリングするための方法において、
画像を複数の長方形タイルへと細分化し、
複数レベルの次第に大きくなるタイルグループより成るマルチレベル構造にタイルを配列し、
レンダリングされるべき画像データを、画像をレンダリングするのに必要な画像データを含む複数のプリミティブブロックへと分割し、
各プリミティブブロックを、それが交差するタイルグループに基づきマルチレベル構造内のタイルグループに指定して、各プリミティブブロックがマルチレベル構造内の1つのレベルのグループに指定されるようにし、
画像をレンダリングするための制御ストリームデータを導出し、その制御ストリームデータは、各グループに指定されたプリミティブブロックに対応するマルチレベル構造の各レベル内の各タイルグループに対してプリミティブブロックへのリファレンスを含み、
制御ストリームデータを使用して、プリミティブデータを表示のためにタイルグループ内のタイルへとレンダリングする、
ことを含む方法が提供される。
タイルベースの3Dコンピュータグラフィックシステムにおいてタイルを具現化するときに遂行される主たるステップの概略を示す。 タイルベースの3Dコンピュータグラフィックシステムに使用されるマクロタイル及びスクリーン上のタイルを示す。 タイル化に使用されるデータ構造の概略を示す。 本発明の一実施形態においてマクロタイルのマルチレベル表示制御リストに使用されるデータ構造の概略を示す。 本発明の一実施形態においてマルチレベル表示制御リストの制御ストリームデータに使用されるデータ構造の概略を示す。 タイルベースレンダリングの一例を示す。
上述したタイルベースの3Dコンピュータグラフィックシステムにおいて、タイルエンジンは、マクロタイルエンジンからプリミティブブロックを取り出し、そしてプリミティブをレンダリングするのに必要な最小タイル枚数を計算する。次いで、タイルの最小リストが処理され、そしてプリミティブブロックデータのアドレスに対するプリミティブブロックポインタが、タイルに存在するプリミティブを記述するプリミティブヘッダワードと共に、図3の301において、制御ストリームデータとして、動的に割り当てられたメモリに書き込まれる。
各タイルは、制御ストリームデータに対して使用されるそれ自身の固定サイズのメモリスペースを有する。このスペースのメモリブロックは、タイルベースの3Dコンピュータグラフィックシステムによりオンデマンドで割り当てられる。特定のタイルについて制御ストリームに追加されるべき新たなデータが、割り当てられた現在メモリブロックを越えると、新たなブロック割り当てが要求され、そして古い制御ストリームが、ストリームリンクを使用して新たなブロック割り当てにリンクされる。マクロタイルエンジンが終了信号を経てシーンの終わりを指示する場合には、全てのタイルが処理され、有効領域のタイルに対する制御ストリームが終了ワードで終了となる。
タイルベースの3Dコンピュータグラフィックシステムでは、プリミティブブロックに対する頂点及びインデックスデータは、プリミティブブロックが属するマクロタイルに、又はプリミティブブロックの境界ボックスがマクロタイルに交差するときにはグローバルなマクロタイルリストに、一度書き込まれるだけである。プリミティブブロックが大きなプリミティブを含むときには、制御ストリームデータは、プリミティブが重畳する全てのタイルに何回も書き込まれねばならない。フルスクリーン三角形という極端なケースでは、制御ストリームデータをタイルごとにスクリーンに書き込まねばならない。書き込まれる制御ストリームデータの複数の繰り返しは、メモリ帯域巾の著しい増加を引き起こす。
本発明の実施形態では、単一のタイルベースの表示制御リストに代わってマルチレベル表示制御リストが使用される。マルチレベル表示制御リストの制御ストリームデータは、個々のタイルではなくマクロタイル及びタイルブロックのようなタイルのグループに基づくが、選択されるサブレベルの数は、当業者にとって設計上の選択肢に過ぎない。制御リストは、各タイルグループに対する制御ストリームデータを含み、制御ストリームデータは、表示のために画像をレンダリングするのに使用するため、各タイルグループへとレンダリングされるプリミティブブロックへのリファレンスを含む。制御ストリームデータの規範的構造について以下に説明する。より高い及びより低い複雑さ程度を具現化することができる。
マルチレベル表示制御リスト
本発明の実施形態では、マクロタイルは、画像を16のタイルブロック(TB)へ分割し、タイルブロックにおけるタイルの枚数は、マクロタイルサイズに基づいてレンダリングするために固定される。マクロタイルサイズが16タイルx16タイル(256タイル)であると仮定すれば、マクロタイル400におけるタイルブロック401は、各々、図4に示すように、4タイルx4タイル(16タイル)の同じサイズとなる。マクロタイルのタイルブロックごとに制御ストリームリストが形成される。4つのマクロタイルの場合には、16x4=64の制御ストリームリストがあり、一方、16のマクロタイルの場合には、16x16=256の制御ストリームリストがある。
レンダリングは、依然、タイルごとに行われるが、タイルブロック内のタイルは、同じ制御ストリームリストを共有する。
タイルブロックベースのマルチレベル表示制御リストを使用する主たる利益は、特に、多数のタイルをカバーする大きなプリミティブの場合に、必要な制御データの量を減少し且つメモリ帯域巾を減少することである。他の利益として、次のことが含まれる。
タイルベースの制御ストリームリストは存在せず、それ故、各タイルに書き込むために制御ストリームデータの次の空きアドレスを記憶する必要はない。シーンが終了したときにタイルが空きタイルであるかどうか識別するために、1ビットのタイル使用フラグが各タイルに対して使用される。
又、マクロタイルベースの制御ストリームリストの数に限度があるために、各タイルに対する制御ストリームベースアドレスワードを領域アレイに書き出す必要はない。
制御ストリームデータ構造
マルチレベル表示制御ストリームリストシステムのデータ構造は、3つの主たる部分、即ち図4に示すタイルブロック制御リスト403、制御ポインタ404及びプリミティブ頂点マスク405で構成される。
タイルブロック制御リスト403は、タイルブロック(TB0、TB1、・・・TB15)ベースで設けられる。図4の403のように、マクロタイル構造には16個のタイルブロック制御リストがある。各タイルブロック制御リストは、マクロタイルの割り当てられたメモリスペースに、それ自身のメモリスペースが割り当てられている。
図4の制御ポインタ404及びプリミティブマスクデータ405は、マクロタイルごとに設けられる。これらは、マクロタイルの割り当てられたメモリに個別のメモリスペースを有する。
タイルブロック制御リスト
マルチレベル表示制御リストシステムでは、制御ストリームリストが、タイルブロック(TBO、等)ベースで設けられる。図5の500のようにマクロタイルのタイルブロックごとにタイルブロック制御リストがある。タイルブロック制御リストは、そのタイルブロックにより参照される各プリミティブブロックへのリファレンスを含む。
タイルブロック制御リストは、タイルブロックの全タイル間に共有されるので、制御リストにおいて参照されたプリミティブブロックだけが、タイルブロック内の幾つかのタイルに対して有効となる。本発明のこの実施形態に使用されるデータ構造は、画像をレンダリングするときにプリミティブブロックをできるだけ早く処理する必要のないタイルをスキップするために近道を使用するよう設計される。プリミティブブロックを処理する必要のないタイルについては、本発明の実施形態は、最小のデータ量でプリミティブブロックを処理するための全ての情報を得る。
タイルブロック制御ワード
プリミティブブロックの頂点データに対するアドレスポインタは、マクロタイルリスト404ごとに書き込まれるので、それらは、マクロタイル内の全タイルブロックによって共有される。特定のタイルブロックでは、マクロタイルの全てのプリミティブブロックがタイルブロックにおいて参照されるのではない。タイルブロックに必要とされないプリミティブブロックをスキップできるのが効率的である。
図5のタイルブロック制御ワード503は、マルチレベル表示制御リストストリームのトップレベル制御ワードである。これは、テーブル1に示す2ビットエンコーディングを有し、そして主として、そのタイルブロックに対してプリミティブブロックを処理すべきかどうか決定するのに使用される。
Figure 0005579193
テーブル1:タイルブロック制御ワード
それ故、テーブル1に示すように、2ビットのタイルブロック制御ワードにより定義された4つの考えられるオペレーションがある。
1つのプリミティブブロックをスキップする
プリミティブブロックがタイルブロックにおいてタイルをカバーするためにプリミティブをもたないときには、プリミティブブロックは、処理されずにスキップされる。
有効なプリミティブブロック
プリミティブブロックのプリミティブがタイルブロックのタイルをカバーするときは、プリミティブブロックをスキップすることができない。タイルブロック内のタイルについてプリミティブブロックを処理するためにはマルチレベル表示制御リストに更なる情報が必要とされる。
スキップカウントでスキップ
これは、タイルブロックが多数のプリミティブブロックを連続的にスキップできるとき、即ちこれらのプリミティブブロックがタイルに対して処理される必要がないときに使用される近道である。
この実施形態では、5のスキップカウントオフセットがある。スキップカウントが5未満である場合には、「1つのプリミティブブロックをスキップする」エンコーディングが繰り返し使用される。スキップカウントが5以上であるときには、「スキップカウントでスキップ」が使用される。8ビットスキップカウントの場合、最大スキップカウントは、255+5=260である。スキップカウントが260より大きいときには、2つ以上のスキップエンコーディングが必要になる。
終了
終了は、タイルブロックに対してマルチレベル表示制御リストが終了されることを指示する。
タイルブロックフォーマットワード
タイルブロック制御リストにおける図5のタイルブロックフォーマットワード504は、タイルブロック制御ワードの各有効プリミティブブロックエンコーディング(テーブル1の値1)の後に使用される。これは、処理されているタイルに対してプリミティブブロックが有効であるかどうか識別するために使用される。タイルブロックフォーマットワードの2ビットエンコーディングは、次の通りである。
Figure 0005579193
テーブル2:タイルブロックフォーマットワード
テーブル2に示すように、タイルブロックフォーマットワードの2ビットにより定義された4つの考えられるオペレーションがある。
タイルマスク存在
プリミティブブロックがタイルブロック内の各タイルをカバーするためにプリミティブをもたないとき、即ちあるタイルがプリミティブブロックのプリミティブによって重畳されないとき、タイル有効タイルマスク当たり1ビットを使用して、プリミティブブロックが処理される必要のないタイルをスキップする。タイルマスクに対する合計ビット数は、タイルブロックにおけるタイル数に等しい。
全タイル有効
プリミティブブロックがマクロタイル又はタイルブロックにおいて各タイルをカバーするためのプリミティブを有するときには、タイルブロックの全タイルに対してプリミティブブロックが有効である。この場合には、タイルマスクが不要である。
1つのタイルのみ有効
プリミティブブロックがマクロタイルの1つのタイル又はタイルブロックの1つのタイルしかカバーしないときには、タイルブロックの有効タイルに対するタイルインデックスX及びYを使用して、必要なデータ量を減少する。このケースでは、タイルマスクが不要である。
8x8のタイルを伴うタイルブロックでは、各タイルが有効であるかどうか指示するのに64ビットマスクが必要である。タイルブロック内の唯一の有効タイルのインデックスX及びYに対して4ビットが使用される場合には、8ビットしか必要とされない。
全タイル無効
プリミティブブロックがマクロタイル又はタイルブロックのタイルをカバーするためのプリミティブをもたないときには、タイルブロックのタイルに対してプリミティブブロックが無効となる。このケースでは、タイルマスクが不要である。このケースは、サブレベルタイルブロックに対するタイルブロックフォーマットワードでのみ生じる。
タイルブロックフォーマットワードが処理された後に、現在プリミティブブロックを、図5の505において処理されたタイルに対して有効又は無効として識別することができる。
フルプリミティブマスクフラグ存在
図5のフルプリミティブマスクフラグ存在506は、プリミティブブロックにおいてフルプリミティブマスクフラグが存在するかどうか指示するために現在タイルに対して有効なプリミティブブロックのための1ビットフラグである。
プリミティブブロックの全プリミティブがタイルにおいて見えるときには、フルプリミティブマスクと称される。プリミティブブロックの各プリミティブ及び頂点に対して個々のビットマスクではなく、フルプリミティブマスクに対して1ビットフラグが必要とされるに過ぎない。
フルプリミティブマスクフラグ
図5のフルプリミティブマスクフラグ存在506の1ビットフラグがセットされた場合には、各タイルがフルプリミティブマスクを有するかどうか指示するためにタイルブロックの各タイルに対し図5のタイル当たり1ビットのフルプリミティブマスクフラグ507をセットさせる。フルプリミティブマスクフラグの合計ビット数は、タイルブロックにおけるタイル数に等しい。
フルプリミティブマスクがない場合には、頂点マスクがプリミティブマスクにより連結され、そしてバイト整列される。最大16個の頂点及び32個のプリミティブを伴うプリミティブブロックの場合に、頂点マスクは、最大2バイトであり、そしてプリミティブマスクは、4バイトである。プリミティブ及び頂点マスクのサイズは、タイルブロックに対して同じに保たれる。プリミティブ及び頂点マスクデータは、図5のようにマクロタイル当たりプリミティブマスクデータストリーム502に書き込まれる。
フルプリミティブマスクフラグを伴うタイルを有するタイルブロックでは、フルプリミティブマスクフラグを使用すると、プリミティブブロックにおいて有効プリミティブ及び頂点に対する情報を得るための時間及びメモリスペースを節約する。処理されたタイルに対してプリミティブブロックが無効である場合には、これらのフラグをスキップすることができる。
プリミティブマスクフォーマットワード
タイルブロック制御リストにおける図5の2ビットのプリミティブマスクフォーマットワード508は、図5のフルプリミティブマスクフラグ存在506の1ビットフラグがセットされないとき、即ちフルプリミティブマスクフラグがないときに、存在する。
Figure 0005579193
テーブル3:プリミティブマスクフォーマットワード
テーブル3と同様に、プリミティブマスクフォーマットワードは、タイルブロックのプリミティブマスクフォーマットに対して4つの特殊なケースを含む。
プリミティブマスクが存在するタイルブロック内の全てのタイル
これは、プリミティブマスクが存在するプリミティブブロックによりカバーされたタイルブロック内の全てのタイルを指示する。即ち、フルプリミティブマスクを有するタイルはなく、プリミティブマスクは、タイルブロック内で同じではない。このケースでは、プリミティブ及び頂点マスクは、図5のプリミティブマスクデータストリームから読み取られる。
フルプリミティブマスクを伴うタイルブロック内の全てのタイル
これは、プリミティブブロックによりカバーされたタイルブロック内の全てのタイルがフルプリミティブマスクを有することを指示する。図5のタイル当たり1ビットのフルプリミティブマスクフラグ507は必要とされない。
マクロタイル内の同じプリミティブマスク
これは、プリミティブブロックによりカバーされるマクロタイル内の全てのタイルが同じプリミティブマスクを有し、そして共通のプリミティブマスク及び頂点マスクの合計ビットが24ビット以下であることを指示する。
プリミティブ及び頂点マスクデータは、個別の4KBメモリページ内の各マクロタイルについて図5のデータストリーム502に書き込まれる。プリミティブ及び頂点マスクデータストリームのスタートアドレスは、図5の制御ポインタ501にプリミティブマスクポインタワードとして記憶される。アドレスポインタワード「プリミティブマスクポインタワード」には4KB整列アドレスのために3バイトの空きビットがある。
このケースでは、マクロタイルに対する共通のプリミティブマスク及び頂点マスクは、24ビット以下であり、それらは、現在制御ポインタにおけるプリミティブマスクポインタワードのLSB3バイトに書き込むことができる。
タイルブロック内の同じプリミティブマスク
これは、プリミティブブロックによりカバーされたタイルブロック内の全てのタイルが同じプリミティブマスクを有するか、又はその同じプリミティブマスクをマクロタイル内に有するが、共通のプリミティブマスク及び頂点マスクの合計ビットが24ビットを越えることを指示する。
このケースでは、共通の頂点マスクは、プリミティブマスクによって連結され、そしてその両方が、プリミティブ及び頂点マスクのバイト数に対する先導する3ビットと共に、タイルブロック制御リストに書き込まれる。
処理されているタイル内のプリミティブマスクの形式は、図5のフルプリミティブマスクフラグ507又はプリミティブマスクフォーマットワード508のようなプロセスの後に定義することができる。
処理されたタイルは、フルプリミティブマスクフラグ507が処理されたがタイルがフルプリミティブマスクにないとき、又はプリミティブマスクフォーマットワード508が0(プリミティブブロックマスクが存在するタイルブロック内の全てのタイル)にセットされたときは、プリミティブ及び頂点マスク存在を有する。これら2つのケースでは、タイルに対するプリミティブ及び頂点マスクを、図5のプリミティブマスクデータストリーム502から読み取る必要がある。
他の全てのケースでは、プリミティブ及び頂点マスクは、マクロタイル/タイルブロックにおけるフルマスク又は同じマスクのいずれかであるから、既知である。
タイルブロックプリミティブマスクオフセット存在
マクロタイル内の各タイルのプリミティブ及び頂点マスクは、図5のプリミティブマスクデータストリーム502に書き込まれる。マクロタイルのプリミティブ及び頂点マスクデータのスタートアドレスは、図5の制御ポインタ501によりプリミティブマスクポインタワードとして定義される。
プリミティブ及び頂点データは、タイルごとにバイト整列され、そしてタイルブロックごとに32ビット整列される。プリミティブ及び頂点マスクデータがプリミティブマスクデータストリームのスタートに書き込まれないタイルブロックについては、データストリームからタイルブロックに対するプリミティブ及び頂点マスクデータのスタートへプリミティブマスクオフセットを得ることが必要である。プリミティブ及び頂点マスクデータはタイルブロック内のタイルごとに同じサイズであるから、タイルブロックのプリミティブマスクオフセットに関連してタイルインデックスを使用して、タイルに対するマスクデータを読み戻すことができる。
タイルブロックのプリミティブマスクデータがマクロタイルのプリミティブマスクデータストリームのスタートにないときにはタイルブロックのプリミティブマスクオフセットが存在することを指示するために1ビットフラグが使用される。この1ビットフラグは、タイルに対するプリミティブ及び頂点マスクをプリミティブマスクデータストリームから読み取る必要がある2つのケースにおいて必要とされるだけである。
タイルブロックプリミティブマスクオフセット
図5のタイルブロックプリミティブマスクオフセット509は、マクロタイル内のプリミティブブロックのプリミティブマスクデータのスタートアドレスからタイルブロック内のプリミティブマスクデータのスタートアドレスに対する13ビットワードオフセットである。このフィールドは、タイルブロックプリミティブマスクオフセット存在ビットがセットされたときしか存在しない。
プロセスの終わりに、プリミティブブロックに対する図5のタイルブロック制御リスト500から、現在タイルにおいてプリミティブブロックを処理する必要があるかどうか分かる。プリミティブブロックを処理する必要がある場合には、プリミティブ及び頂点マスクは、現在タイルについても分かる。
マクロタイル制御ポインタ
マクロタイルにおいて有効なプリミティブブロックごとに図5のマクロタイル制御ポインタ501には2つの32ビット制御ポインタワードがある。プリミティブブロックが、505において、タイルに対して有効であると決定された場合に、マクロタイル制御ポインタ501を使用して、ブロックからプリミティブデータにアクセスする。
プリミティブブロックポインタワード
プリミティブブロックポインタワードは、主として、プリミティブブロックに対する頂点データストリームのスタートアドレスを記憶するのに使用される。32ビットのプリミティブブロックポインタワードの構造は、テーブル4において明らかである。

Figure 0005579193
テーブル4:プリミティブブロックポインタワード
プリミティブマスクポインタワード
プリミティブマスクポインタワードは、主として、プリミティブブロックのマクロタイルにおけるプリミティブ及び頂点マスクデータストリームのスタートアドレスを記憶するのに使用される。32ビットのプリミティブマスクポインタワードの構造は、テーブル5において明らかである。
Figure 0005579193
テーブル5:プリミティブマスクポインタワード
フィールド2 HT_SAME_PRIM_MASK_IN_MTは、テーブル3のようにプリミティブマスクフォーマットワードが2にセットされたときだけ有効であり、これは、マクロタイルに対する共通のプリミティブマスクがあることを意味する。
制御ポインタは、2つの32ビット/プリミティブブロックに固定されるので、制御ポインタは、タイルブロックにおいて有効でないプリミティブブロックに対してスキップすることができる。
マクロタイルプリミティブマスクデータ
タイル内のプリミティブマスクがマクロタイル又はタイルブロックにおいてフルマスクでも同じマスクでもないときには、プリミティブ及び頂点マスクデータは、図5のマクロタイルプリミティブマスクデータストリーム502へ書き込まれる。
プリミティブマスクデータストリームにおいて、頂点マスクは、タイルのためのプリミティブマスクと連結される。ビット数は、頂点の数と、そのときバイトまで丸められたプリミティブブロックにおけるプリミティブの数との和である。プリミティブ及び頂点マスクデータのサイズは、タイルブロック内で同じに保たれる。
マクロタイルプリミティブマスクデータストリームは、メモリページへ連続的に書き込まれた各タイルブロックからのマクロタイルベースのプリミティブ及び頂点マスクデータである。
タイルブロック内のプリミティブブロックに対するプリミティブ及び頂点マスクデータのスタートアドレスは、32ビット整列される。スタートアドレスは、プリミティブブロックに対する図5の制御ポインタ501によりプリミティブマスクポインタワードとして記憶される。
マクロタイル内のプリミティブブロックのスタートアドレスからのタイルブロックに対するスタートアドレスの32ビットオフセットは、タイルブロックプリミティブマスクオフセット存在ビットがセットされたときに図5の13ビットタイルブロックプリミティブマスクオフセット509としてタイルブロック制御リスト500に記憶される。タイルブロックプリミティブマスクオフセット存在ビットがセットされない場合には、タイルブロック内のプリミティブマスクデータのオフセットが0であることを意味する。プリミティブ及び頂点マスクデータは、タイルブロック内の各タイルに対して同じサイズであるから、タイルインデックスをタイルブロックプリミティブマスクオフセットに関連して使用して、タイルに対するプリミティブ及び頂点マスクデータを読み戻すことができる。
タイルブロック制御リストにおけるタイルブロックサブレベルマスク
マクロタイルは、16個のタイルブロックに分割されるので、タイルブロックにおいて見えないプリミティブブロックは、スキップすることができる。タイルブロック内では、有効なタイルマスクを使用して、プリミティブブロックが処理する必要のないタイルをスキップする。3D処理で読み取られる制御データの量は、更に別のサブレベルブロックが各タイルブロックに導入されたときに減少される。
ここに述べるタイルブロック制御リストは、マルチレベル表示制御リスト構造へと容易に拡張することができる。
タイルブロック制御リストの有効なプリミティブブロックに対して、図5のタイルブロックフォーマットワード504は、1つのタイルブロックフォーマットワードではなく、4つのサブレベルタイルブロックフォーマットワードへ拡張することができる。各サブレベルタイルブロックは、タイルブロックからのタイルの1/4を有する。タイルブロックフォーマットワード504の1から3のように全タイルが有効、全タイルが無効及び1つのタイルだけが有効という特殊なケースに遭遇する確率は、サブレベルタイルブロックに対して高くなる。更に、サブレベルタイルブロックが図5のプリミティブマスクフォーマットワード508に全部フルプリミティブマスク及び同じプリミティブマスクを有する機会も高くなる。それ故、必要とされる制御データの量は、1つのタイルブロックフォーマットワードに比して減少される。
マルチサブレベルを使用して、タイルブロックフォーマットワードに更に含まれるタイルの数を減少することができる。これは、マクロタイルにより多くのタイルを伴う大きなレンダリングサイズについて、特に言えることである。
マルチサンプルアンチエイリアシング(MSAA)をイネーブルして640x480ピクセルをレンダリングする場合に、タイルブロックには6x4=24枚のタイルがある。タイルブロックに1つのサブレベルブロックを追加することにより、サブレベルブロックサイズは、3x2=6枚のタイルとなる。このケースでは、個々のタイルを早期にスキップしてもよく、プリミティブマスクデータの特殊なケースにタイルが得られる機会は、24タイルのタイルブロックではなく、6タイルのサブレベルにおいて高くなる。
Figure 0005579193
テーブル9:マルチレベル表示制御リストタイルブロックサイズ
テーブル9は、ある共通使用のレンダリングサイズに対するタイルブロック内のタイルの数を示す。又、タイルブロック内のサブレベルブロックにおけるタイルの数も示す。
タイルブロック内のタイルの数がX及び/又はY方向に偶数でないケースでは、サブレベルブロックの幾つかが有効なフルタイルマスクをもたないことがある。レンダリングサイズ1024x768、非MSAAのケースでは、タイルブロックサイズが4x3であり、サブレベルサイズが2x2タイルである。タイルブロック内では、下部の2つのサブレベルブロックが2x1のタイルを有し、一方、上部の2つのサブレベルブロックが2x2のタイルを有する。
小さなレンダリングサイズについては、レンダリングサイズ640x480、非MSAAのケースと同様に、サブレベルブロックが不要になることがある。MSAAがイネーブルされる非常に大きなレンダリングサイズでは、テーブル9に示すように、マルチサブレベルブロックが必要になることがある。
ここに提案する本発明の実施形態におけるマルチレベル表示制御リストは、制御ストリームデータの量を著しく、あるケースでは90%も、減少させる。これは、プリミティブブロックが制御ストリームデータに書き込まれるタイルの数が、複数のタイルをカバーするブロックについて減少されるように、次第に大きなタイルグループのマルチレベル構造内で異なるタイルグループについて制御ストリームデータにプリミティブブロックを割り当てることにより達成される。
403:タイルブロック制御リスト
404:制御ポインタ
405:プリミティブ頂点マスク
500:タイルブロック制御リスト
501:制御ポインタ
502:プリミティブマスクデータストリーム
503:タイルブロック制御ワード
504:タイルブロックフォーマットワード
506:フルプリミティブマスクフラグ存在
507:フルプリミティブマスクフラグ
508:プリミティブマスクフォーマットワード
509:タイルブロックプリミティブマスクオフセット存在

Claims (10)

  1. 三次元コンピュータグラフィック画像をレンダリングするための方法において、
    コンピュータが、
    画像を複数の長方形タイルへと細分化する段階と、
    複数レベルの次第に大きくなるタイルグループより成るマルチレベル構造に前記タイルを配列する段階と、
    レンダリングされるべき画像データを、画像をレンダリングするのに必要な画像データを含む複数のプリミティブブロックへと分割する段階と、
    各プリミティブブロックを、それが交差するタイルグループに基づいて前記マルチレベル構造内のタイルグループに指定して、各プリミティブブロックが前記マルチレベル構造内の1つのレベルのグループに指定されるようにする段階と、
    画像をレンダリングするための制御ストリームデータリストを導出する段階であって、タイルの各グループに対する前記制御ストリームデータリストは、そのグループに指定されたプリミティブブロックに対応する前記マルチレベル構造の各レベル内のタイルのそのグループに対してプリミティブブロックへのリファレンスを含むものである段階と、
    前記制御ストリームデータリストを使用して、プリミティブデータを表示のためにタイルグループ内のタイルへとレンダリングする段階と、
    実行することを備えた方法。
  2. 前記制御ストリームデータは、タイルブロック制御ワードを含み、更に、前記コンピュータが、そのタイルブロック制御ワードの状態に対して各タイルブロックのレンダリングの際にプリミティブブロックを処理すべきかどうか決定する段階を更に備えた、請求項1に記載の方法。
  3. 前記制御ストリームデータは、タイルブロック制御フォーマットワードを含み、これは、各プリミティブブロックをタイルブロックに対して処理すべきであると決定した後に、現在処理されているタイルに対してプリミティブブロックを処理すべきかどうか決定するのに使用される、請求項2に記載の方法。
  4. 前記制御ストリームデータは、その制御ストリームデータにフルプリミティブマスクが存在するかどうか決定するためのフルプリミティブマスクフラグ存在ビットを含み、前記フルプリミティブマスクは、タイルブロック内の各タイルに対して、プリミティブブロック内の全てのプリミティブが各タイルにおいて見えるかどうか決定するビットを得るために使用される、請求項3に記載の方法。
  5. 前記制御ストリームデータは、前記フルプリミティブマスクフラグ存在ビットがセットされないときにタイルブロック内のどのタイルがフルプリミティブマスクを有するか決定するのに使用されるプリミティブマスクフォーワードワードを含む、請求項4に記載の方法。
  6. 三次元コンピュータグラフィック画像をレンダリングするための装置において、
    画像を複数の長方形タイルへと細分化する手段と、
    複数レベルの次第に大きくなるタイルグループより成るマルチレベル構造に前記タイルを配列する手段と、
    レンダリングされるべき画像データを、画像をレンダリングするのに必要な画像データを含む複数のプリミティブブロックへと分割する手段と、
    各プリミティブブロックを、それが交差するタイルグループに基づいて前記マルチレベル構造内のタイルグループに指定して、各プリミティブブロックが前記マルチレベル構造内の1つのレベルのグループに指定されるようにする手段と、
    画像をレンダリングするための制御ストリームデータリストを導出する手段であって、各グループに対する前記制御ストリームデータリストは、そのグループに指定されたプリミティブブロックに対応する前記マルチレベル構造の各レベル内のタイルグループに対してプリミティブブロックへのリファレンスを含むものである手段と、
    前記制御ストリームデータリストを使用して、プリミティブデータを表示のためにタイルグループ内のタイルへとレンダリングする手段と、
    を備えた装置。
  7. 前記制御ストリームデータは、タイルブロック制御ワードを含み、更に、前記装置は、そのタイルブロック制御ワードの状態から、各タイルブロックのレンダリングの際にプリミティブブロックを処理すべきかどうか決定する手段を更に備えた、請求項6に記載の装置。
  8. 前記制御ストリームデータは、タイルブロック制御フォーマットワードを含み、このタイルブロック制御フォーマットワードを使用して、各プリミティブをタイルブロックに対して処理する必要があると決定し、タイルブロック内で現在処理されているタイルに対してプリミティブブロックを処理すべきかどうか決定するための手段を更に備えた、請求項7に記載の装置
  9. 前記制御ストリームデータは、フルプリミティブマスクフラグ存在ビットを含み、そしてそのフルプリミティブマスクフラグ存在ビットから、フルプリミティブマスクビットが制御ストリームデータに存在するかどうか決定するための手段と、タイルブロック内の各タイルに対して、フルプリミティブマスクビットをセットして、プリミティブブロック内のフルプリミティブが各タイルにおいて見えるかどうか決定する手段とを備えた、請求項8に記載の装置
  10. 前記制御ストリームデータは、プリミティブマスクフォーワードワードを含み、更に、そのプリミティブマスクフォーワードワードから、前記フルプリミティブマスクフラグ存在ビットがセットされないときにタイルブロック内のどのタイルがフルプリミティブマスクを有するか決定する手段を備えた、請求項9に記載の装置
JP2011541584A 2008-12-19 2009-12-21 タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト Active JP5579193B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0823254.8A GB0823254D0 (en) 2008-12-19 2008-12-19 Multi level display control list in tile based 3D computer graphics system
GB0823254.8 2008-12-19
PCT/GB2009/002932 WO2010070302A2 (en) 2008-12-19 2009-12-21 Multi level display control list in tile based 3d computer graphics system

Publications (2)

Publication Number Publication Date
JP2012513053A JP2012513053A (ja) 2012-06-07
JP5579193B2 true JP5579193B2 (ja) 2014-08-27

Family

ID=40343947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011541584A Active JP5579193B2 (ja) 2008-12-19 2009-12-21 タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト

Country Status (6)

Country Link
US (1) US9336623B2 (ja)
EP (2) EP3236420A1 (ja)
JP (1) JP5579193B2 (ja)
CN (2) CN102292748A (ja)
GB (2) GB0823254D0 (ja)
WO (1) WO2010070302A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2458488C (en) * 2008-03-19 2018-09-12 Imagination Tech Ltd Untransformed display lists in a tile based rendering system
US8692848B2 (en) * 2009-12-17 2014-04-08 Broadcom Corporation Method and system for tile mode renderer with coordinate shader
GB2546020B (en) * 2012-11-02 2017-08-30 Imagination Tech Ltd Method of scheduling discrete productions of geometry
US9336561B2 (en) * 2012-12-19 2016-05-10 Intel Corporation Color buffer caching
GB2517185B (en) * 2013-08-14 2020-03-04 Advanced Risc Mach Ltd Graphics tile compositing control
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
US9569811B2 (en) 2014-06-26 2017-02-14 Qualcomm Incorporated Rendering graphics to overlapping bins
JP6335335B2 (ja) * 2014-06-30 2018-05-30 インテル・コーポレーション タイルベースのレンダリングgpuアーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズム
GR20140100528A (el) * 2014-10-20 2016-06-01 Arm Limited Ενας βασισμενος σε πλακιδια επεξεργαστης γραφικων και μια μεθοδος επεξεργασιας γραφικων σε ενα βασισμενο σε πλακιδια επεξεργαστη
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
KR102454893B1 (ko) 2015-09-30 2022-10-14 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치의 동작 방법
GB2546810B (en) * 2016-02-01 2019-10-16 Imagination Tech Ltd Sparse rendering
US10430990B2 (en) * 2017-09-20 2019-10-01 Intel Corporation Pixel compression mechanism
CN107918665B (zh) * 2017-11-23 2021-12-14 上海模袋网络科技有限公司 一种三维模型的快速渲染及cad信息查询的系统和方法
EP3671650A1 (en) 2018-12-21 2020-06-24 Imagination Technologies Limited Primitive block-based rasterization in graphics processing systems
EP4345732A3 (en) * 2018-12-21 2024-06-05 Imagination Technologies Limited Primitive block generator for graphics processing systems
US11244421B2 (en) 2019-01-29 2022-02-08 Imagination Technologies Limited Memory for storing untransformed primitive blocks
US11972518B2 (en) 2020-01-20 2024-04-30 Advanced Micro Devices, Inc. Hybrid binning
GB2591802B (en) 2020-02-07 2022-03-23 Imagination Tech Ltd Graphics processing method and system for rendering items of geometry based on their size
GB2591803B (en) * 2020-02-07 2022-02-23 Imagination Tech Ltd Graphics processing method and system for rendering items of geometry based on their size
GB2586297B (en) * 2020-02-10 2022-03-02 Imagination Tech Ltd Data structures, methods and tiling engines for storing tiling information in a graphics processing system
CN113256479A (zh) * 2020-02-13 2021-08-13 畅想科技有限公司 用于在图形处理系统中平铺图元的方法和平铺引擎
CN111859589B (zh) * 2020-07-20 2024-05-17 山西潞安环保能源开发股份有限公司 一种适用于整定计算软件的变电站内图元自动布局的方法
CN112214809B (zh) * 2020-10-16 2023-11-17 安徽工程大学 一种图元随机排列方法及装置
US20220198735A1 (en) * 2020-12-21 2022-06-23 Intel Corporation Hierarchical tiling mechanism

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB717781A (en) 1952-03-26 1954-11-03 Henry Edward Billington Improvements in vehicle couplings
CA2026527A1 (en) 1989-10-11 1991-04-12 Douglas A. Fischer Parallel polygon/pixel rendering engine
US5295235A (en) 1992-02-14 1994-03-15 Steve Newman Polygon engine for updating computer graphic display employing compressed bit map data
GB2336983B (en) 1995-01-31 2000-01-19 Videologic Ltd Improvements relating to computer 3D rendering systems
US5867166A (en) 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US5767856A (en) 1995-08-22 1998-06-16 Rendition, Inc. Pixel engine pipeline for a 3D graphics accelerator
US6104417A (en) 1996-09-13 2000-08-15 Silicon Graphics, Inc. Unified memory computer architecture with dynamic graphics memory allocation
US6697063B1 (en) 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
US6084591A (en) 1997-04-29 2000-07-04 Ati Technologies, Inc. Method and apparatus for deferred video rendering
US7102646B1 (en) 1997-11-25 2006-09-05 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6856320B1 (en) 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6362818B1 (en) 1998-01-07 2002-03-26 Evans & Sutherland Computer Corporation System and method for reducing the rendering load for high depth complexity scenes on a computer graphics display
US6611272B1 (en) * 1998-07-02 2003-08-26 Microsoft Corporation Method and apparatus for rasterizing in a hierarchical tile order
GB2343603B (en) 1998-11-06 2003-04-02 Videologic Ltd Shading 3-dimensional computer generated images
US6380935B1 (en) 1999-03-17 2002-04-30 Nvidia Corporation circuit and method for processing render commands in a tile-based graphics system
US7627736B2 (en) * 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
US6801203B1 (en) * 1999-12-22 2004-10-05 Microsoft Corporation Efficient graphics pipeline with a pixel cache and data pre-fetching
WO2001095257A1 (en) * 2000-06-08 2001-12-13 Imagination Technologies Limited Tiling and compression for rendering 3d images
US7405734B2 (en) 2000-07-18 2008-07-29 Silicon Graphics, Inc. Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units
US6738069B2 (en) 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering
US20030123089A1 (en) 2001-12-31 2003-07-03 Doyle Peter L. Graphics state bandwidth reduction for zone rendering
GB2416100B (en) 2002-03-26 2006-04-12 Imagination Tech Ltd 3D computer graphics rendering system
JP4082194B2 (ja) 2002-12-03 2008-04-30 セイコーエプソン株式会社 画像処理方法および画像処理装置ならびに画像処理プログラム
GB0307095D0 (en) 2003-03-27 2003-04-30 Imagination Tech Ltd Improvements to a tiling system for 3d rendered graphics
GB2406184B (en) 2003-09-17 2006-03-15 Advanced Risc Mach Ltd Data processing system
US20050122338A1 (en) * 2003-12-05 2005-06-09 Michael Hong Apparatus and method for rendering graphics primitives using a multi-pass rendering approach
US7652678B2 (en) 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
GB2444863B (en) * 2005-12-05 2008-10-08 Arm Norway As Method of and apparatus for processing graphics
GB2442266B (en) * 2006-09-29 2008-10-22 Imagination Tech Ltd Improvements in memory management for systems for generating 3-dimensional computer images
KR101349171B1 (ko) 2007-01-17 2014-01-09 삼성전자주식회사 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법
GB2452731B (en) 2007-09-12 2010-01-13 Imagination Tech Ltd Methods and systems for generating 3-dimensional computer images
CN101127125A (zh) 2007-09-26 2008-02-20 腾讯科技(深圳)有限公司 一种图像渲染方法及系统

Also Published As

Publication number Publication date
GB2466569A (en) 2010-06-30
EP2380138B1 (en) 2017-06-21
GB2466569B (en) 2012-04-25
US20110292032A1 (en) 2011-12-01
GB0823254D0 (en) 2009-01-28
JP2012513053A (ja) 2012-06-07
WO2010070302A2 (en) 2010-06-24
CN102292748A (zh) 2011-12-21
EP3236420A1 (en) 2017-10-25
GB0922374D0 (en) 2010-02-03
US9336623B2 (en) 2016-05-10
CN105913470A (zh) 2016-08-31
WO2010070302A3 (en) 2011-07-07
EP2380138A2 (en) 2011-10-26

Similar Documents

Publication Publication Date Title
JP5579193B2 (ja) タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト
JP5579741B2 (ja) タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化
US9342311B2 (en) Techniques for adaptively generating bounding boxes
US9697641B2 (en) Alpha-to-coverage using virtual samples
US7315301B1 (en) Computer graphics processing system, computer memory, and method of use with computer graphics processing system utilizing hierarchical image depth buffer
US11393165B2 (en) Method and system for multisample antialiasing
US9734548B2 (en) Caching of adaptively sized cache tiles in a unified L2 cache with surface compression
US5877773A (en) Multi-pass clipping in a geometry accelerator
KR20010085424A (ko) 지연 쉐이딩을 갖는 그래픽 프로세서
US10991146B2 (en) Residency map descriptors
US11379944B2 (en) Techniques for performing accelerated point sampling in a texture processing pipeline

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140213

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140513

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: 20140609

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140708

R150 Certificate of patent or registration of utility model

Ref document number: 5579193

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250