JP5053857B2 - 3次元グラフィックス処理装置および方法 - Google Patents
3次元グラフィックス処理装置および方法 Download PDFInfo
- Publication number
- JP5053857B2 JP5053857B2 JP2007540720A JP2007540720A JP5053857B2 JP 5053857 B2 JP5053857 B2 JP 5053857B2 JP 2007540720 A JP2007540720 A JP 2007540720A JP 2007540720 A JP2007540720 A JP 2007540720A JP 5053857 B2 JP5053857 B2 JP 5053857B2
- Authority
- JP
- Japan
- Prior art keywords
- fragment
- data set
- state data
- graphics
- unit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Description
表示される場面が複数のグラフィックスプリミティブに分割されると、通常、グラフィックスプリミティブは、この技術分野において知られているように、通常、“フラグメント”と呼ばれる離散的な図形単位または図形要素にさらに分割され、それらについて(描画操作のような)実際のグラフィックス処理操作が実行される。そのようなグラフィックフラグメントの各々は、プリミティブにおける与えられた位置を表わし、かつ与えられた位置に対応し、実際、当該位置について(色値および深さ値(depth value)のような)データセットを具備する。
従って、典型的に実行される3Dグラフィックス処理の2つの形態は、グラフィックス“プリミティブ”(または多角形)の位置データをグラフィックスフラグメントの位置データに“ラスタ化すること(rasterising)”(すなわち、表示される場面において各プリミティブを表わすために使用されるグラフィックスフラグメントの(x,y)位置を決定すること)、および、ディスプレイ画面上に表示するために“ラスタ化された”フラグメントを“描画すること”(すなわち、フラグメントに着色、シェーディング等すること)である。
(3Dグラフィックス作品において、多くの場合、用語“ラスタ化”は、フラグメントへのプリミティブ変換および描画の両方を意味するために使用される。しかし、ここで“ラスタ化”は、プリミティブデータをフラグメントアドレスに変換することのみを指し示すために使用される。)
この技術分野において知られているように、典型的に、このデータは、線形方式またはパイプライン方式において順々に、各フラグメント(すなわち、そのフラグメントについてのデータ)について個々の描画処理(ステップ)を実行することによって導出される。従って、例えば、各フラグメントは、まず、例えば、フラグメントが属するプリミティブの頂点について記録された色および透明度のデータに基づいて初期のRGB値およびアルファ値が割り当てられ、そして、次々に、フラグメントデータに、テクスチャリング(texturing)、ぼかし(fogging)、ブレンディング(blending)、等のような操作が実行される。これらの操作は、最後の処理操作の後に、ディスプレイ画面上にそのフラグメントが正しく表示されることを可能とするために、各フラグメントがRGB値およびアルファ値の適切なセットを有するように、各フラグメントについて設定された初期のRGB値およびアルファ値を修正する。このRGB値およびアルファ値の最後のセットは、ディスプレイ画面上のフラグメントの表示のための準備を完了して記憶される。そして、この処理は、現在描画されている場面の領域における全てのフラグメントについて繰り返される。
正しい描画操作を実行するために、描画処理の各段階は適切に構成される、すなわち、いわゆる、正しい“描画状態”に設定される必要がある。描画状態は、描画処理の段階が各フラグメントについてどのように操作するかを決定し、典型的に、例えば、アンチエイリアシング(anti-aliasing)モード、ブレンディングモード、ステンシルバッファ操作、テクスチャー機能、テクスチャーマップ情報、z−テストモード、RGBバッファ書き込みモード、等のうちの1つまたは複数が、グラフィックスフラグメントを描画するために使用されることを決定する。
典型的に、描画状態は、グラフィックス処理装置を駆動する“ドライバ”ソフトウェアによって判定および設定される。(この技術分野において知られているように、典型的に、グラフィックス処理装置は、(例えば、グラフィックス処理装置のホストシステム上の)“マスタ”デバイスによって制御され、マスタデバイスは、マスタデバイス上で動作するソフトウェア“ドライバ”によって、グラフィックス処理装置と通信し、かつグラフィックス処理装置を制御し、マスタデバイスは、グラフィックス処理装置の使用を要求するマスタデバイス上で動作する(ソフトウェア)アプリケーションから受信したコマンドに応答してグラフィックス処理装置と通信し、かつグラフィックス処理装置を制御する。)
しかし、これは、描画器の現在の状態と異なる描画状態を用いてフラグメントが描画されるとき(例えば、第1フラグメントが、異なる描画状態を有するもう1つのプリミティブから描画されるとき)、描画器は、新たなフラグメントが描画可能となる前に、その描画状態を新たな描画状態に変更しなければならない。さらに、描画器における現在の全てのフラグメントの処理が完了するまで、描画器の描画状態は変更することができない。実際、これは、描画状態の変更が必要であるとき、新たなフラグメントが描画可能となる前に、新たな描画状態を要求する新たなフラグメントが“停止”され、既に描画器内にあるフラグメントが描画器を通して“排出”され、描画状態が変更されなければならない。これは、描画器の性能を劣化させる。
また、例えば、描画状態の変更を実行するために必要な時間を減少させるように、描画器に与えられるプリミティブのデータストリームに描画状態変更コマンドおよびデータを含めることによって、描画器状態の変更が行われる速度を向上させる試みが知られている。しかし、そのような操作は、やはり、描画状態の変更を行う必要があるときはいつでも描画器が停止および排出される必要がある。
本発明の第1態様によれば、異なる描画状態に設定することが可能な1つまたは複数の描画ユニットを具備する、表示のためのグラフィックスフラグメントを描画する描画器と、複数のデータセットを記憶する手段と、を具備し、各データセットは、前記描画器の描画ユニットを設定するために異なる描画状態を定義し、描画されるグラフィックスフラグメントを前記記憶された描画状態のデータセットの1つと対応付ける手段と、記憶された描画状態のデータセットと対応付けられたグラフィックスフラグメントを、描画するために前記描画器の描画ユニットに送出する手段と、をさらに具備し、前記描画器の描画ユニットの1つまたは複数は、描画されるグラフィックスフラグメントと対応付けられた描画状態のデータセットを判定する手段と、前記判定された描画状態のデータセットに従って前記描画ユニットを設定する手段と、を具備するグラフィックス処理装置が提供される。
また、本発明は、上述したように動作することが可能である描画ユニット、および、適切にグラフィックスフラグメントを準備することが可能な描画器とともに使用する装置に及ぶ。
描画状態データセットは、望まれるように選択および構成することが可能である。それらは、例えば、通常、描画器(例えば、描画パイプライン)について描画状態を定義する場合として構成することが可能である。好ましい実施形態において、データセットは、各データセットが共通の形式を有するように、予め定義されたデータ構造で構成される。最も好ましくは、異なる描画状態を定義するデータセットはデータワードとして構成される。特に好ましい実施形態において、各データセット、例えば、描画状態ワードは、複数の離散的なより小さい部分(例えば、サブワード)に細分され、その各々は、例えば、描画状態の異なる態様を定義する。
従って、描画状態データセットの異なる部分は、例えば、描画ユニットは、メモリから描画状態データセット全体を取得する必要なしに適切な描画状態データセットの部分を探索することが可能であるように、データセット全体を探索または取得する必要と関係なく探索することが可能であることが好ましい。
描画器の描画ユニットによってアクセス可能であるように限定された数の描画状態データセットのみが記憶される場合、上述したように、描画ユニットによって現在アクセス可能でない描画状態を要求するフラグメントが描画されることが必要となる可能性がある。その場合、上述したように、その新たな描画状態が、使用するために描画ユニットにアクセス可能なメモリに書き込み可能であることが好ましい。しかし、出願人は、適切な描画状態データセットが描画ユニットに利用可能となるまで、好ましくは、描画するためにフラグメントが渡されるべきでないと認識している。
従って、特に好ましい実施形態において、(例えば、描画器のローカルメモリに記憶された、)フラグメントと対応付けられた描画状態データセットが描画ユニットにアクセス可能であるならば、描画するためにフラグメントが“送出”されるのみである。必要な描画状態データセットが利用可能でない場合において、関連する描画状態データセットが描画ユニットに利用可能となるまで、フラグメントの処理は中止(停止)されることが好ましい。(当該フラグメントの処理は停止されるが、必要な描画状態データセットが利用可能である他のフラグメントの処理は継続することが可能であり、継続することが好ましいことに留意すべきである。言い換えると、描画処理(パイプライン)は停止せず、当該フラグメント(プリミティブ)のみ停止する。)
フラグメント(プリミティブ)のこの停止は、パイプライン全体(全ての新たなフラグメントの処理)が停止する従来のシステムと対照をなし、本発明において、1つ(または複数)のフラグメント(プリミティブ)の処理が停止しても、適切な描画状態データセットが描画ユニットにアクセス可能な続くフラグメント(プリミティブ)の処理は継続することが望ましい。
そのような構成において、描画ユニットにアクセス可能なメモリに新たなデータセットを記憶するための空き容量が存在する場合、新たなデータセットは単純にメモリにロードすることが可能である。しかし、描画状態データセットのためのメモリ容量が全て使用中であるならば、新たなデータセットは既存の記憶された描画状態データセットを置換しなければならない。
その時に既存の記憶されたデータセットを置換することが可能でないならば、既存の記憶された描画状態データセットがもはや必要とされず、置換することが可能である時を判定するために、システムはメモリの監視を継続することが好ましい。
最も好ましくは、各々の記憶された描画状態データセットについて2つのカウンタが保持される。第1カウンタであるプリミティブカウンタは、好ましくは、描画状態データセットを用いるプリミティブが描画されるために送信されるごとに増加(または減少)し、ラスタ化器が特定の描画状態データセットを用いるプリミティブについて最後のフラグメントを送出するごとに減少(または増加)する。第2カウンタは“フラグメント”カウンタであり、描画状態データセットを用いるフラグメントが描画器に送出されるごとに増加(または減少)し、その描画状態データセットを用いるフラグメントの描画が完了するごとに減少(または増加)する。望まれるならば、両方のカウンタがゼロであるとき、描画状態データセットは現在使用中でなく、従って置換することが可能であることを示す。
本発明において、この技術分野において知られているように、プリミティブを描画する前に、描画器状態によってプリミティブを整列することが可能である。それは、描画器状態の変更の発生のために描画が停止する危険性をさらに減少させる。しかし、上述したように、本発明の重要な効果は、描画する前に描画状態によってプリミティブを整列する必要を除去するために用いることが可能であることである。従って、好ましい実施形態において、プリミティブは、描画する前に、もう1つの基準によって(すなわち、描画状態によってではなく)整列される。最も好ましくは、プリミティブは描画する前に深さによって整列される。
本発明による方法は、少なくとも部分的にソフトウェア、例えばコンピュータプログラムを用いて実装することが可能である。従って、さらなる態様から見ると、本発明は、データ処理手段にインストールされると、ここで説明された方法を実行するように具体的に構成されるコンピュータソフトウェア、データ処理手段において実行されるときに上述した方法を実行するためのコンピュータソフトウェアコード部分を有するコンピュータプログラムの構成要素(computer program element)、データ処理システムにおいて実行されるときに上述した1つまたは複数の方法の全てのステップを実行するように構成されたコード手段を有するコンピュータプログラムを提供することが理解される。また、本発明は、データ処理手段を具備するグラフィックス処理装置、描画器、またはマイクロプロセッサシステムを動作させるために使用されるとき、前記データ処理手段と結合して、前記処理装置、描画器、またはシステムに、本発明の方法のステップを実行させるソフトウェアを含むコンピュータソフトウェアの運搬体(carrier)に及ぶ。そのようなコンピュータソフトウェアの運搬体は、ROMチップ、CD−ROM、またはディスクのような物理的記憶媒体、または、導線上の電子的信号、光信号、または衛星等への無線信号、等の信号とすることが可能である。
従って、本発明は、コンピュータシステムとともに使用するためのコンピュータプログラム製品として適切に実現することが可能である。そのような実装は、コンピュータ読み取り可能な媒体、例えば、ディスケット、CD−ROM、ROM、またはハードディスクのような有形の媒体に定着された、または、モデムまたは他のインタフェース装置を介して、限定しないが光またはアナログの通信回線を含む有形の媒体上で、または、限定しないがマイクロ波、赤外線、または他の伝送技術を含む無線技術を用いて無形に、コンピュータシステムに送信可能な、一連のコンピュータ読み取り可能な命令を含むことが可能である。一連のコンピュータ読み取り可能な命令は、前述の機能の全部または一部を実現する。
上述したように、本発明は、3Dグラフィックス処理装置の描画操作に関する。
この技術分野において知られているように、3Dグラフィックスオブジェクトが描画されるとき、通常はまず、それらは一連のプリミティブ(多角形)として定義され、そして、プリミティブはグラフィックスフラグメントに分割され、そして、フラグメントは順番に描画される。通常の3D描画操作の間に、描画器は、フラグメントを正しく表示することができるように、(例えば)各フラグメントと対応付けられたRGBデータを修正する。フラグメントが描画器を完全に移動すると、それらの対応するデータ値はメモリに記憶され、表示のための準備が完了する。
また、各プリミティブは、典型的に、プリミティブがどのようにラスタ化および描画されるかを定義する描画状態(プリミティブのフラグメントを描画するために使用される、例えば、テクスチャーモード、ブレンディングモード、z−テストモード、アンチエイリアシングモード、等)と対応付けされる。通常の経過において、与えられたプリミティブについての描画状態は、3Dグラフィックス処理装置を用いるホストシステム上で動作するソフトウェアドライバによって設定される。典型的に、このドライバは、異なる描画状態を定義するデータセットを定義し、そのデータセットは、所望のときに描画器の描画ユニットを正しい描画状態に設定するために用いることができるような方法で記憶される。
本発明によるこの実施形態において、描画される各フラグメントは与えられた描画状態と対応付けられ、そして、描画器の各描画ユニットは、描画するためのフラグメントを受信するとフラグメントについての描画状態を“探索”する。
また、グラフィックス処理システムは、((この技術分野において知られているように)描画されるプリミティブについての頂点等へのポインタを含むプリミティブリスト要素を読み取るための)プリミティブリスト読取器20、((プリミティブがラスタ化および描画されるように準備が完了しているときにプリミティブの頂点を決定するために)プリミティブリスト読取器20によって読み取られたプリミティブリストにおけるポインタによって指し示される頂点データをフェッチするための)頂点ローダー21、(頂点ローダー21から受信されたプリミティブデータ上に三角形配置(triangle set up)を実行するための)三角形配置ユニット22、(この技術分野において知られているように、プリミティブデータを描画するためにプリミティブデータをフラグメント位置に変換するための)ラスタ化器(rasteriser)23のような、3Dグラフィックス処理システムにおいて典型的に存在する多数の他の機能ユニットを含む。
キャッシュメモリ5は、描画器状態“ワード”(renderer state word(RSW))の形式で異なる描画状態を定義するデータセットを記憶する。各描画器状態ワードは、アクティブなテクスチャーマップ、使用するテクスチャー機能およびブレンディングモード、使用するz−バッファおよびステンシルバッファモード、アンチエイリアシングが有効であるか否かのようなデータを指定する、描画パイプライン1のための設定情報を含む。また、描画器状態“ワード”は、1つまたは複数のフラグメントについて使用されるピクセルシェーダープログラム(およびデータ)を示すデータを含むことが可能である。
描画器状態ワードキャッシュ5は、4つのレジスタまたはラインを含み、各々が1つの描画器状態ワードを記憶することが可能であり、すなわち、描画器状態ワードキャッシュ5は、いつでも4つの異なる描画器状態ワードを記憶することが可能である。これは、4つの現在の記憶された描画器状態ワードのうち任意の1つと対応付けられたフラグメントが描画パイプライン1を通して進行することを可能とする。(この技術分野の当業者によって理解されるように、望むならば、描画器状態ワードキャッシュ5において他の数の状態ワードレジスタを使用することが可能である。)
描画器状態ワードキャッシュ5における描画器状態ワードの記憶および置換を制御するために、リソース割当器24は、描画器状態ワードキャッシュ5において記憶される与えられた描画器状態ワードと対応付けられたフラグメントの進行を追跡することを可能とするために、各描画器状態ワードレジスタ(ライン)について2つのカウンタ、プリミティブカウンタおよびフラグメントカウンタを保持する。
プリミティブカウンタは、対応する描画器状態ワードを必要とするプリミティブが、実際、システムにロードされるごとに増加し、ラスタ化器23が、その描画器状態ワードを用いるプリミティブについて最後のフラグメントを送出するごとに減少する。これは、図1に表わされているように、三角形配置ユニットが配置のためにプリミティブを受信すると、そのプリミティブに結び付けられた描画器状態ワードについてプリミティブカウンタを増加させる三角形配置ユニット、および、プリミティブからの最後のフラグメントがラスタ化器23を解放すると、対応する描画器状態ワードについて多角形カウンタ減少信号をリソース割当器24に送出するラスタ化器23によって実行される。
フラグメントカウンタは同様に動作し、描画パイプライン1に送出される対応する描画器状態ワードを用いる各フラグメントについて1だけ増加し、その描画器状態ワードを用いるフラグメントが完了するごとに1だけ減少する。これは、図1に表わされているように、フラグメントがパイプラインに入ると、対応する描画器状態ワードについてフラグメントカウンタ増加信号を送出し、フラグメントがパイプラインを解放すると減少信号を送出する描画パイプラインによって実行される。
必要なデータが生成および記憶されると、この技術分野において知られているように、ドライバソフトウェアは、(プリミティブが描画されることを可能とするように、プリミティブリスト読取器20による取得のために)場面のために描画される各プリミティブについて、記憶された頂点データ等へのポインタを含む適切なプリミティブリストを準備する。
また、ドライバソフトウェアは、各プリミティブを、それを描画するために使用される適切な描画器状態ワード(描画状態データ)に結合するように、各プリミティブを描画するために使用される記憶された描画器状態ワードデータへのポインタをプリミティブリストに含む。(従って、この構成において、描画状態データセットはプリミティブごとに指定されるが、これは必須ではなく、望むならば、他の構成を用いることが可能である。)
そのような要求を受信すると、リソース割当器24は、当該プリミティブと対応付けられた描画器状態ワードが描画器状態ワードキャッシュ5に既に記憶されているか否か判定する。要求される描画器状態ワードがキャッシュ5に既に記憶されているならば、リソース割当器24は三角形配置操作のためにプリミティブを渡す。(従って、描画器状態ワードはプリミティブごとに定義されるが、システムは、そうすることが適切であるとき、1つのプリミティブから次のプリミティブへ描画器状態ワードをキャッシュするように動作する。)
後者の動作を行うために、リソース割当器24は、上述したように、各描画器状態ワードレジスタについてのプリミティブカウンタおよびフラグメントカウンタを用いて、描画器状態ワードキャッシュ5において描画器状態ワードのための空き容量が存在するか否か、および、存在する時を判定する(すなわち、少なくとも1つのキャッシュレジスタが“解除”されたか否かを判定する)。
描画器状態ワードキャッシュ5において空きレジスタが存在すると判定したとき、リソース割当器24は、新たな描画器状態ワードが記憶されたメモリからそれをフェッチし、それを空きの描画器状態ワードキャッシュレジスタにロードする。
リソース割当器24は、当該プリミティブについて関連する描画器状態ワードが描画器状態ワードキャッシュ5に記憶されている(または、描画器状態ワードキャッシュ5にそれを記憶した)と判定すると、そのプリミティブについて描画器状態ワードキャッシュ5に記憶された描画器状態ワードが識別されることを可能とするために、描画器状態ワードキャッシュ5への適切な描画器状態ワードインデックス(ポインタ)をプリミティブに割り当てる。
そして、プリミティブは、三角形配置操作および描画するために渡され、システムを通して進行する。
そして、プリミティブは、ラスタ化するためにラスタ化器23に渡される。この技術分野において知られているように、ラスタ化器23は、描画するためにプリミティブデータをフラグメント位置に変換する。また、ラスタ化器23は、フラグメントと対応付けられた描画器状態ワード(多角形リスト読取器20によって読み取られたリスト要素におけるプリミティブと対応付けられたのと同一の描画器状態ワード)を記憶する描画器状態ワードキャッシュ5レジスタを示すインデックスポインタを各フラグメントと対応付ける。
そして、ラスタ化されたフラグメントは、描画するために描画パイプライン1に渡される。上述したように、プリミティブからのフラグメントは描画されるので、描画パイプラインの描画ユニットが適切な描画状態に設定されるように、各フラグメントの描画器状態ワードインデックスは描画パイプラインにおける各ステップにおいて描画器状態ワード探索を実行するために使用される。
フラグメントが描画されると、表示する前に記憶するための、タイルバッファのような適切なメモリに渡される。
描画パイプライン1の各描画ユニット2、3は、受信したフラグメントについて描画操作を実行する機能ブロック10(従って、適切な描画状態に設定される必要がある)、描画器状態ワード(RSW)キャッシュ5から適切な描画状態データを探索するために用いることが可能な描画器状態ワード(RSW)インタフェース11の両方を含む。
図2に表されているように、各フラグメントは、とりわけ、フラグメントインデックス、描画器状態ワード(RSW)インデックス、およびフラグメントを描画するために必要な任意の他のフラグメントデータ(この技術分野において知られているように、RGB値のような任意の適切なデータとすることが可能である)を示すフラグメントデータ6とともに描画パイプライン1に与えられる。
描画パイプライン1の描画ユニット2、3が描画されるフラグメントを受信すると、まず、その描画器状態ワードインタフェース11を用いて、フラグメント4と対応付けられた描画器状態ワードインデックス8を使用して、描画器状態ワードキャッシュ5から関連する描画状態データを探索する。そして、そのデータを用いてその機能ブロック10を設定し、フラグメントを描画する。この実施形態において、機能ブロック10は、(望むならば、描画器状態ワード全体を探索することが可能であるが、)それらの動作に関連する描画器状態ワードの部分を探索および取得するのみである。
次のフラグメントが描画ユニットによって受信されると、そのフラグメントと対応付けられた描画器状態ワードインデックス8を再び検査し、描画器状態ワードキャッシュ5から関連する設定データを取得し、その機能ブロック10を設定し、そして、フラグメントを描画する、等である。
図2に表されているように、フラグメントが受信されるごとに描画器状態の“探索”を実行するための追加のハードウェアが必要とされ得るが、従来の描画システムと比較して、描画操作の速度または効率に関して追加のコストは存在しないことに留意すべきである。
図3は、特に、描画パイプライン1の構成をより詳細に表わす。図3に表されているように、グラフィックスシステムは、再び、図1に関して上述したように動作するリソース割当器24、この実施形態において2つの描画器状態ワードレジスタを含むものとして表わされている描画器状態ワードキャッシュ5、上述したように動作するラスタ化器23、描画パイプライン1における多数の描画ユニットを含む。
また、描画器入力ステージ30が図示され、これは上述したように、基本的に、描画器状態ワードデータを含むプリミティブリスト情報を受信し、そして、ラスタ化するためにラスタ化器23に適切なプリミティブデータを与える。
この3Dグラフィックスシステムは、図1および図2に関して上述したのと同様に動作する。
従って、描画器入力30およびラスタ化器23は、(上述しように、描画するためのプリミティブを送出する前に、キャッシュ5に適切な描画器状態ワードが記憶されることを検査および保証するように動作するリソース割当器24を用いて、)キャッシュ5において適切な描画器状態ワードキャッシュのエントリを指し示すインデックスを、描画される各フラグメントと対応付けるように動作する。従って、フラグメントが描画されるならば、フラグメントを正しく描画することができるように、描画器状態ワードキャッシュ5から適切な描画器状態ワードデータを探索するために、および、描画ユニットを設定するために、各フラグメントと対応付けられた描画器状態ワードインデックスは描画パイプライン1の描画ユニットによって使用される。
これは、好ましい実施形態において、少なくとも、描画器を通るフラグメントに従う描画状態インデックスまたはポインタを描画器において各フラグメントと対応付けることによって達成される。そして、その特定のフラグメントについて特定の描画状態に従う使用において描画ユニットを設定することが可能であるように、描画状態の探索が描画器における各ステップにおいて実行される。このようにして、異なる描画状態を要求するフラグメントは、同時に描画器に存在し、描画器によって処理することが可能であり、それによって、描画状態の変更による“フラグメントバブル(fragment bubble)”の発生およびパイプラインのブロッキングを防止することが可能である。
また、本発明は、好ましい実施形態において、少なくとも、ドライバソフトウェアの複雑さを減少することができるように、ドライバソフトウェアに描画状態の変更を通知する必要がないという効果を有する。
さらに、本発明は、使用において描画器全体がブロッキングおよび停止する危険を防止または減少することが可能であるので、より長い描画器(描画パイプライン)の使用を容易にする。従って、フォンシェーディングのような、より複雑な描画操作の使用を容易にする。
2、3 描画ユニット
4 フラグメント
5 描画器状態ワードキャッシュ
6 フラグメントデータ
7 フラグメントインデックス
8 描画器状態ワードインデックス
9 他のフラグメントごとのデータ
10 機能ブロック
11 描画器状態ワードインタフェース
20 プリミティブリスト読取器
21 頂点ローダー
22 三角形配置ユニット
23 ラスタ化器
24 リソース割当器
25 グラフィックス処理システム
30 描画器入力
31 関数発生器
32 テクスチャーマッパー
33 ブレンダー
34 出力バッファ
40 機能ユニット
Claims (24)
- 異なる描画状態に設定することが可能な1つのパイプラインを構成する複数の描画ユニットを具備する、表示のためのグラフィックスフラグメントを描画する描画器と、
複数のデータセットを記憶する手段と、
を具備し、
各データセットは、前記描画器の描画ユニットを設定するために異なる描画状態を定義し、
描画されるグラフィックスフラグメントを前記記憶された描画状態のデータセットの1つと対応付ける手段と、
記憶された描画状態のデータセットと対応付けられたグラフィックスフラグメントを、描画するために前記描画器の描画ユニットに送出する手段と、
をさらに具備し、
前記描画器の描画ユニットの複数は、
描画されるグラフィックスフラグメントと対応付けられた描画状態のデータセットを判定する手段と、
前記判定された描画状態のデータセットに従って前記描画ユニットを設定する手段と、
を具備するグラフィックス処理装置。 - 1つまたは複数のフラグメントを対応する描画状態のデータセットと対応付けるためにグラフィックス処理のラスタ化ステップが使用される請求項1に記載のグラフィックス処理装置。
- 前記描画器の描画ユニットによってアクセス可能な、前記描画器と対応付けられた1つまたは複数の描画状態のデータセットを記憶するキャッシュメモリを具備し、
前記描画器の描画ユニットは、前記キャッシュメモリから描画状態のデータセットを取得するために探索するように構成される請求項1または2に記載のグラフィックス処理装置。 - 描画するために使用される異なる描画状態を定義する複数のデータセットを記憶する第1メモリ手段と、
前記複数の描画状態のデータセットのうちの選択された数のデータセットを記憶するために前記描画器の描画ユニットによってアクセス可能な第2メモリ手段と、
を具備する請求項1から3のいずれか1項に記載のグラフィックス処理装置。 - 描画するためのプリミティブが受信されると、要求される描画状態のデータセットが前記描画器の描画ユニットによってアクセス可能なメモリに記憶されているか否か検査する手段と、
前記要求される描画状態のデータセットが記憶されていないならば、適切な描画状態のデータセットが前記描画ユニットによってアクセス可能なメモリにおいて利用可能となる時までプリミティブの処理を停止する手段と、
を具備する請求項1から4のいずれか1項に記載のグラフィックス処理装置。 - 前記描画器の描画ユニットによる描画状態のデータセットの使用を監視する手段を具備する請求項1から5のいずれか1項に記載のグラフィックス処理装置。
- 特定の1つまたは複数の描画状態と対応付けられたグラフィックスフラグメントの前記描画器を通る進行を追跡する手段を具備する請求項1から6のいずれか1項に記載のグラフィックス処理装置。
- 前記描画ユニットによってアクセス可能なメモリにおける描画状態のデータセットの記憶を制御し、かつラスタ化するためのプリミティブの送出および描画するためのフラグメントの送出を制御するリソース割当器を具備する請求項1から7のいずれか1項に記載のグラフィックス処理装置。
- 描画する前にプリミティブの描画状態以外の基準によってプリミティブを整列する手段を具備する請求項1から8のいずれか1項に記載のグラフィックス処理装置。
- グラフィックスフラグメントを描画状態のデータセットと対応付ける前記手段は、フラグメントについて使用される前記描画状態のデータセットを示すフラグを前記フラグメントに割り当てる手段を具備する請求項1から9のいずれか1項に記載のグラフィックス処理装置。
- 前記フラグは、前記描画状態のデータセットが記憶されたメモリ位置を示す請求項10に記載のグラフィックス処理装置。
- 前記描画ユニットの複数は、描画状態のデータセットの一部のみを選択的に取得することが可能である請求項1から11のいずれか1項に記載のグラフィックス処理装置。
- 表示のためのグラフィックスフラグメントを描画するための1つのパイプラインを構成する複数の描画ユニットを含む描画器を有するグラフィックス処理装置を動作させる方法であって、
前記描画器の描画ユニットを設定するために1つまたは複数の描画状態を定義するデータセットを記憶するステップと、
描画される各グラフィックスフラグメントを前記記憶された描画状態のデータセットの1つと対応付けるステップと、
描画ユニットが、描画されるグラフィックスフラグメントを受信すると、そのグラフィックスフラグメントと対応付けられた描画状態のデータセットを判定し、前記判定された描画状態のデータセットに従って設定され、前記受信したグラフィックスフラグメントについて描画操作を実行するステップと、
を有する方法。 - 1つまたは複数のグラフィックスフラグメントを対応する描画状態のデータセットと対応付けるためにグラフィックス処理のラスタ化ステップを用いるステップを有する請求項13に記載の方法。
- 前記描画器の描画ユニットによってアクセス可能な、前記描画器と対応付けられたキャッシュメモリに1つまたは複数の描画状態のデータセットを記憶するステップを有し、
前記描画器の描画ユニットは、前記キャッシュメモリから描画状態のデータセットを取得する請求項13または14に記載の方法。 - 描画するために使用される異なる描画状態を定義する複数のデータセットを第1メモリ手段に記憶するステップと、
前記複数の描画状態のデータセットのうちの選択された数のデータセットを前記描画器の描画ユニットによってアクセス可能な第2メモリ手段に記憶するステップと、
を有する請求項13から15のいずれか1項に記載の方法。 - 描画するためのプリミティブが受信されると、要求される描画状態のデータセットが前記描画器の描画ユニットによってアクセス可能なメモリに記憶されているか否か検査するステップと、
前記要求される描画状態のデータセットが記憶されていないならば、適切な描画状態のデータセットが前記描画ユニットによってアクセス可能なメモリにおいて利用可能となる時まで前記プリミティブの処理を停止するステップと、
を有する請求項13から16のいずれか1項に記載の方法。 - 前記描画器の描画ユニットによる描画状態のデータセットの使用を監視するステップを有する請求項13から17のいずれか1項に記載の方法。
- 特定の1つまたは複数の描画状態と対応付けられたグラフィックスフラグメントの前記描画器を通る進行を追跡するステップを有する請求項13から18のいずれか1項に記載の方法。
- 描画する前にプリミティブの描画状態以外の基準によってプリミティブを整列するステップを有する請求項13から19のいずれか1項に記載の方法。
- グラフィックスフラグメントを描画状態のデータセットと対応付ける前記手段は、グラフィックスフラグメントについて使用される前記描画状態のデータセットを示すフラグを前記フラグメントに割り当てるステップを有する請求項13から20のいずれか1項に記載の方法。
- 前記描画ユニットの1つまたは複数が、描画状態のデータセットの一部のみを選択的に取得するステップを有する請求項13から21のいずれか1項に記載の方法。
- データ処理手段において実行されるとき請求項13から22のいずれか1項に記載の方法を実行するためのコンピュータソフトウェアコード部分を有するコンピュータプログラムの構成要素。
- 請求項1から12のいずれか1項に記載のグラフィックス処理装置を含む、または、請求項13から22のいずれか1項に記載の方法に従って動作する、3Dグラフィックス処理装置または3Dグラフィックス処理プラットフォーム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0425204A GB0425204D0 (en) | 2004-11-15 | 2004-11-15 | Processing of 3-dimensional graphics |
GB0425204.5 | 2004-11-15 | ||
PCT/GB2005/004385 WO2006051330A1 (en) | 2004-11-15 | 2005-11-15 | Processing of 3-dimensional graphics |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008520021A JP2008520021A (ja) | 2008-06-12 |
JP5053857B2 true JP5053857B2 (ja) | 2012-10-24 |
Family
ID=33523773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007540720A Active JP5053857B2 (ja) | 2004-11-15 | 2005-11-15 | 3次元グラフィックス処理装置および方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8345051B2 (ja) |
JP (1) | JP5053857B2 (ja) |
CN (1) | CN101057261B (ja) |
GB (2) | GB0425204D0 (ja) |
WO (1) | WO2006051330A1 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620530B2 (en) * | 2004-11-16 | 2009-11-17 | Nvidia Corporation | System with PPU/GPU architecture |
WO2008030241A1 (en) * | 2006-09-08 | 2008-03-13 | Nordnav Technologies Ab | Processing of signals from global navigation satellite systems by a graphics processor |
GB0710795D0 (en) * | 2007-06-05 | 2007-07-18 | Arm Norway As | Method of and apparatus for processing graphics |
US8826294B2 (en) * | 2007-12-26 | 2014-09-02 | Advanced Micro Devices, Inc. | Efficient state management system |
GB2458488C (en) | 2008-03-19 | 2018-09-12 | Imagination Tech Ltd | Untransformed display lists in a tile based rendering system |
GB0810205D0 (en) * | 2008-06-04 | 2008-07-09 | Advanced Risc Mach Ltd | Graphics processing systems |
CN101819684B (zh) * | 2010-04-12 | 2012-06-20 | 长春理工大学 | 一种动画电影虚拟三维场景的空间加速结构及其创建与更新方法 |
US8902228B2 (en) | 2011-09-19 | 2014-12-02 | Qualcomm Incorporated | Optimizing resolve performance with tiling graphics architectures |
US9547930B2 (en) | 2011-11-30 | 2017-01-17 | Qualcomm Incorporated | Hardware switching between direct rendering and binning in graphics processing |
US20130271465A1 (en) * | 2011-12-30 | 2013-10-17 | Franz P. Clarberg | Sort-Based Tiled Deferred Shading Architecture for Decoupled Sampling |
US10242481B2 (en) * | 2012-03-15 | 2019-03-26 | Qualcomm Incorporated | Visibility-based state updates in graphical processing units |
KR20140005388A (ko) * | 2012-06-26 | 2014-01-15 | 삼성전자주식회사 | 렌더링 데이터 처리 장치 및 방법 |
CN102999946B (zh) * | 2012-09-17 | 2016-08-03 | Tcl集团股份有限公司 | 一种3d图形数据处理方法、装置及设备 |
US9741154B2 (en) * | 2012-11-21 | 2017-08-22 | Intel Corporation | Recording the results of visibility tests at the input geometry object granularity |
US9030480B2 (en) * | 2012-12-18 | 2015-05-12 | Nvidia Corporation | Triggering performance event capture via pipelined state bundles |
US10169906B2 (en) | 2013-03-29 | 2019-01-01 | Advanced Micro Devices, Inc. | Hybrid render with deferred primitive batch binning |
US10957094B2 (en) | 2013-03-29 | 2021-03-23 | Advanced Micro Devices, Inc. | Hybrid render with preferred primitive batch binning and sorting |
US9589314B2 (en) * | 2013-04-29 | 2017-03-07 | Qualcomm Incorporated | Query processing for tile-based renderers |
GB2526598B (en) * | 2014-05-29 | 2018-11-28 | Imagination Tech Ltd | Allocation of primitives to primitive blocks |
GB2540382B (en) * | 2015-07-15 | 2020-03-04 | Advanced Risc Mach Ltd | Data processing systems |
CN105843603B (zh) * | 2016-03-17 | 2019-08-16 | 广州爱九游信息技术有限公司 | 图形处理的方法及装置 |
WO2018044738A1 (en) * | 2016-08-29 | 2018-03-08 | Advanced Micro Devices, Inc. | Hybrid render with preferred primitive batch binning and sorting |
KR102657586B1 (ko) * | 2016-10-28 | 2024-04-15 | 삼성전자주식회사 | 그래픽스 데이터를 관리하는 방법 및 장치 |
GB2555586B (en) * | 2016-10-31 | 2019-01-02 | Imagination Tech Ltd | Performance profiling in a graphics unit |
GB2575689B (en) * | 2018-07-20 | 2021-04-28 | Advanced Risc Mach Ltd | Using textures in graphics processing systems |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3409987B2 (ja) * | 1997-02-05 | 2003-05-26 | シャープ株式会社 | 3次元画像生成方法および装置とこの方法および装置を用いた3次元画像処理装置 |
US6631423B1 (en) * | 1998-03-31 | 2003-10-07 | Hewlett-Packard Development Company, L.P. | System and method for assessing performance optimizations in a graphics system |
US6252677B1 (en) * | 1998-05-07 | 2001-06-26 | Xerox Corporation | Method and apparatus for rendering object oriented image data using multiple rendering states selected based on imaging operator type |
EP1033683B1 (en) | 1999-03-01 | 2006-03-22 | Canon Kabushiki Kaisha | Image processing apparatus |
US6433788B1 (en) * | 1999-07-30 | 2002-08-13 | Ati International Srl | Dual fragment-cache pixel processing circuit and method therefore |
US6384833B1 (en) * | 1999-08-10 | 2002-05-07 | International Business Machines Corporation | Method and parallelizing geometric processing in a graphics rendering pipeline |
US6717577B1 (en) * | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US6741259B2 (en) * | 2001-03-30 | 2004-05-25 | Webtv Networks, Inc. | Applying multiple texture maps to objects in three-dimensional imaging processes |
US20030002729A1 (en) * | 2001-06-14 | 2003-01-02 | Wittenbrink Craig M. | System for processing overlapping data |
JP3761085B2 (ja) * | 2001-11-27 | 2006-03-29 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置及びその構成部品、レンダリング処理方法 |
US6738069B2 (en) * | 2001-12-31 | 2004-05-18 | Intel Corporation | Efficient graphics state management for zone rendering |
JP2003216943A (ja) * | 2002-01-22 | 2003-07-31 | Toshiba Corp | 画像処理装置、この装置に用いられるコンパイラおよび画像処理方法 |
US6847366B2 (en) * | 2002-03-01 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | System and method utilizing multiple processes to render graphical data |
US6952214B2 (en) * | 2002-07-12 | 2005-10-04 | Sun Microsystems, Inc. | Method for context switching a graphics accelerator comprising multiple rendering pipelines |
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
US6809732B2 (en) * | 2002-07-18 | 2004-10-26 | Nvidia Corporation | Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions |
US6985150B2 (en) * | 2003-03-31 | 2006-01-10 | Sun Microsystems, Inc. | Accelerator control unit configured to manage multiple hardware contexts |
GB0319697D0 (en) * | 2003-08-21 | 2003-09-24 | Falanx Microsystems As | Method of and apparatus for differential encoding and decoding |
US7218291B2 (en) * | 2004-09-13 | 2007-05-15 | Nvidia Corporation | Increased scalability in the fragment shading pipeline |
US7542042B1 (en) * | 2004-11-10 | 2009-06-02 | Nvidia Corporation | Subpicture overlay using fragment shader |
-
2004
- 2004-11-15 GB GB0425204A patent/GB0425204D0/en not_active Ceased
-
2005
- 2005-11-15 GB GB0523277A patent/GB2420261B/en active Active
- 2005-11-15 WO PCT/GB2005/004385 patent/WO2006051330A1/en active Application Filing
- 2005-11-15 US US11/667,656 patent/US8345051B2/en active Active
- 2005-11-15 CN CN200580039002.0A patent/CN101057261B/zh active Active
- 2005-11-15 JP JP2007540720A patent/JP5053857B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2008520021A (ja) | 2008-06-12 |
GB0523277D0 (en) | 2005-12-21 |
US20080100627A1 (en) | 2008-05-01 |
GB0425204D0 (en) | 2004-12-15 |
CN101057261A (zh) | 2007-10-17 |
GB2420261B (en) | 2008-01-30 |
US8345051B2 (en) | 2013-01-01 |
WO2006051330A1 (en) | 2006-05-18 |
CN101057261B (zh) | 2013-08-28 |
GB2420261A (en) | 2006-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5053857B2 (ja) | 3次元グラフィックス処理装置および方法 | |
US10032242B2 (en) | Managing deferred contexts in a cache tiling architecture | |
CN105321199B (zh) | 图形处理流水线及其操作方法与介质 | |
JP5624733B2 (ja) | グラフィックス処理システム | |
US8698820B2 (en) | Graphics processing systems | |
KR100965637B1 (ko) | 상주 밉맵 데이터를 이용한 비상주 밉맵 데이터의 보외법 | |
JP4071196B2 (ja) | ゾーン・レンダリング用の自動メモリ管理 | |
JP4076502B2 (ja) | ゾーン・レンダリングのための効率的なグラフィックス状態管理 | |
US9495721B2 (en) | Efficient super-sampling with per-pixel shader threads | |
US9953455B2 (en) | Handling post-Z coverage data in raster operations | |
KR20170015232A (ko) | 그래픽 처리 시스템 | |
US10083514B2 (en) | Stencil-then-cover path rendering with shared edges | |
US9082212B2 (en) | Programmable blending via multiple pixel shader dispatches | |
CN115311120A (zh) | 图形处理系统 | |
US8237725B1 (en) | Vertex cache map mode for per-vertex state changes | |
US20240169474A1 (en) | Graphics processing | |
CN118052695A (zh) | 图形处理系统 | |
GB2475375A (en) | Dynamic Graphics Rendering Process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081009 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100709 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100716 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100809 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110204 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110215 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20110311 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120619 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120726 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5053857 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150803 Year of fee payment: 3 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |