JP2012513630A - タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化 - Google Patents

タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化 Download PDF

Info

Publication number
JP2012513630A
JP2012513630A JP2011541585A JP2011541585A JP2012513630A JP 2012513630 A JP2012513630 A JP 2012513630A JP 2011541585 A JP2011541585 A JP 2011541585A JP 2011541585 A JP2011541585 A JP 2011541585A JP 2012513630 A JP2012513630 A JP 2012513630A
Authority
JP
Japan
Prior art keywords
primitive
control
block
tile
group
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.)
Granted
Application number
JP2011541585A
Other languages
English (en)
Other versions
JP5579741B2 (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 JP2012513630A publication Critical patent/JP2012513630A/ja
Application granted granted Critical
Publication of JP5579741B2 publication Critical patent/JP5579741B2/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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Landscapes

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

Abstract

3次元コンピュータグラフィック画像をレンダリングする方法及び装置が提供される。画像が複数の長方形エリアへと細分化され、画像に見ることのできるプリミティブが複数のプリミティブブロックの各1つに指定される。どのプリミティブブロックが、各長方形エリアに交差するプリミティブを含むか決定される。次いで、長方形エリアが複数の固定サイズグループへとグループ化され、固定サイズグループの各々に対し制御ストリームデータが導出され、その制御ストリームデータは、どのプリミティブブロックが、各固定サイズグループの各長方形エリアをレンダリングするよう要求されたか決定するデータを含む。次いで、制御ストリームデータを使用して、画像を表示のためにレンダリングする。
【選択図】図7

Description

本発明は、三次元コンピュータグラフィックシステム、特に、タイルベースシステムに係り、タイルベースレンダリングの性能を向上させるものである。
技術が急速に発展するにつれて、三次元のコンピュータ作成画像の複雑さも増加した。頂点及び三角形メッシュを使用して人間の動きのような非常に複雑な3D物体のコンピュータモデルを容易に構築することができる。この種の3Dモデルを3Dコンピュータグラフィックシステムへ送り、3Dアニメ画像をコンピュータスクリーン上に作成することができる。コンピュータ作成の3Dアニメ画像は、3Dコンピュータゲーム、ナビゲーションツール、及びコンピュータ支援型エンジニアリングデザインツールに広く使用されている。
3Dコンピュータグラフィックシステムは、益々複雑なグラフィックや益々高速な表示の需要に対処しなければならない。表示モデルの細部が増加するにつれて、益々多くのプリミティブ及び頂点が使用される。又、テクスチャ及びシェーディング技術が進歩するにつれて、益々多くの情報がプリミティブ及び頂点データと一緒にされる。近代的なゲームでは、レンダリングに百万を越えるプリミティブが存在する。従って、メモリ帯域巾は、コンピュータグラフィックシステムの性能に対して非常に大きな要因となる。
タイルベースのレンダリングシステムが良く知られている。これは、画像を複数の長方形ブロック又はタイルへと細分化する。英国特許第GB2343603号及び国際特許出願第WO2004/086309号では、レンダリング表面がnxmのピクセルタイルのサブ表面へと分割される。三角形、線又は点のようなプリミティブのみが、プリミティブに重畳するタイルにおいて処理される。
タイルベースの3Dコンピュータグラフィックシステムにおいてタイル化のために遂行される主たるステップが図1に示されている。
1.図1の101のようなプリミティブ及び頂点の入力データストリーム。三角形ストリップ及び扇形のように、同様の位置におけるプリミティブが時間的に順次に到着する。
2.マクロタイルエンジン(MTE)は、頂点をスクリーンスペースへと変換し、後方を向いているか又は良く知られた方法を使用してクリッピング平面によりクリップされるプリミティブを除去する。次いで、プリミティブは、固定の最大数の頂点及びプリミティブを伴うプリミティブブロックへとグループ化され、そして図1の102のようにメモリへ書き込まれる。頂点及びプリミティブの数は、プリミティブブロックのメモリアドレス(プリミティブブロックポインタ)と共に、タイルエンジンへ送られて、プリミティブによりカバーされるタイルに対する表示リストの制御ストリームに追加される。
プリミティブ及び頂点データをフェッチするときにメモリ帯域巾の影響を最小にするために、プリミティブは、プリミティブブロックへ又はプリミティブブロックの境界ボックスに基づいてマクロタイルへグループ化される。図2において、マクロタイル201は、固定数のタイル202を伴うスクリーン200の長方形エリアである。マクロタイルは、スクリーンサイズの1/4又は1/16であり、これを使用して、プリミティブブロックを局所化し、メモリ帯域巾を減少させる。プリミティブブロックのプリミティブがマクロタイルに交差するときには、それらが、グローバルマクロタイルリストと称される特殊なマクロタイルに書き込まれる。このように、プリミティブブロック内のパラメータデータは、一度しか書き込まれない。マクロタイルからのプリミティブは、マクロタイル内のタイルでなければアクセスできず、一方、グローバルマクロタイルからのプリミティブは、全てのタイルによってアクセスすることができる。
3.図1の103のようなタイルエンジン(TE)。マクロタイルエンジンに書き込まれた(102)プリミティブブロックからの各プリミティブは、プリミティブブロックの境界ボックス内の各タイルに対してチェックされる。プリミティブブロックのプリミティブによりカバーされるタイルの表示リストにプリミティブブロックが追加される。タイルの表示リストに関連した制御ストリームに書き込まれた制御データは、プリミティブブロック内の頂点及びプリミティブの数に対するプリミティブブロックヘッダ、プリミティブブロックが書き込まれるメモリアドレスのプリミティブブロックポインタ、及びタイルにおいて見ることのできるプリミティブに対するプリミティブマスクを含む。
表示リスト内の制御ストリームデータに対して各タイルに個別のメモリスペースが割り当てられる。テールポインタと称されるメモリアドレスポインタが各タイルの制御ストリームデータにおける次の空きアドレスに対して使用される。
タイル内の制御ストリームに対するメモリアクセスを改善するために、小さなキャッシュ即ちテールポインタキャッシュをタイルエンジンに追加することができる。タイル内の制御ストリームの終了のメモリ位置は、テールポインタキャッシュに記憶されてそこから読み取られ、これは、タイルエンジンからの主たるメモリアクセスを減少させる。
4.3D画像処理。タイルベースの3Dコンピュータグラフィックシステムの3D画像処理が、図3の領域アレイ300からのスクリーンのタイルごとに遂行される。これは、図3の各タイル301の制御ストリームを通して進み、図3の制御データ302においてプリミティブブロックポインタで指されたメモリアドレスから頂点及びプリミティブデータを読み取る。隠れた表面の除去、テクスチャ化及びシェーディングのような画像処理オペレーションは、プリミティブブロックからのタイルにおいて有効な全てのプリミティブに対して遂行される。
タイルベースのレンダリングの一例が図8に示されている。スクリーンの一部分であるマクロタイルMT0 800は、16枚のタイル801を内部に有する。2つの三角形ストリップ802、803及び大きな三角形804は、マクロタイルエンジンMTE805によって処理され、MT0のスクリーンの一部分へ投影される。3つのプリミティブブロックに関連した頂点及びプリミティブデータは、それら自身のメモリアドレスでメモリ807に書き込まれる。次いで、3つのプリミティブブロックのメモリアドレスポインタがタイル処理のためにタイルエンジンTE806へ通される。全てのタイルがタイルエンジンによって横断されて、プリミティブがタイルの内部にあるかどうか判断すると共に、タイル内に見えるプリミティブブロックに関連した制御ストリームデータがタイル表示リストのためにメモリに書き込まれる。この例では、T4における表示制御ストリームは、3つのプリミティブブロックのアドレスポインタに対する制御データと、プリミティブブロック802、804内の三角形の三角形可視マスクとを含む。例えば、プリミティブブロック802の左から最初の3つの三角形及びプリミティブブロック804からの大きな三角形は、T4において見ることができる。タイルT10では、制御ストリームデータは、プリミティブブロック803及び804からの情報のみで構成される。そうする間に、プリミティブブロック803に関連した頂点データのアドレスポインタのような制御データは、タイルT10、T11、T14及びT15のための制御ストリームに挿入され、一方、プリミティブブロック804に関連した制御データは、マクロタイルMT0のタイルごとに制御ストリームへ挿入される。
3Dレンダリング処理808では、全てのタイルが図3の300のような領域アレイの順序で1つづつ処理される。3D処理における各タイルに対して、タイル制御ストリームからの制御データが、図3の301のように、最初にメモリから読み取られる。タイル制御データにおけるプリミティブブロックに関連した頂点及びプリミティブデータは、図3の302のようにメモリから読み取られ、それ故、タイルに対して見える全ての三角形が処理されてスクリーンにレンダリングされる。
タイルベースのコンピュータグラフィックシステムでは、レンダリングがタイルごとに遂行される。タイルベースレンダリングの大きな利点は、グラフィックシステムの内部記憶及びメモリ帯域巾の必要性を著しく減少することである。
タイルベースレンダリングの欠点は、各タイルの表示リストに対して制御データの増加が必要とされることである。三角形がカバーする全てのタイルに対して表示制御データを書き込むことが必要である。多数のタイルをカバーする大きな三角形では、書き込まれる制御データの合計量が顕著なものとなる。
例えば、スクリーンサイズ1920x1080のレンダリングは、16x16ピクセルの8160個のタイルへと分割することができる。全スクリーンをカバーする大きな三角形を全てのタイルの表示リストに追加しなければならない。制御データとして32ビットワードが2つ必要とされる場合には、合計制御ストリームデータは、単一のフルスクリーン三角形に対してほぼ64KBとなる。この場合に必要となる多量の制御データは、タイルベースの3Dコンピュータグラフィックシステムのレンダリングの性能に大きな影響を及ぼす。
英国特許出願第0717781.9号に開示されたシステムは、タイルエンジンの性能を改善するために2つのタイルを同時に処理する。2つの隣接タイルからの制御ストリームデータが単一の表示リストへと合成され、これは、前記例からほぼ32KBの合計制御ストリームデータを与える。制御ストリームデータのサイズは、この場合に約半分のサイズであるが、三角形に対する制御データは、依然、顕著な量である。
本発明の好ましい実施形態は、タイルベースの3Dコンピュータグラフィックシステムにおいて表示リスト制御ストリームをグループ化する方法及び装置を提供する。
タイルベースのレンダリングシステムでは、複数のタイルをカバーする三角形は、リファレンスを配さねばならないタイルごとにメモリ及び帯域巾を消費する。本発明の実施形態の表示リスト制御ストリームグループ化方法は、タイルベース表示リストをタイルグループへと編成して、制御ストリームデータが個々のタイルではなくグループに適用されるような単一表示リスト制御ストリームを形成する。タイルにおいてブロック内の制御ストリームデータが参照されない場合には、タイルにおいて全制御データブロックをスキップすることができる。必要とされる制御ストリームデータの量は、タイルグループベースの表示リスト制御ストリームによって減少される。又、この実施形態は、制御ストリームデータの処理効率を高めるために制御ポインタアレイを導入する。表示リスト制御ストリームを最適化することにより、この方法は、内部パラメータメモリ帯域幅を減少し、それ故、タイルベースの3Dグラフィックシステムの性能を改善する。
タイルベースの3Dコンピュータグラフィックシステムにおいてタイル化を遂行するための主たるステップの概略を示す。 タイルベースの3Dコンピュータグラフィックシステムに使用されるスクリーン上のマクロタイルを示す。 タイルベースレンダリングにおける表示リスト制御ストリームグループ化の概略を示す。 マクロタイルにおける表示リスト制御ストリームグループ化のためのデータ構造の概略を示す。 表示リスト制御ストリームグループ化における制御データブロックグループのデータ構造を示す。 表示リスト制御ストリームグループ化において制御データブロックにわたって書き込まれた制御ストリームデータを示す。 表示リスト制御ストリームグループ化における制御ストリームデータのためのデータ構造の概略を示す。 タイルベースレンダリングプロセスの一例を示す。
上述したタイルベースの3Dコンピュータグラフィックシステムにおいて、タイルエンジンは、マクロタイルエンジンからプリミティブブロックを取り出し、そしてプリミティブをレンダリングするのに必要な最小タイル枚数を計算する。次いで、タイルの最小リストが処理され、そしてプリミティブブロックデータのアドレスに対するプリミティブブロックポインタが、タイルに存在するプリミティブを記述するプリミティブヘッダワードと共に、図3に示す301において、制御ストリームデータとして、動的に割り当てられたメモリに書き込まれる。
各タイルは、制御ストリームデータに対して使用されるそれ自身の固定サイズのメモリスペースを有する。メモリブロックは、タイルベースの3Dコンピュータグラフィックシステムによりオンデマンドで割り当てられる。特定のタイルについて制御ストリームに追加されるべき新たなデータが、割り当てられた現在メモリブロックを越えると、新たな割り当てが要求され、そして古い制御ストリームが、ストリームリンクを使用して新たな割り当てにリンクされる。マクロタイルエンジンが終了信号を経てシーンの終わりを指示する場合には、全てのタイルが処理され、有効領域のタイルに対する制御ストリームが終了ワードで終了となる。
タイルベースの3Dコンピュータグラフィックシステムでは、プリミティブブロックに対する頂点及びインデックスデータは、プリミティブブロックが属するマクロタイルに、又はプリミティブブロックの境界ボックスがマクロタイルに交差するときはグローバルなマクロタイルリストに、一度書き込まれるだけである。しかし、大きなプリミティブを含むプリミティブブロックの場合には、制御ストリームデータが、プリミティブが重畳する全てのタイルに何回も書き込まれねばならない。フルスクリーン三角形という極端な場合には、制御ストリームデータをスクリーン上の各タイルに書き込まねばならない。制御ストリームデータの書き込みを繰り返すと、メモリ帯域巾の増加を引き起こす。
本発明の好ましい実施形態では、タイルベースの表示リストからの制御ストリームは、タイル表示リスト当たり1つの制御ストリームではなく、タイルのグループに対して制御ストリームへと最適化される。
制御ストリームグループ化における制御ストリーム
制御ストリームグループ化の実施形態では、マクロタイル400におけるタイルが、例えば、図4の401の2x2タイルのような固定数のタイルを伴うタイルグループへと分割される。図3の300の領域アレイ、並びに図3の301及び図4の402の制御ストリームは、全て、タイルではなく、タイルグループをベースとする。レンダリングは、依然、タイルごとに行われるが、タイルグループ内のタイルは、同じ領域ヘッダワード及び制御ストリームリストを共有する。
パラメータストリーム構造をベースとする制御ストリームグループ化の利益は、次の通りである。
制御ストリームリストは、タイルグループをベースとするものであるから、制御ストリームリストの数は、例えば、必要なタイルベース制御ストリームリストの数の約1/4に減少される。テールポインタの数についても、同じ減少が達成される。
タイルグループの制御ストリームに対してメモリに割り当てられた各制御データブロックの出発アドレスは、図7の701において制御ポインタアレイに記憶され、リンクポインタは要求されない。制御データは、制御データブロックを交差するように書き込むことが許される。
制御データブロックの制御データがタイルにおいて参照されないときには、図1の3D処理104において全制御データブロックをスキップすることができる。
領域ヘッダワードは、タイル当たり2つの32ビットではなく、タイルグループ当たり2つの32ビットへ減少される。即ち、2x2タイルのグループ化について領域アレイメモリスペースの75%減少である。
マイクロタイルパラメータストリームデータの3つのエンティティ、即ち領域アレイ、制御ストリーム、及び頂点/インデックスブロックのうち、領域アレイ及び制御ストリームのデータ構造は、ここに提案する制御ストリームグループ化方法において異なる。しかしながら、頂点/インデックスブロックデータは、制御ストリームグループ化において変化がない。
本発明の一実施形態により制御ストリームデータを変更する仕方を、一例として以下に説明する。
領域アレイ
領域アレイは、各タイルの制御ストリームのスタートを記録する。このアレイは、領域ヘッダワード及びそれに続く制御ベースアドレスワードより各々成る領域定義の隣接セットである。
ここに提案する制御ストリームグループ化方法の領域アレイは、個々のタイルではなくて、例えば、2x2タイルのタイルグループをベースとしている。これは、次のデータを記憶する。
Figure 2012513630
領域ヘッダ
領域ヘッダワードは、各々8ビットのタイルグループ内の全タイルに対する情報を有する。レンダリングを終了すると、図1のタイルエンジン103は、スクリーン上の全てのタイルを通過して、各タイルに対する8ビット領域ヘッダワードをセットアップし、次いで、タイルグループ内の領域ヘッダワードをタイルグループに対する領域ヘッダワードへと合成する。ビットの機能の説明は、2x2タイルを伴うタイルグループについて以下に示す。ビット31、23、15及び7は、未使用である。
領域ヘッダワード
Figure 2012513630
レンダリング開始領域位置
タイルグループに対して領域ヘッダワードに与えられるタイル位置X、Yはない。レンダリングのための開始タイル位置及び開始マクロタイルは、個別のレジスタに定義される。通常、この位置は、レンダリングされるべき画像の隅である。図1の3D処理104は、レジスタに定義されたタイル位置から3Dレンダリングを開始する。3D領域ベースアドレスから上述した2つの領域ヘッダワードを読み取り、次いで、タイルグループ内の各タイルをレンダリングする。
次の領域位置
図1の3D処理ステップ104は、所定のタイル順序を使用して、タイルのレンダリングを終了した後に、次のタイル位置X及びYを自動的に計算する。
タイルグループを使用する本発明の実施形態では、グループ内の2x2個のタイルは、各々、同じ制御ストリームベースアドレスを共有する。各タイルは、領域ヘッダワードからのそれ自身の8ビット領域情報を有する。マクロタイルのサイズは、タイルグループのサイズに整列されるので、タイルグループのタイルは、常に、スキャン順序でレンダリングされる。次のタイルが同じタイルグループ内にある場合には、次のタイル位置は、2x2タイルグループに対して、X又はYのいずれかの方向或いは両方向に、タイルグループ開始タイル位置+1である。
タイルグループ内の全てのタイルについてレンダリングを終了した後、次の2つの32ビットが、次のタイルグループに対する領域ヘッダワード及び制御ベースアドレスワードとして領域アレイから読み取られる。
次のタイルグループの位置は、レジスタに予め定義することのできるマクロタイルサイズ及びマクロタイルモードを使用して計算される。タイルグループにおけるタイルの数は固定であり、例えば、2x2個のタイルである。タイルグループは、マクロタイル内のスキャン順序でレンダリングされる。マクロタイルは、垂直線の順序でレンダリングされるのが好ましい。それ故、次のタイルグループの位置は、3D処理において自動的に計算することができる。
制御ベースアドレス
これは、領域アレイに記憶される他のデータであり、タイルグループにより参照される制御ストリームの開始を指すポインタである。制御ストリームのベースアドレスは、常に、図1の103及び図1の3D処理104においてタイルエンジンTEにより発生されたときに整列される128ビットである。制御ベースワードは、タイルグループ内の最初のタイルについて読み取られ、タイルグループの全タイルにより共有される。
タイルグループに対する制御ストリームデータは、そのタイルグループに割り当てられた固定サイズのメモリブロック、例えば、図示された16個の32ビット制御データブロック302へ書き込まれる。
制御ベースアドレスワードに含まれた4ビットフィールドCONTROL_BLOCK_TILE_VALIDがあり、これは、制御データブロックからの制御ストリームデータがタイルグループ内のタイルにより参照されるかどうか指示する。ビット28は、タイルグループのタイル(0、0)に対するものであり、ビット29は、タイル(1、0)に対するものであり、ビット30は、タイル(0、1)に対するものであり、そしてビット31は、タイル(1、1)に対するものである。フィールドCONTROL_BLOCK_TILE_VALIDのビットがタイルに対してセットされない場合には、タイルの3D処理において制御データブロックをスキップすることができる。しかし、CONTROL_BLOCK_LASTがセットされた最後の制御データブロックであるか、又は制御データブロックが制御ポインタアレイを含む場合には、制御データブロックをスキップすることができない。
制御データブロックのスキップの後、図1の3D処理104は、次の有効な制御データブロックからのタイルを処理し続ける。32ビットオフセットPRIME_BLOCK_OFFSETは、スキップ後に、制御データブロックから最初のプリミティブブロックヘッダワードを検索するのに使用される。制御ベースアドレスワードの構造は、2x2個のタイルを伴うタイルグループについて以下に示す。
制御ベースアドレスワード
Figure 2012513630
制御ストリーム
3D表示リスト制御ストリームは、図3の302及び図4の402に示すように、オブジェクトに依存する量のデータが各々後に続く一連のブロックヘッダより成る。制御ストリームの種々の要素について以下に述べる。
ブロックヘッダ
各プリミティブブロックヘッダにおける上位2ビットであるビット31及び30は、プリミティブブロックヘッダ形式のために予約され、プリミティブブロックに対して01であり、そして制御ストリーム終了に対して11である。図4の制御ストリームデータ402がタイルグループにおいて処理されるときに、各ブロックヘッダワードの2つのビット31及び30は、そのブロックヘッダワードがプリミティブブロックヘッダワードであるか制御ストリーム終了ワードであるか判断するために最初に分析される。プリミティブブロックヘッダワードである場合には、プリミティブブロックポインタワード及びプリミティブマスクワードのような余分なヘッダワードがプリミティブブロックヘッダワードの後に存在してもよい。
プリミティブブロック
プリミティブブロックは、図3の303においてタイルグループに対するプリミティブデータのブロックを定義する。データは、インデックス/頂点データと、ブロックのプリミティブに関連した潜在的な状態とを含む。各プリミティブブロックの制御ストリーム、及びタイルグループリファレンスに、ヘッダワードがある。ヘッダワードは、プリミティブブロックヘッダワード、プリミティブブロックポインタワード及びプリミティブマスクワードを含む。
プリミティブブロックが設けられたプリミティブマスクワードは、タイルグループの各タイル内で現在ブロックのどのプリミティブ及び頂点が参照されるか定義するのに使用される。例えば、プリミティブブロックに32までのプリミティブがある場合には、プリミティブ当たりのビットで、32ビットプリミティブマスクが要求される。しかしながら、プリミティブブロックは、16までの頂点しか含まず、それらの全てが特定のタイルに使用されるのではない。それ故、ブロック内のプリミティブにより参照される頂点を定義するために、頂点当たりのビットで、16ビット頂点マスクが要求される。
プリミティブマスクワードは、任意であり、プリミティブブロックの全プリミティブをタイルグループの全タイルにおいて参照すべき場合には存在しない。この場合に、プリミティブマスク及び頂点マスクは、完全にセットされると仮定され、即ち、タイルグループ内の各タイルは、このブロック内の全てのプリミティブを参照し、そしてそれらプリミティブは、プリミティブブロック内の全ての頂点を参照する。
プリミティブマスクワードの合計数は、タイルグループ内のタイルのプリミティブマスクフォーマットに基づいてプリミティブブロック間で変化する。その一例を以下に示す。
Figure 2012513630
プリミティブブロックヘッダ
プリミティブブロックヘッダワードは、プリミティブブロック内の頂点数に関する情報を表す32ビットを含む。又、2x2タイルの各々に対するプリミティブマスクフォーマットも含む。この構造は、各ビットにより表される種々の制御機能から次の通りである。
Figure 2012513630

Figure 2012513630

Figure 2012513630
プリミティブブロックポインタ
これは、プリミティブブロックヘッダ後の別の32ビットワードである。
Figure 2012513630
制御ポインタアレイ
タイルグループの表示リスト制御ストリームにおけるデータは、内部に割り当てられた固定サイズのメモリブロック、例えば、16個の32ビットメモリブロックに書き込まれる。これらの制御データブロックは、隣接メモリアドレスにないので、次の制御データブロック302における制御ストリームデータを処理するために、次の制御データブロックの開始アドレスを何らかの方法で得なければならない。通常、リンクされた制御データブロックのためのアドレスポインタを現在制御データブロックの終わりに挿入することができる。このように、3D処理は、次の制御データブロックの開始アドレスを得るために全制御データブロックが処理されるまで待機しなければならない。タイルグループのタイルについて、制御データブロックにおける制御ストリームデータをスキップできるときに、次の制御データブロックに対するリンクアドレスを得るだけのために制御データブロックを処理するのはあまり効率的でない。
ここに提案する表示リスト制御ストリームのグループ化方法では、制御ポインタアレイは、3D処理で連続的に処理されるタイルグループに対して制御ストリームを発生できるように制御データブロックに使用される。
制御ストリームのグループ化では、図5に示す500において、制御データブロックが8個の制御ブロックのグループに編成される。グループの最初の制御ブロックは、図5の501において、制御ポインタアレイに対して予約された最初の8個の32ビットを有する。制御ポインタの各々は、領域ヘッダにおける制御ベースアドレスワードと同じフォーマットを有し、図5の502において、8のグループにおける制御データブロックの開始アドレスを指す。
最初の制御ブロックグループ内の最初の制御データブロックの開始アドレスは、領域ヘッダワード「制御ベースアドレスワード」からである。制御ポインタアレイにおける8番目の制御ポインタは、次の制御ブロックグループの開始アドレスを指す。
全ての制御データブロックの開始アドレスは、制御ブロックにおける制御ポインタアレイに保持されるので、リンクポインタの必要はない。3D処理では、最初の制御ブロックからの制御ポインタが最初に読み取られ、それら制御ポインタを使用して、制御データブロックグループにおける制御データブロックの開始アドレスを得る。3D処理は、次の制御データブロックのアドレスを得るために制御データブロックの終わりまで待機する必要がない。これは、制御ブロックグループの制御ブロックを処理し続ける。このスキームは、制御ストリームのグループ化方法において3D処理の性能を高める。
あるプリミティブブロックでは、タイルグループ内の全てのタイルがプリミティブブロック内のプリミティブによってカバーされるのではない。プリミティブブロックでカバーされないタイルについては、タイルグループ制御ストリームの制御データを3D処理によりスキップしなければならない。
制御ポインタアレイを使用する別の利点は、CONTROL_BLOCK_TILE_VALIDのビットがタイルに対してセットされない場合に制御データブロックをスキップできることである。これは、制御データブロックの制御データがタイルによって参照されないことを意味する。3D処理は、タイルグループ内のタイルに対して全制御データブロックがスキップされたときでも、制御ブロックグループの制御データブロックを処理し続ける。タイルにおいて参照されない制御データブロックをスキップできることから、連続的にスキップされるプリミティブブロックの数が制限される。
制御データブロックは、それがCONTROL_BLOCK_LASTがセットされた最後の制御データブロックであるか又はそれが制御ポインタアレイを含む場合には、スキップすることができない。
制御データブロックが割り当てられると、制御データブロックの開始アドレスがタイルグループに対して記憶される。最初のプリミティブブロックヘッダの32ビットオフセットPRIM_BLOCK_OFFSETも記憶される。CONTROL_BLOCK_TILE_VALID及びCONTROL_BLOCK_LASTのフィールドを埋めるために、制御データブロックが終了したときに制御ポインタワードを書き込まねばならない。即ち、新たな制御データブロックが割り当てられたときに手前の制御ポインタワードを書き込む。最後の制御ポインタワードは、CONTROL_BLOCK_LASTビットがセットされてレンダリングを終了する際に書き込まれる。
制御ストリームデータブロック
プリミティブブロックのデータサイズは、任意のプリミティブマスクワードにより変化する。制御ストリームメモリ使用の効率を改善するために、プリミティブブロックに対する制御ストリームデータは、16個の32ビット制御データブロック2つにわたって書きこむことが許される。
図6は、3つの制御ストリームワード、即ちプリミティブブロックヘッダ、プリミティブブロックポインタ、及び1つのプリミティブマスクワードを有するプリミティブブロックの一例を示す。図6の現在データブロック601には2つの32ビット空きスペースがあり、従って、プリミティブマスクワードは、図6の602として、次の制御データブロックの開始に書き込まれる。
プリミティブマスク及び頂点マスク
プリミティブブロックは、固定数のプリミティブ及び頂点を含み、例えば、32個までのプリミティブ及び16個の頂点を含む。タイルグループのタイルにおいて全てのプリミティブが見えるのではないから、タイルグループの各タイルにおいて参照されたプリミティブ及び頂点を指示するためにプリミティブマスク及び頂点マスクが使用される。
ここに提案する制御ストリームグループ化方法では、タイルグループにおける2x2個のタイルの各々がプリミティブブロックヘッダワードにそれ自身のプリミティブマスクフォーマットを有する。2ビットのプリミティブマスクフォーマットワードのフォーマットは、次の通りである。
タイル無効
これは、タイルにおいて参照されるプリミティブブロックからのプリミティブがなく、タイルに対するプリミティブ及び頂点マスクもないことを意味する。この場合、3D処理がタイルグループのタイルにおけるプリミティブブロックをスキップする。
フルマスク
これは、タイルグループのタイルにおいて全てのプリミティブが参照されることを意味する。この場合に、制御ストリームに必要とされるプリミティブ及び頂点マスクデータはない。3D処理は、プリミティブ及び頂点のフルマスクを自動的にセットする。
パックされたマスクデータ
タイルグループのタイルに対してプリミティブマスク及び頂点マスクの両方に1つの非0バイトしかないときには、プリミティブブロックが最大32個のプリミティブ及び16個の頂点を含むときの6バイトマスクではなく、制御ストリームのタイルに対する2バイトマスクワードに2つの非0バイトをパックすることができる。マスクデータの開始に非0バイトがない場合には、頂点マスクのための1ビットバイトオフセット及びプリミティブマスクのための2ビットバイトオフセットがタイルグループの各タイルに対してプリミティブブロックヘッダワードに使用される。
例えば、プリミティブマスク00000000 00000000 1010010000000000(0x0000A400)及び頂点マスク01101100 00000000(0x6C00)を伴うプリミティブブロックでは、マスクデータを、0x0000A400及び0x6C00ではなく、0xA46Cへとパックして制御ストリームへ書き込むことができる。プリミティブブロックヘッダでは、プリミティブマスクフォーマットPF_PRIM_MASK_FMTが、タイルに対するパックされたマスクデータとして10にセットされる。バイトオフセットPF_VERT_MASK_STARTが1にセットされ、そしてPF_PRIM_MASK_STARTがタイルに対して01にセットされる。3D処理では、頂点マスクデータが0x6Cから0x6C00へ再構成され、そしてプリミティブマスクがプリミティブマスクフォーマット及びバイト開始ビットを使用して0xA4から0x0000A400へ再構成される。
アンパックされたマスクデータ
プリミティブマスク及び頂点マスクは、タイルに対してパックされない。
同じプリミティブマスク
プリミティブブロックヘッダワードのフラグPF_SAME_MASKがセットされると、それは、タイルグループ内の全タイルが同じプリミティブマスクを有することを指示する。このケースでは、1つのプリミティブマスク及び1つの頂点マスクのみがタイルグループに対する制御ストリームに書き込まれる。
プリミティブマスクワードの数
タイルグループの各タイルにおけるプリミティブ及び頂点マスクは、バイト整列データとして制御ストリームに書き込まれる。プリミティブマスクデータは、最後に32ビットに丸められる。プリミティブブロックにおけるプリミティブマスクワードの合計数は、タイルグループのタイルのプリミティブマスクフォーマットから計算することができる。
統計学的には、平均で、2x2個のタイルを伴うタイルグループに対して各プリミティブブロックに使用されるプリミティブマスクワードが2未満であることが示される。
テールポインタ
テールポインタワードは、タイルのための制御データブロックの空きアドレスポインタの情報と、他のタイル関連情報とを含むように、図1のタイルエンジン(TE)103にタイルごとに記憶される。ここに提案する制御ストリームグループ化方法では、タイル当たりではなく、タイルグループ当たり1つのテールポインタがある。
タイルグループ当たり2つのテールポインタワードがある。テールポインタワード1の4ビットフィールドTP_TILE_VALIDが、タイルグループのタイルにおいてテールポインタ有効として使用され、タイルがプリミティブブロックによりカバーされる場合にはビットがセットされる。レンダリングの終了時に、テールポインタのフィールドTP_TILE_VALIDのビットが非0である場合に、終了ワードが制御ストリームリストの終わりに書き込まれる。TP_TILE_VALIDのビットが0である場合には、レンダリング終了時にその関連タイルが空きタイルにセットされる。
制御ポインタワードにおけるCONTROL_BLOCK_TILE_VALID及びCONTROL_BLOCK_LASTのフィールドを埋めるために、タイルエンジンTEは、制御データブロックが終了したときに、制御ポインタを書き込まねばならない。即ち、新たな制御データブロックが割り当てられたときに手前の制御ポインタワードを書き込む。テールポインタワード1のビットTP_REGION_OUTPUTは、制御ベースアドレスワードが領域ヘッダに書き込まれたかどうか指示するためのフラグである。最初の制御ポインタワードは、TP_REGION_OUTPUTがセットされない場合には制御ベースアドレスワードとして領域ヘッダに書き込まれ、さもなければ、制御ブロックグループの最初の制御データブロックにおける制御ポインタアレイに書き込まれる。
テールポインタワード1
テールポインタワードの構造は、次の通りである。
Figure 2012513630
タイルグループの制御ストリームリストにおける最初の制御データブロックの後に、その後の制御ポインタワードが、制御ポインタアレイにおいて、8制御データブロックのグループ内の最初の制御データブロックの上半分に書き込まれる。次の制御ポインタワードのアドレスは、テールポインタワード2にTP_CTRL_POINTER_ADDRとして記憶される。32ビットオフセットTP_CTRL_POINTER_OFFSETと結合されて、制御データブロックのグループの最初の制御データブロックにおける制御ポインタアレイに8個までの制御ポインタワードを書き込むことができる。
タイルグループのタイルにおいて制御ブロックが有効であるかどうか指示するために4ビットフィールドTP_CTRL_BLOCK_TILE_VALIDが使用される。制御ブロックの制御ストリームデータがタイルによって参照されない場合には、TP_CTRL_BLOCK_TILE_VALIDの当該ビットが0となる。この場合には、制御ブロックがスキップされ、次の制御ブロックが処理される。プリミティブブロックに対する制御ストリームデータが制御データブロックに書き込まれるたびに、フィールドTP_CTRL_BLOCK_TILE_VALIDがプリミティブブロックからのタイル有効フラグで更新される。制御ブロックが制御ストリームデータで完全に埋められた後に、フィールドTP_CTRL_BLOCK_TILE_VALIDがCTRL_BLOCK_TILE_VALIDとして制御ポインタワードに書き込まれる。
フィールドTP_PRIM_BLOCK_OFFSETは、制御ブロックにおける最初のプリミティブブロックヘッダワードの32ビットオフセットである。これは、スキップ制御ブロックの後に最初のプリミティブブロックヘッダを得るために3D処理により使用される。制御ブロックにおける最初のプリミティブブロックヘッダワードのオフセットは、テールポインタワード2に記憶され、そして制御ポインタワードのフィールドPRIM_BLOCK_OFFSETに書き込まれねばならない。
テールポインタワード2
Figure 2012513630
3D処理における制御ストリームデータ構文解析
図7は、3D処理における制御ストリームデータ構文解析を示す。プリミティブブロックヘッダワード、プリミティブブロックポインタワード及びプリミティブマスクワードを含むプリミティブブロックヘッダワードが、図7の700のように、タイルグループのための制御ストリームデータからフェッチされる。プリミティブブロックごとに、プリミティブブロックヘッダワード701が検査されて、プリミティブマスクワードがあれば、その数702を得る。プリミティブブロックヘッダワードから、プリミティブブロックに対してタイルが有効であるかどうか知ることができる。タイルが有効であって、タイルをカバーするプリミティブブロックからのプリミティブがある場合には、プリミティブブロックポインタワードが、703において、3D処理のためにプリミティブマスクワードと共にフェッチされる。プリミティブブロックヘッダワードに定義されたように、704において、プリミティブブロックに対してタイルが有効でない場合には、プリミティブヘッダワードがスキップされる。
プリミティブブロックヘッダワードは、レンダリングに対するタイルグループの制御ストリームの終わりである制御ストリームの終了ワードまで、タイルグループの制御ストリームデータから連続的に処理される。
制御ストリームデータのシステムレベルキャッシュ
グループ内の最初の制御データブロックの始めに書き込まれた制御ブロックグループの制御ポインタアレイには8つの制御ポインタがある。制御ポインタ及び制御ストリームデータの書き込みアドレスは、おそらく異なる制御データブロックからのものである。制御データブロックは、動的に割り当てられ、それ故、異なるメモリページに存在する。これは、制御ポインタ書き込みと制御ストリームデータ書き込みとの間にメモリページが破壊される機会を増加する。
メモリページの破壊を減少し、制御ストリームデータ書き込み性能を改善するために、制御ストリームデータ書き込み専用のシステムレベルキャッシュを、ここに提案する制御ストリームグループ化方法に使用することができる。
制御ストリームデータキャッシュは、16方の連想擬似LRUキャッシュアルゴリズムをシステムレベルキャッシュとして使用する。又、制御ストリームデータキャッシュは、マスク型書き込みも使用し、それ故、キャッシュラインがフラッシュされた後にメモリからデータをロードするためのメモリ読み取りの必要がない。
制御ストリームデータキャッシュのキャッシュラインは、レンダリングの終了時に、フラッシュして無効化する必要がある。マルチコンテクストの場合には、制御ストリームデータキャッシュの各キャッシュ線にコンテクストIDを記憶することができる。レンダリング終了時に、現在レンダリングのコンテクストIDと同じコンテクストIDをもつキャッシュ線だけがフラッシュされ無効化されて、キャッシュ性能を向上させる。
平均的に、制御ストリームデータ書き込みは、64KB制御ストリームデータキャッシュで15%減少されることが実験で示される。
101:入力データストリーム
103:タイルエンジン(TE)
200:スクリーン
201:マクロタイル
202:タイル
300:領域アレイ
301:制御ストリーム
302:制御データブロック
402:制御ストリーム
601:現在データブロック
602:次の制御データブロック
800:MT0
801:タイル
802、803:三角形ストリップ
804:大きな三角形
805:マクロタイルエンジンMTE
806:タイルエンジンTE
807:メモリ
808:3Dレンダリングプロセス

Claims (14)

  1. 3次元コンピュータグラフィック画像をレンダリングする方法において、
    レンダリングされるべき画像を複数の長方形エリアへと細分化する段階と、
    前記画像に見ることのできるプリミティブを、複数のプリミティブブロックの各1つに指定する段階と、
    どのプリミティブブロックが、各長方形エリアに交差するプリミティブを含むか決定する段階と、
    前記長方形エリアを複数の固定サイズグループへとグループ化する段階と、
    前記固定サイズグループの各々に対し制御ストリームデータを導出する段階であって、その制御ストリームデータは、どのプリミティブブロックが、各固定サイズグループの各長方形エリアをレンダリングするよう要求されたか決定するものである段階と、
    前記固定サイズグループの各々に対して前記制御ストリームデータを使用して、各グループの長方形エリアを順次にレンダリングすることにより前記画像を表示のためにレンダリングする段階と、
    を備えた方法。
  2. 長方形エリアの固定サイズグループの各々に対し領域ヘッダを指示する領域アレイと、各固定サイズグループによって参照される制御ストリームデータのための開始位置を指す制御ベースアドレスとが与えられる、請求項1に記載の方法。
  3. 前記制御ストリームデータは、長方形エリアの固定サイズグループをレンダリングするのに必要な各プリミティブブロックのプリミティブブロックを含む、請求項1又は2に記載の方法。
  4. 前記プリミティブブロックは、プリミティブ当たり1ビットのプリミティブマスクを含み、更に、そのプリミティブマスクを使用して、固定サイズグループをレンダリングするのにどのプリミティブが使用されるか決定する段階を備えた、請求項3に記載の方法。
  5. 前記プリミティブブロックは、プリミティブブロックにおける頂点の数を表すプリミティブブロックヘッダを含む、請求項4に記載の方法。
  6. 前記制御ストリームデータは、メモリの制御ブロックグループに書き込まれ、各制御ブロックグループは、現在制御ブロックからのデータにリンクされるべき制御ストリームデータを含む制御ブロックのための開始アドレスに対するデータを記憶する制御ポインタアレイを含む、請求項1から5のいずれかに記載の方法。
  7. 長方形エリアの各固定サイズグループに対して2つのテールポインタワードが記憶される、請求項1から6のいずれかに記載の方法。
  8. 3次元コンピュータグラフィック画像をレンダリングする装置において、
    レンダリングされるべき画像を複数の長方形エリアへと細分化する手段と、
    前記画像に見ることのできるプリミティブを、複数のプリミティブブロックの各1つに指定する手段と、
    どのプリミティブブロックが、各長方形エリアに交差するプリミティブを含むか決定する手段と、
    前記長方形エリアを複数の固定サイズグループへとグループ化する手段と、
    前記固定サイズグループの各々に対し制御ストリームデータを導出する手段であって、その制御ストリームデータは、どのプリミティブブロックが、各固定サイズグループの長方形エリアをレンダリングするよう要求されたか決定するものである手段と、
    前記固定サイズグループの各々に対して前記制御ストリームデータを使用して、各グループの長方形エリアを順次にレンダリングすることにより前記画像を表示のためにレンダリングする手段と、
    を備えた装置。
  9. 長方形エリアの固定サイズグループの各々に対する領域アレイと、長方形エリアの各固定サイズグループに対する制御ストリームデータのための開始位置を指す制御ベースアドレスとが与えられる、請求項8に記載の装置。
  10. 前記制御ストリームデータは、長方形エリアの固定サイズグループをレンダリングするのに必要な各プリミティブブロックのプリミティブブロックを含む、請求項8又は9に記載の装置。
  11. 前記プリミティブブロックは、1ビットプリミティブのプリミティブマスクを含み、更に、前記装置は、そのプリミティブマスクを使用して、固定サイズグループをレンダリングするのにどのプリミティブが使用されるか決定する手段を備えた、請求項10に記載の装置。
  12. 前記プリミティブブロックは、プリミティブブロックにおける頂点の数を表すプリミティブブロックヘッダを含む、請求項11に記載の装置。
  13. 前記制御ストリームデータは、メモリの制御ブロックグループに書き込まれ、各制御ブロックグループは、現在制御ブロックからのデータにリンクされるべき制御ストリームデータを含む制御ブロックのための開始アドレスに対するデータを記憶する制御ポインタアレイを含む、請求項8から12のいずれかに記載の装置。
  14. 長方形エリアの各固定サイズグループに対して2つのテールポインタワードが記憶される、請求項8から13のいずれかに記載の装置。
JP2011541585A 2008-12-23 2009-12-23 タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化 Active JP5579741B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0823468.4 2008-12-23
GBGB0823468.4A GB0823468D0 (en) 2008-12-23 2008-12-23 Display list control stream grouping in tile based 3D computer graphics systems
PCT/GB2009/002960 WO2010073017A1 (en) 2008-12-23 2009-12-23 Display list control stream grouping in tile based 3d computer graphics system

Publications (2)

Publication Number Publication Date
JP2012513630A true JP2012513630A (ja) 2012-06-14
JP5579741B2 JP5579741B2 (ja) 2014-08-27

Family

ID=40344132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011541585A Active JP5579741B2 (ja) 2008-12-23 2009-12-23 タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化

Country Status (6)

Country Link
US (1) US9384584B2 (ja)
EP (1) EP2380139B1 (ja)
JP (1) JP5579741B2 (ja)
CN (1) CN102265309B (ja)
GB (2) GB0823468D0 (ja)
WO (1) WO2010073017A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9777316B2 (en) 2009-06-04 2017-10-03 Qiagen Strasse 1 Amplification of complex nucleic acids

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2209092A1 (en) * 2009-01-16 2010-07-21 Luciad Method for unified visualisation of heterogeneous datasets
US8505001B2 (en) * 2009-12-17 2013-08-06 Broadcom Corporation Method and system for utilizing data flow graphs to compile shaders
JP5636988B2 (ja) * 2011-01-27 2014-12-10 富士通株式会社 描画装置および方法
US9721319B2 (en) * 2011-10-14 2017-08-01 Mastercard International Incorporated Tap and wireless payment methods and devices
US10089774B2 (en) * 2011-11-16 2018-10-02 Qualcomm Incorporated Tessellation in tile-based rendering
US8767009B1 (en) * 2012-06-26 2014-07-01 Google Inc. Method and system for record-time clipping optimization in display list structure
US10438314B2 (en) * 2012-10-26 2019-10-08 Nvidia Corporation Two-pass cache tile processing for visibility testing in a tile-based architecture
GB201223089D0 (en) 2012-12-20 2013-02-06 Imagination Tech Ltd Hidden culling in tile based computer generated graphics
GB2506706B (en) 2013-04-02 2014-09-03 Imagination Tech Ltd Tile-based graphics
GB2526598B (en) 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
GB2524120B (en) * 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
GB2524121B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
US9858718B2 (en) 2015-01-27 2018-01-02 Microsoft Technology Licensing, Llc Dynamically adaptable virtual lists
US9619937B2 (en) * 2015-03-05 2017-04-11 Arm Limited Methods and apparatus for processing computer graphics primitives in tile-based graphics rendering system
KR102454893B1 (ko) 2015-09-30 2022-10-14 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치의 동작 방법
GB2567436B (en) 2017-10-10 2019-10-02 Imagination Tech Ltd Geometry to tiling arbiter for tile-based rendering system
CN108873914B (zh) * 2018-09-21 2021-07-06 长安大学 一种基于深度图像数据的机器人自主导航系统及方法
BR112021011413A2 (pt) * 2018-12-17 2021-08-31 Huawei Technologies Co., Ltd. Método e aparelho de codificação de vídeo
US11061738B2 (en) * 2019-02-28 2021-07-13 Movidius Limited Methods and apparatus to store and access multi dimensional data
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
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
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

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6380935B1 (en) * 1999-03-17 2002-04-30 Nvidia Corporation circuit and method for processing render commands in a tile-based graphics system
JP2002529868A (ja) * 1998-11-06 2002-09-10 イマジネイション テクノロジーズ リミテッド 3次元コンピュータ生成画像のシェーディング
JP2003536153A (ja) * 2000-06-08 2003-12-02 イマジネイション テクノロジーズ リミテッド 三次元イメージレンダリングのためのタイリング及び圧縮
JP2005525617A (ja) * 2001-12-31 2005-08-25 インテル・コーポレーション ゾーン・レンダリング用の自動メモリ管理
JP2007157155A (ja) * 2005-12-05 2007-06-21 Arm Norway As グラフィックスを処理する方法および装置
WO2008037954A2 (en) * 2006-09-29 2008-04-03 Imagination Technologies Limited Improvements in memory management for systems for generating 3-dimensional computer images

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867166A (en) 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5821950A (en) * 1996-04-18 1998-10-13 Hewlett-Packard Company Computer graphics system utilizing parallel processing for enhanced performance
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
US6856320B1 (en) 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US7102646B1 (en) 1997-11-25 2006-09-05 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
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
US7627736B2 (en) * 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
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
GB2387094B (en) * 2002-03-26 2005-12-07 Imagination Tech Ltd 3-D 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
US7652678B2 (en) 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
GB2461821B (en) * 2007-09-12 2010-06-30 Imagination Tech Ltd Methods and systems for generating 3-dimensional computer images
GB0723536D0 (en) 2007-11-30 2008-01-09 Imagination Tech Ltd Multi-core geometry processing in a tile based rendering system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002529868A (ja) * 1998-11-06 2002-09-10 イマジネイション テクノロジーズ リミテッド 3次元コンピュータ生成画像のシェーディング
US6380935B1 (en) * 1999-03-17 2002-04-30 Nvidia Corporation circuit and method for processing render commands in a tile-based graphics system
JP2003536153A (ja) * 2000-06-08 2003-12-02 イマジネイション テクノロジーズ リミテッド 三次元イメージレンダリングのためのタイリング及び圧縮
JP2005525617A (ja) * 2001-12-31 2005-08-25 インテル・コーポレーション ゾーン・レンダリング用の自動メモリ管理
JP2007157155A (ja) * 2005-12-05 2007-06-21 Arm Norway As グラフィックスを処理する方法および装置
WO2008037954A2 (en) * 2006-09-29 2008-04-03 Imagination Technologies Limited Improvements in memory management for systems for generating 3-dimensional computer images

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9777316B2 (en) 2009-06-04 2017-10-03 Qiagen Strasse 1 Amplification of complex nucleic acids

Also Published As

Publication number Publication date
GB2466576A (en) 2010-06-30
GB0922591D0 (en) 2010-02-10
US20110304608A1 (en) 2011-12-15
CN102265309B (zh) 2014-05-07
GB2466576B (en) 2011-07-20
GB0823468D0 (en) 2009-01-28
CN102265309A (zh) 2011-11-30
EP2380139A1 (en) 2011-10-26
US9384584B2 (en) 2016-07-05
WO2010073017A1 (en) 2010-07-01
JP5579741B2 (ja) 2014-08-27
EP2380139B1 (en) 2017-11-15

Similar Documents

Publication Publication Date Title
JP5579741B2 (ja) タイルベースの3dコンピュータグラフィックシステムにおける表示リスト制御ストリームのグループ化
JP5579193B2 (ja) タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト
EP3401877B1 (en) Methods and systems for generating 3-dimensional computer images
JP4564718B2 (ja) 3−dコンピュータ・グラフィックス・レンダリングシステム
EP1267308B1 (en) Texturing systems for use in three-dimensional imaging systems
US11521342B2 (en) Residency map descriptors
US6342883B1 (en) Image display method and image display apparatus
JP2882465B2 (ja) 画像生成方法およびその装置
US20230048839A1 (en) Compressing texture data on a per-channel basis
ITMI20080999A1 (it) Modulo di renderizzazione per grafica a due dimensioni
CN113835753A (zh) 用于在纹理处理管线中执行加速的点采样的技术
US7372466B2 (en) Image processing apparatus and method of same
JP3971448B2 (ja) 描画装置及び描画方法
US6088033A (en) Method and apparatus for processing picture elements
CN117994431A (zh) 一种基础图元的拾取方法、装置、电子设备及存储介质
JPH1069550A (ja) モデル生成方法及びモデル生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121218

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5579741

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