JP5053857B2 - 3次元グラフィックス処理装置および方法 - Google Patents

3次元グラフィックス処理装置および方法 Download PDF

Info

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
Application number
JP2007540720A
Other languages
English (en)
Other versions
JP2008520021A (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 JP2008520021A publication Critical patent/JP2008520021A/ja
Application granted granted Critical
Publication of JP5053857B2 publication Critical patent/JP5053857B2/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
    • G06T1/00General purpose image data processing
    • G06T1/20Processor 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

本発明は、例えば、ディスプレイ画面上の表示のための3次元(3D)グラフィックスの処理に関し、特に、表示のための3次元グラフィックスの描画に関する。
この技術分野において知られているように、通常、3Dグラフィックス処理は、3Dグラフィックス処理操作がより容易に実行されることを可能とするために、まず、表示される場面を多数の類似の基本的な構成要素(いわゆる“プリミティブ”)に分割することによって実行される。通常、これらの“プリミティブ”は、三角形のような簡単な多角形の形態であり、通常、それらの頂点を定義することによって描画される。
表示される場面が複数のグラフィックスプリミティブに分割されると、通常、グラフィックスプリミティブは、この技術分野において知られているように、通常、“フラグメント”と呼ばれる離散的な図形単位または図形要素にさらに分割され、それらについて(描画操作のような)実際のグラフィックス処理操作が実行される。そのようなグラフィックフラグメントの各々は、プリミティブにおける与えられた位置を表わし、かつ与えられた位置に対応し、実際、当該位置について(色値および深さ値(depth value)のような)データセットを具備する。
各グラフィックスフラグメント(データ要素)は、通常、最終的な表示における単一のピクセル(画素)に対応する(表示される最終的な画像においてピクセルは特異点であるので、通常、3Dグラフィックス処理装置がそれについて動作する“フラグメント”と、表示におけるピクセルとの間に1対1写像が存在する)。しかし、“フラグメント”と“ピクセル”との間の直接の対応が存在しない場合、例えば、最終的な画像を表示する前に描画される画像について縮小のような特定の形態の前処理が実行される場合があり得る。
従って、典型的に実行される3Dグラフィックス処理の2つの形態は、グラフィックス“プリミティブ”(または多角形)の位置データをグラフィックスフラグメントの位置データに“ラスタ化すること(rasterising)”(すなわち、表示される場面において各プリミティブを表わすために使用されるグラフィックスフラグメントの(x,y)位置を決定すること)、および、ディスプレイ画面上に表示するために“ラスタ化された”フラグメントを“描画すること”(すなわち、フラグメントに着色、シェーディング等すること)である。
(3Dグラフィックス作品において、多くの場合、用語“ラスタ化”は、フラグメントへのプリミティブ変換および描画の両方を意味するために使用される。しかし、ここで“ラスタ化”は、プリミティブデータをフラグメントアドレスに変換することのみを指し示すために使用される。)
基本的に、描画処理は、各フラグメントを表示するために必要なデータを導出することを含む。典型的に、そのようなデータは、各フラグメントについての赤、緑、青(RGB)の色値(これらは基本的にディスプレイ上のフラグメントの色を決定する)、および、各フラグメントについてのいわゆる“アルファ” 値(透明値)を含む。
この技術分野において知られているように、典型的に、このデータは、線形方式またはパイプライン方式において順々に、各フラグメント(すなわち、そのフラグメントについてのデータ)について個々の描画処理(ステップ)を実行することによって導出される。従って、例えば、各フラグメントは、まず、例えば、フラグメントが属するプリミティブの頂点について記録された色および透明度のデータに基づいて初期のRGB値およびアルファ値が割り当てられ、そして、次々に、フラグメントデータに、テクスチャリング(texturing)、ぼかし(fogging)、ブレンディング(blending)、等のような操作が実行される。これらの操作は、最後の処理操作の後に、ディスプレイ画面上にそのフラグメントが正しく表示されることを可能とするために、各フラグメントがRGB値およびアルファ値の適切なセットを有するように、各フラグメントについて設定された初期のRGB値およびアルファ値を修正する。このRGB値およびアルファ値の最後のセットは、ディスプレイ画面上のフラグメントの表示のための準備を完了して記憶される。そして、この処理は、現在描画されている場面の領域における全てのフラグメントについて繰り返される。
典型的に個々の描画操作は互いに独立であるので描画処理はこの方式で実行され、描画処理は、損失なく線形、パイプライン方式で実行することが可能であるように、他の描画ステップまたはフラグメントを参照することなく実行することが可能である。そのようなパイプライン方式で(いわゆる“描画パイプライン”で)描画操作を実行することは、“パイプライン”の異なる描画単位が同時に異なるフラグメントについて操作することが可能であり、それによって、描画処理をより効率的にすることを意味する。
正しい描画操作を実行するために、描画処理の各段階は適切に構成される、すなわち、いわゆる、正しい“描画状態”に設定される必要がある。描画状態は、描画処理の段階が各フラグメントについてどのように操作するかを決定し、典型的に、例えば、アンチエイリアシング(anti-aliasing)モード、ブレンディングモード、ステンシルバッファ操作、テクスチャー機能、テクスチャーマップ情報、z−テストモード、RGBバッファ書き込みモード、等のうちの1つまたは複数が、グラフィックスフラグメントを描画するために使用されることを決定する。
典型的に、描画状態は、グラフィックス処理装置を駆動する“ドライバ”ソフトウェアによって判定および設定される。(この技術分野において知られているように、典型的に、グラフィックス処理装置は、(例えば、グラフィックス処理装置のホストシステム上の)“マスタ”デバイスによって制御され、マスタデバイスは、マスタデバイス上で動作するソフトウェア“ドライバ”によって、グラフィックス処理装置と通信し、かつグラフィックス処理装置を制御し、マスタデバイスは、グラフィックス処理装置の使用を要求するマスタデバイス上で動作する(ソフトウェア)アプリケーションから受信したコマンドに応答してグラフィックス処理装置と通信し、かつグラフィックス処理装置を制御する。)
既存の3Dグラフィックス処理システムにおいて、通常、描画処理の全てのステージは、まず、所望の描画状態に設定され、そして、描画するためにグラフィックスフラグメントが送出される。言い換えると、描画器全体が、グラフィックスフラグメントが送信される前に、単一の描画状態に設定される。
しかし、これは、描画器の現在の状態と異なる描画状態を用いてフラグメントが描画されるとき(例えば、第1フラグメントが、異なる描画状態を有するもう1つのプリミティブから描画されるとき)、描画器は、新たなフラグメントが描画可能となる前に、その描画状態を新たな描画状態に変更しなければならない。さらに、描画器における現在の全てのフラグメントの処理が完了するまで、描画器の描画状態は変更することができない。実際、これは、描画状態の変更が必要であるとき、新たなフラグメントが描画可能となる前に、新たな描画状態を要求する新たなフラグメントが“停止”され、既に描画器内にあるフラグメントが描画器を通して“排出”され、描画状態が変更されなければならない。これは、描画器の性能を劣化させる。
従って、プリミティブを描画器に“送出”する前に、それらの描画状態に従って描画されるプリミティブを整列することによって、行う必要がある描画状態の変更の数を減少させる試みが知られている。しかし、そのような整列を用いてもなお、状態の変更は比較的頻繁に発生する傾向がある。
また、例えば、描画状態の変更を実行するために必要な時間を減少させるように、描画器に与えられるプリミティブのデータストリームに描画状態変更コマンドおよびデータを含めることによって、描画器状態の変更が行われる速度を向上させる試みが知られている。しかし、そのような操作は、やはり、描画状態の変更を行う必要があるときはいつでも描画器が停止および排出される必要がある。
その結果、出願人は、特に描画状態の変更の文脈において、描画操作を改善する余地が残っていると考える。
本発明の第1態様によれば、異なる描画状態に設定することが可能な1つまたは複数の描画ユニットを具備する、表示のためのグラフィックスフラグメントを描画する描画器と、複数のデータセットを記憶する手段と、を具備し、各データセットは、前記描画器の描画ユニットを設定するために異なる描画状態を定義し、描画されるグラフィックスフラグメントを前記記憶された描画状態のデータセットの1つと対応付ける手段と、記憶された描画状態のデータセットと対応付けられたグラフィックスフラグメントを、描画するために前記描画器の描画ユニットに送出する手段と、をさらに具備し、前記描画器の描画ユニットの1つまたは複数は、描画されるグラフィックスフラグメントと対応付けられた描画状態のデータセットを判定する手段と、前記判定された描画状態のデータセットに従って前記描画ユニットを設定する手段と、を具備するグラフィックス処理装置が提供される。
本発明の第2態様によれば、表示のためのグラフィックスフラグメントを描画するための1つまたは複数の描画ユニットを含む描画器を有するグラフィックス処理装置を動作させる方法であって、前記描画器の描画ユニットを設定するために1つまたは複数の描画状態を定義するデータセットを記憶するステップと、描画される各フラグメントを前記記憶された描画状態の1つと対応付けるステップと、描画ユニットが、描画されるフラグメントを受信すると、そのフラグメントと対応付けられた描画状態を判定し、前記判定された描画状態に従って設定され、前記受信したフラグメントについて描画操作を実行するステップと、を有する方法が提供される。
本発明において、描画されるグラフィックスフラグメントはそれらの描画状態と対応付けされ、そして、描画器の描画ユニットは、フラグメントを描画するために使用すべき描画状態を判定するためにその対応付けを使用する。言い換えると、描画ユニットは描画するためのフラグメントを受信すると、フラグメントと対応付けられた描画状態に基づいてフラグメントについて使用する描画状態を“探索”し、そして、フラグメントを描画する。これは、任意のフラグメントが描画される前に、描画器全体を与えられた描画状態に設定する必要を回避する。また、描画器の描画ユニットは、描画器における残りの描画ユニットの現在の1つまたは複数の描画状態と独立に、そられ自身をそれらの現在のフラグメントに要求される描画状態に、各々効率的に設定することが可能である。
本発明のこの構成の効果は、描画器の描画ユニットが同時に異なる描画状態を要求するフラグメントについて動作することが可能であるように、描画器の異なるユニットを同時に異なる描画状態に設定することが可能である(好ましくは、設定する)ことである。従って、これは、連続するフラグメントの間で描画状態の変更が発生すると、描画器の他のまたは全てのユニットを新たな描画状態に再設定する必要なしに、異なる描画状態を有するフラグメントが同時に描画器に送信される(かつ描画される)ことを可能とする。
従って、本発明は、描画状態の変更による描画器の停止および排出を減少または除去するために用いることが可能であり、それによって、描画操作の速度および効率を増加させ、かつ、より長い(かつより複雑な)描画器の使用を容易にする(そうでなければ、描画状態の変更が発生するごとに描画器を停止および排出する必要があるならば、使用するには非効率過ぎることになり得る)。より長い、かつ、より複雑な描画器の使用が可能であることは、例えば、“リアルタイム”の描画処理においてさえ、フォンシェーディング(phong shading)のような、より複雑な描画操作を実現することを容易にする。
さらに、本発明は描画状態の変更の有害作用を減少させることが可能であるので、描画する前に描画状態に従ってプリミティブおよびフラグメントを事前に整列する必要を減少または除去することが可能である。そしてこれは、プリミティブおよびフラグメントが描画する前に他の基準に従って整列されることを可能とし、効果的であり得る。例えば、プリミティブは、代わりに、深さに従って整列することが可能である(好ましくは、整列する)。
また、本発明は、上述したように動作することが可能である描画ユニット、および、適切にグラフィックスフラグメントを準備することが可能な描画器とともに使用する装置に及ぶ。
本発明の第3態様によれば、グラフィックス処理装置において使用する描画ユニットであって、描画されるグラフィックスフラグメントと対応付けられた描画状態を判定する手段と、前記判定された描画状態に従って前記描画ユニットを設定する手段と、を具備する描画ユニットが提供される。
本発明の第4態様によれば、グラフィックス処理装置において使用する装置であって、複数のデータセットを記憶する手段を具備し、各データセットは、グラフィックス処理装置の描画ユニットを設定するために異なる描画状態を定義し、描画されるグラフィックスフラグメントを前記記憶された描画状態のデータセットの1つと対応付ける手段と、記憶された描画状態のデータセットと対応付けられたグラフィックスフラグメントを、描画するためにグラフィックス処理装置の描画ユニットに送出する手段と、を具備する装置が提供される。
描画状態を定義するために使用されるデータセットは、上述したように、描画器の描画ユニットのために必要な設定情報を含むべきである。従って、描画ユニットは、好ましくは、使用されるアクティブなテクスチャーマップ(例えば、この技術分野において知られているように、使用されるテクスチャーマップが記憶されるメモリアドレスおよびそのテクスチャーマップのサイズ)、使用されるテクスチャー機能およびブレンディングモード、使用されるz−バッファおよびステンシルバッファモード、および/または、アンチエイリアシングが有効とされるか否か、等のようなデータを指定する。また、望まれるならば、この技術分野において知られているように、ラスタ化のような、他の操作を指定するためのデータを含むことが可能である。
グラフィックス処理装置がピクセルシェーダー(pixel shader)プログラミング(この技術分野において知られているように、ある3Dグラフィックス処理装置は“ピクセルシェーダー”プログラムの使用をサポートし、例えば、特に、フラグメントごとに、より複雑な描画操作を実行するために使用することが可能なピクセルシェーダー処理装置を含むことが可能である)のような操作をサポートする場合、記憶された描画状態データセットは、ピクセルシェーディングプログラムおよび使用されるデータを示すデータを含むことが可能であり、好ましくは、含む。このデータは、例えば、関連するシェーダープログラムが取得されるメモリアドレスおよびそのプログラムのサイズを定義するデータの形式、および/または、描画器のピクセルシェーダー処理装置を設定するために使用される記憶されたピクセルシェーダープログラムへのポインタの形式とすることが可能である。
描画状態データセットは、好ましくは、グラフィックス処理装置のためのドライバソフトウェアによって生成される。それらは、好ましくは、プリミティブごとに指定される。
描画状態データセットは、望まれるように選択および構成することが可能である。それらは、例えば、通常、描画器(例えば、描画パイプライン)について描画状態を定義する場合として構成することが可能である。好ましい実施形態において、データセットは、各データセットが共通の形式を有するように、予め定義されたデータ構造で構成される。最も好ましくは、異なる描画状態を定義するデータセットはデータワードとして構成される。特に好ましい実施形態において、各データセット、例えば、描画状態ワードは、複数の離散的なより小さい部分(例えば、サブワード)に細分され、その各々は、例えば、描画状態の異なる態様を定義する。
描画器の描画ユニットは、望まれるように選択することが可能である。好ましくは、描画器において通常見られる描画ユニットの1つまたは複数を具備する。従って、それらは、好ましくは、例えば、1つまたは複数の関数発生器、テクスチャーマッパー、1つまたは複数のブレンダー、1つまたは複数のぼかし(fogging)ユニット、論理演算ユニット、ピクセルシェーダーユニット、1つまたは複数の出力バッファ、のうちの1つまたは複数を具備する。好ましくは、描画器において複数の描画ユニットが存在する。各描画ユニットは、この技術分野において知られているように、描画ユニットが設定される描画状態に従って、受信するグラフィックスフラグメントを描画する。
好ましい実施形態において、描画器の各描画ユニットは、フラグメントと対応付けられた描画状態を判定し、それ自身をその描画状態に設定する。しかし、これは必須ではなく、従って、もう1つの好ましい実施形態において、個々の描画ユニットのうちのいくつかのみが描画状態“探索”を実行することが可能である。例えば、(全てのブレンディングユニットのような)描画器の選択されたユニットは、一緒にグループにされ、フラグメントがグループ内の第1ユニットにおいて受信されると、そのグループのユニットについて一緒に、単一の描画状態の判定および設定を実行することが可能である。
描画ユニットが描画状態探索を実行するとき、その描画状態について描画状態データセット全体を取得(探索)することが可能であるが、描画ユニットは、それ自身を所望の描画状態に設定可能であることが実際必要である描画状態データセットの部分を探索(取得)するのみであることが好ましい。従って、描画ユニットは、好ましくは、描画状態データセットの選択された部分のみを探索または取得することが可能であり、そうであるべきである。これは、描画するためにフラグメントを受信すると、描画ユニットによって取得されることが必要なデータ量を減少させる。
従って、描画状態データセットの異なる部分は、例えば、描画ユニットは、メモリから描画状態データセット全体を取得する必要なしに適切な描画状態データセットの部分を探索することが可能であるように、データセット全体を探索または取得する必要と関係なく探索することが可能であることが好ましい。
グラフィックスフラグメントが与えられた描画状態データセットと対応付けされる方法は、望まれるように選択することが可能である。最も好ましくは、各フラグメントは、そのフラグメントとともに描画器を通して“渡され”、かつ、そのフラグメントについて使用される描画状態データセットを示すフラグまたはインデックスポインタが割り当てられる。そして、描画ユニットは、記憶された場所から適切な描画状態データを取得するためにフラグメントの描画状態データセットのフラグまたはポインタを使用することが可能である。描画状態データセットのフラグまたはポインタは、好ましくは、描画器を通して“渡される”(RGB値のような)フラグメントについて他のデータと対応付けされる。
フラグまたはポインタは、使用される実際の描画状態データセットを識別することが可能であるが、好ましい実施形態において、以下でさらに説明するように、これをせず、代わりに、データセットが記憶されたメモリ位置を単に示す(指し示す)。これは、使用可能な全ての描画状態データセットの間で識別することが潜在的に必要ないので、フラグまたはポインタの複雑さを減少させる。
特に好ましい実施形態において、(典型的に、与えられたプリミティブは、同一の、単一の描画状態を用いてその全体において描画されるので、)描画されるプリミティブは、そのプリミティブを描画するために使用される描画状態データセットと対応付け(およびフラグ付け)され、そして、プリミティブがフラグメントにラスタ化されると、各フラグメントは、プリミティブに割り当てられた描画状態データセットのポインタまたはフラグが割り当てられる。従って、好ましくは、ラスタ化ステップは、フラグメントを対応する描画状態データセットと対応付けるために使用される。
描画器の描画ユニットによって使用するための描画状態データセットを記憶する方法は、同様に望むように選択することが可能である。描画器が同時に異なる描画状態を有するフラグメントを描画することを容易にするように、複数のデータセットを記憶することが好ましい。
しかし、出願人は、使用において同時に描画ユニットによってアクセス可能であるように、多数の描画状態データセット全部を記憶することは、比較的大きくかつ低速なメモリ装置を必要とすることを認識していた。さらに、各フラグメントと対応付けられた描画状態データセットのポインタまたはフラグは、全ての可能な描画状態を識別するように、必然的に十分に大きくなければならない。
従って、特に好ましい実施形態において、場面を描画するために使用される、より限定され、選択された数の使用され得る描画状態データセットが、描画ユニットによるアクセスのために記憶される。これらの描画状態データセットは、好ましくは、描画器に“ローカル”に、好ましくは、描画器と対応付けられたキャッシュメモリのような、より高速にアクセス可能なローカルメモリユニットに記憶される。これは、ローカルメモリユニットに記憶される描画状態データセットを描画ユニットによってより高速に取得することが可能であり、(それらの間で識別するためにより少ないデータセットが存在するので、)各フラグメントと対応付けられた描画状態データセットのポインタをより短くすることが可能であるという効果を有する。
従って、本発明の装置は、好ましくは、描画器と対応付けられ、かつ、1つまたは複数の(好ましくは複数の)描画状態データセットが記憶される描画器の描画ユニットによってアクセス可能なローカルメモリ、好ましくはローカルキャッシュメモリをさらに含む。さらに、描画ユニットは、好ましくは、描画装置にアクセス可能なもう1つのメモリからよりも、このローカルメモリから描画状態データセットを取得するために探索するように構成される。
描画ユニットがアクセスするメモリ、例えばローカルキャッシュメモリにおいて描画ユニットによるアクセスのために記憶される描画状態データセットの数は、望まれるように選択することが可能である。上述したように、記憶されるそのようなデータセットがより多くなると、描画器が同時に処理することが可能な異なる描画状態がより多くなり、従って、描画状態の変更による描画器の停止がより少なくなる傾向がある。一方、記憶されるデータセットがより多くなると、必要なメモリがより大きくなり、システムがより複雑になる。
記憶するデータセットの数は、好ましくは、より長い描画器についてより多くの描画状態が記憶されるように、描画器の長さに基づいて選択される。例えば、描画状態の変更による停止が発生し得ないことを保証するために、描画器において個々に設定可能な描画ユニット(または共通に設定されるユニットのグループ)が存在するのと同じくらい多くの描画状態データセットを記憶すべきである。
出願人は、(比較的少ない)描画器の大多数の実際の実装について、4つの異なる描画状態についてデータを記憶することが、描画状態の変更による描画器の停止の発生を除去することを発見した。8または16の描画状態が記憶されるならば、描画器の停止の可能性はさらに減少する。従って、好ましくは、4から16、より好ましくは4、8、または16、最も好ましくは4の描画状態データセットが、描画ユニットによるアクセスのために記憶される。
描画器の描画ユニットによるアクセスのために限定された数の描画状態データセットが記憶され、特に、描画器のローカルメモリにそれらが記憶される構成において、例えば、ローカルの限定されたメモリが必要なデータセットを記憶していないならば、必要ならばそれらのデータセットが利用可能であるように、当該場面を描画するために必要となり得るまたは必要な描画状態データセットのより多く(好ましくは全て)を、描画器にアクセス可能な、外部メモリのような、もう1つのメモリに記憶することが好ましい。最も好ましくは、データセットは、描画するために必要とされるときに、(全ての)データセットを記憶するより大きなメモリから(その全体の容量に従う)より限定された(ローカルの)メモリにコピーすることが可能である。
そのような構成はそれ自身、新規かつ効果的であると考えられる。従って、本発明の第5態様によれば、特定の描画状態に設定することが可能な1つまたは複数の描画ユニットを有する描画器を含むグラフィックス処理装置を動作させる方法であって、描画される場面を描画するために使用される異なる描画状態を定義する複数のデータセットを第1メモリ手段に記憶するステップと、前記複数の描画状態のデータセットのうちの選択された数のデータセットを前記描画器の描画ユニットによってアクセス可能な第2メモリ手段に記憶するステップと、を有する方法が提供される。
本発明の第6態様によれば、特定の描画状態に設定することが可能な1つまたは複数の描画ユニットを有する描画器を含むグラフィックス処理システムであって、描画される場面を描画するために使用される異なる描画状態を定義する複数のデータセットを記憶する第1メモリ手段と、前記複数のデータセットのうちの選択された数のデータセットを記憶するために前記描画器の描画ユニットによってアクセス可能な第2メモリ手段と、を具備するグラフィックス処理システムが提供される。
上述したように、本発明のこれらの態様および実施形態において、描画器の描画ユニットは、描画状態データセットのサブセットを記憶するメモリにアクセスするのみであることが好ましい。
描画器の描画ユニットによってアクセス可能であるように限定された数の描画状態データセットのみが記憶される場合、上述したように、描画ユニットによって現在アクセス可能でない描画状態を要求するフラグメントが描画されることが必要となる可能性がある。その場合、上述したように、その新たな描画状態が、使用するために描画ユニットにアクセス可能なメモリに書き込み可能であることが好ましい。しかし、出願人は、適切な描画状態データセットが描画ユニットに利用可能となるまで、好ましくは、描画するためにフラグメントが渡されるべきでないと認識している。
従って、特に好ましい実施形態において、(例えば、描画器のローカルメモリに記憶された、)フラグメントと対応付けられた描画状態データセットが描画ユニットにアクセス可能であるならば、描画するためにフラグメントが“送出”されるのみである。必要な描画状態データセットが利用可能でない場合において、関連する描画状態データセットが描画ユニットに利用可能となるまで、フラグメントの処理は中止(停止)されることが好ましい。(当該フラグメントの処理は停止されるが、必要な描画状態データセットが利用可能である他のフラグメントの処理は継続することが可能であり、継続することが好ましいことに留意すべきである。言い換えると、描画処理(パイプライン)は停止せず、当該フラグメント(プリミティブ)のみ停止する。)
上述したように、実際、与えられたプリミティブについての全てのフラグメントは同一の描画状態を有するので、(例えば、描画器のローカルメモリに記憶された、)プリミティブと対応付けられた描画状態データセットが描画ユニットにアクセス可能であるか否かを判定することによってこの操作を実行することが好ましい。描画状態データセットが利用可能であるならば、プリミティブは、フラグメントへのラスタ化および描画のために送出することが可能である。そうでないならば、必要な描画状態データセットが利用可能となるまで、プリミティブは引き止めされる。
フラグメント(プリミティブ)のこの停止は、パイプライン全体(全ての新たなフラグメントの処理)が停止する従来のシステムと対照をなし、本発明において、1つ(または複数)のフラグメント(プリミティブ)の処理が停止しても、適切な描画状態データセットが描画ユニットにアクセス可能な続くフラグメント(プリミティブ)の処理は継続することが望ましい。
従って、特に好ましい実施形態において、描画するためにプリミティブ(またはフラグメント)が受信されると、まず、要求される描画状態データセットが描画器の描画ユニットにアクセス可能な(例えば、ローカル)メモリに記憶されているかを調べる検査が行われる。記憶されているならば、プリミティブ(フラグメント)は通常のように処理するために描画器に渡すことが可能である。描画状態データセットがメモリに記憶されていないならば、適切な描画状態データセットが描画ユニットによってアクセス可能なメモリにおいて利用可能となるまで、プリミティブ(またはフラグメント)の処理は停止し、適切な描画状態データセットが描画ユニットによってアクセス可能なメモリにおいて利用可能となったとき、プリミティブ(フラグメント)は描画するために送信することが可能である。
従って、新たな描画状態データセットが要求されるとき、例えば、(ローカル)メモリにまだ存在しない新たな描画状態を要求するプリミティブまたはフラグメントを描画するとき、描画器の描画ユニットにアクセス可能なメモリに新たな描画状態データセットをロードすることが可能であることが好ましい。上述したように、新たな描画状態データセットのそのようなロードは、予期され、必要とされ得る(全ての)描画状態データセットの既存の記憶からなされることが好ましい。
そのような構成において、描画ユニットにアクセス可能なメモリに新たなデータセットを記憶するための空き容量が存在する場合、新たなデータセットは単純にメモリにロードすることが可能である。しかし、描画状態データセットのためのメモリ容量が全て使用中であるならば、新たなデータセットは既存の記憶された描画状態データセットを置換しなければならない。
後者の場合において、描画ユニットにアクセス可能な(例えば、ローカル)メモリにロードされる新たな描画状態データセットが既に記憶された描画状態データセットを置換する場合、既存の描画状態データセットが描画するためにもはや必要でなくなるまで(例えば、フラグメントが既に描画器に入力され、または、描画器への送信が進行していることが分かっている間は)、既に記憶された描画状態データセットを置換しないことが好ましい。
その時に既存の記憶されたデータセットを置換することが可能でないならば、既存の記憶された描画状態データセットがもはや必要とされず、置換することが可能である時を判定するために、システムはメモリの監視を継続することが好ましい。
従って、本発明による方法および装置は、例えば、描画ユニットにアクセス可能なメモリに既に記憶された描画状態データセットがもはや使用中でないまたは必要とされていないか否か(従って、置換することが可能であるか否か)、および、もはや使用中でないまたは必要とされていない時を判定することが可能であるように、描画ユニットにアクセス可能なメモリに記憶された描画状態データセットの使用を監視するためのステップまたは手段を含むことが好ましい。好ましくは、例えば、当該データセットを必要とするまたは後に必要とするフラグメントが、描画器に存在するか否か、または、描画器に送信されることが予期されるか否かを判定するように、そのような“使用”は、描画器を通して記憶されたデータセットを用いたフラグメントおよび/またはプリミティブの進行を追跡することによって監視することが最も好ましい。そのようなフラグメントが存在しないと判定すると、描画状態データセットは置換することが可能である。
そのような構成はそれ自身、新規かつ効果的であると考えられる。従って、本発明の第7態様によれば、グラフィックス描画器を動作させる方法であって、描画されるグラフィックスフラグメントを特定の描画状態と対応付けるステップと、特定の1つまたは複数の描画状態と対応付けられたグラフィックスフラグメントの前記描画器を通る進行を追跡するステップと、を有する方法が提供される。
本発明の第8態様によれば、描画器と、描画されるグラフィックスフラグメントを特定の描画状態と対応付ける手段と、特定の1つまたは複数の描画状態と対応付けられたグラフィックスフラグメントの前記描画器を通る進行を追跡する手段と、を具備するグラフィックス処理装置が提供される。
各々の記憶されたデータセットを用いたフラグメントの進行の追跡は、好ましくは、最後のそのようなフラグメントが描画器を解放する時を少なくとも判定し、そのデータセットを用いたプリミティブが現在描画されようとしているか否か(それは、そのデータセットを用いてフラグメントが描画器に送信されようとしているか否かを示す)を判定することを含む。
特に好ましい実施形態において、例えば、各々の記憶された描画状態データセットを用いた、フラグメントの進行は、フラグメントおよび/またはプリミティブの進行を追跡する一連のカウンタを保持することによって実行される。
最も好ましくは、各々の記憶された描画状態データセットについて2つのカウンタが保持される。第1カウンタであるプリミティブカウンタは、好ましくは、描画状態データセットを用いるプリミティブが描画されるために送信されるごとに増加(または減少)し、ラスタ化器が特定の描画状態データセットを用いるプリミティブについて最後のフラグメントを送出するごとに減少(または増加)する。第2カウンタは“フラグメント”カウンタであり、描画状態データセットを用いるフラグメントが描画器に送出されるごとに増加(または減少)し、その描画状態データセットを用いるフラグメントの描画が完了するごとに減少(または増加)する。望まれるならば、両方のカウンタがゼロであるとき、描画状態データセットは現在使用中でなく、従って置換することが可能であることを示す。
好ましい実施形態において、本発明の装置は、描画ユニットにアクセス可能なメモリにおける描画状態データセットの記憶(および置換)、および、ラスタ化するためのプリミティブおよび描画するためのフラグメントの適切な送出を制御するリソース割当器を含む。
本発明において、この技術分野において知られているように、プリミティブを描画する前に、描画器状態によってプリミティブを整列することが可能である。それは、描画器状態の変更の発生のために描画が停止する危険性をさらに減少させる。しかし、上述したように、本発明の重要な効果は、描画する前に描画状態によってプリミティブを整列する必要を除去するために用いることが可能であることである。従って、好ましい実施形態において、プリミティブは、描画する前に、もう1つの基準によって(すなわち、描画状態によってではなく)整列される。最も好ましくは、プリミティブは描画する前に深さによって整列される。
上記から理解されるように、本発明は、その好ましい実施形態において、少なくとも、与えられた描画状態データセットを描画される各フラグメントに結合し、描画器の描画ユニットは、フラグメントに結合された描画状態を受信するとそれに従って描画ユニット自身を設定する。言い換えると、フラグメントを受信すると、描画ユニットは、要求される描画状態を判定し、フラグメントを描画する前にその描画状態に自分自身を設定する。
従って、本発明の第9態様によれば、グラフィックス処理のための描画器において、描画するためのグラフィックスフラグメントは、それぞれの記憶された描画状態のデータセットに結合され、前記描画器の描画ユニットは、フラグメントを受信すると前記フラグメントに結合された前記描画状態に従って自身を設定する描画器が提供される。
さらに、本発明は、描画器の描画ユニットが同時に異なる描画状態に設定されることを可能とし、異なる描画状態を要求するフラグメントが同時に描画器に送出され存在することを可能とする。
従って、本発明の第10態様によれば、グラフィックス処理のための描画器において、前記描画器の異なる描画ユニットは、同時に異なる描画状態に設定することが可能である描画器が提供される。
本発明は、描画器の任意の形態または設定に適用可能であり、上記から理解されるが、特に、“パイプライン”構成を有する描画器に適用可能であり、その場合、描画器は描画パイプラインの形態である。直接モード描画、遅延モード描画、タイルに基づく描画、等のような全ての形態の描画に適用可能である。
上記から理解されるように、本発明は、特に、3Dグラフィックス処理装置および処理デバイス、従って、ここで説明した本発明の任意の1つまたは複数の態様に従う装置を含む、または、ここで説明した本発明の任意の1つまたは複数の態様に従って動作する装置を含む、3Dグラフィックス処理装置または3Dグラフィックス処理プラットフォームに及ぶ。上述した特定の機能を実行するために必要な任意のハードウェアに従って、そのような3Dグラフィックス処理装置は、あるいは、3Dグラフィックス処理装置が含む任意の1つまたは複数または全ての通常の機能ユニット等を含むことが可能である。
この技術分野の当業者によって理解されるように、説明された本発明の態様および実施形態の全ては、ここで説明される好ましいかつ選択的な特徴の1つまたは複数または全てを含むことが可能である。
本発明による方法は、少なくとも部分的にソフトウェア、例えばコンピュータプログラムを用いて実装することが可能である。従って、さらなる態様から見ると、本発明は、データ処理手段にインストールされると、ここで説明された方法を実行するように具体的に構成されるコンピュータソフトウェア、データ処理手段において実行されるときに上述した方法を実行するためのコンピュータソフトウェアコード部分を有するコンピュータプログラムの構成要素(computer program element)、データ処理システムにおいて実行されるときに上述した1つまたは複数の方法の全てのステップを実行するように構成されたコード手段を有するコンピュータプログラムを提供することが理解される。また、本発明は、データ処理手段を具備するグラフィックス処理装置、描画器、またはマイクロプロセッサシステムを動作させるために使用されるとき、前記データ処理手段と結合して、前記処理装置、描画器、またはシステムに、本発明の方法のステップを実行させるソフトウェアを含むコンピュータソフトウェアの運搬体(carrier)に及ぶ。そのようなコンピュータソフトウェアの運搬体は、ROMチップ、CD−ROM、またはディスクのような物理的記憶媒体、または、導線上の電子的信号、光信号、または衛星等への無線信号、等の信号とすることが可能である。
さらに、本発明による方法の全てのステップがコンピュータソフトウェアによって実行される必要はなく、従って、さらに広い態様から、本発明は、ここで説明された方法のステップの少なくとも1つを実行するためのコンピュータソフトウェアおよびコンピュータソフトウェアの運搬体に導入されたそのようなソフトウェアを提供することが理解される。
従って、本発明は、コンピュータシステムとともに使用するためのコンピュータプログラム製品として適切に実現することが可能である。そのような実装は、コンピュータ読み取り可能な媒体、例えば、ディスケット、CD−ROM、ROM、またはハードディスクのような有形の媒体に定着された、または、モデムまたは他のインタフェース装置を介して、限定しないが光またはアナログの通信回線を含む有形の媒体上で、または、限定しないがマイクロ波、赤外線、または他の伝送技術を含む無線技術を用いて無形に、コンピュータシステムに送信可能な、一連のコンピュータ読み取り可能な命令を含むことが可能である。一連のコンピュータ読み取り可能な命令は、前述の機能の全部または一部を実現する。
この技術分野の当業者は、そのようなコンピュータ読み取り可能な命令は、多くのコンピュータアーキテクチャまたはオペレーティングシステムとともに使用するために多数のプログラム言語で記述することが可能であることを理解する。さらに、そのような命令は、限定しないが、半導体、磁気、または光を含む現在または将来の任意のメモリ技術を用いて記憶すること、または、限定しないが光、赤外線、またはマイクロ波を含む現在および将来の任意の通信技術を用いて伝送することが可能である。そのようなコンピュータプログラム製品は、添付の印刷されたまたは電子的なドキュメントを伴う取り外し可能な媒体、例えばシステムROM上のまたは固定ディスク上の、例えば、収縮包装されたソフトウェア、コンピュータシステムに予めロードされて配布し、または、ネットワーク、例えば、インターネットまたはワールドワイドウェブ上で、サーバまたは電子掲示板から配布することが考えられる。
ここで、本発明の多数の好ましい実施形態が、単に例として添付図面を参照して説明される。
上述したように、本発明は、3Dグラフィックス処理装置の描画操作に関する。
この技術分野において知られているように、3Dグラフィックスオブジェクトが描画されるとき、通常はまず、それらは一連のプリミティブ(多角形)として定義され、そして、プリミティブはグラフィックスフラグメントに分割され、そして、フラグメントは順番に描画される。通常の3D描画操作の間に、描画器は、フラグメントを正しく表示することができるように、(例えば)各フラグメントと対応付けられたRGBデータを修正する。フラグメントが描画器を完全に移動すると、それらの対応するデータ値はメモリに記憶され、表示のための準備が完了する。
また、各プリミティブは、典型的に、プリミティブがどのようにラスタ化および描画されるかを定義する描画状態(プリミティブのフラグメントを描画するために使用される、例えば、テクスチャーモード、ブレンディングモード、z−テストモード、アンチエイリアシングモード、等)と対応付けされる。通常の経過において、与えられたプリミティブについての描画状態は、3Dグラフィックス処理装置を用いるホストシステム上で動作するソフトウェアドライバによって設定される。典型的に、このドライバは、異なる描画状態を定義するデータセットを定義し、そのデータセットは、所望のときに描画器の描画ユニットを正しい描画状態に設定するために用いることができるような方法で記憶される。
図1および図2は、本発明によって動作することが可能な3Dグラフィックス処理プラットフォームの実施形態を表わす図である。図1は、グラフィックス処理システム全体を表わす。図2は、より詳細に描画器(描画パイプライン)の動作を表わす。
本発明によるこの実施形態において、描画される各フラグメントは与えられた描画状態と対応付けられ、そして、描画器の各描画ユニットは、描画するためのフラグメントを受信するとフラグメントについての描画状態を“探索”する。
図1に表わされているように、(以下でさらに説明されるように、)グラフィックス処理システム25は、描画するためのフラグメントを受信する描画パイプライン1の形態の描画器、フラグメントを描画するために描画パイプライン1の描画ユニットがそれら自身を設定することを可能とするために、描画パイプライン1の描画ユニットによるアクセスのために描画状態を定義するデータを記憶するキャッシュメモリ5を含む。
また、グラフィックス処理システムは、((この技術分野において知られているように)描画されるプリミティブについての頂点等へのポインタを含むプリミティブリスト要素を読み取るための)プリミティブリスト読取器20、((プリミティブがラスタ化および描画されるように準備が完了しているときにプリミティブの頂点を決定するために)プリミティブリスト読取器20によって読み取られたプリミティブリストにおけるポインタによって指し示される頂点データをフェッチするための)頂点ローダー21、(頂点ローダー21から受信されたプリミティブデータ上に三角形配置(triangle set up)を実行するための)三角形配置ユニット22、(この技術分野において知られているように、プリミティブデータを描画するためにプリミティブデータをフラグメント位置に変換するための)ラスタ化器(rasteriser)23のような、3Dグラフィックス処理システムにおいて典型的に存在する多数の他の機能ユニットを含む。
また、図1に表わされているシステムは、システムの各ユニットと通信し、特に、描画器状態キャッシュメモリ5における描画状態データセットの記憶、および、システムの頂点ローディング、三角形配置、ラスタ化、描画パイプラインのステージへのプリミティブ(従って、フラグメント)の送出を制御するために動作することが可能なリソース割当器24を含む。
キャッシュメモリ5は、描画器状態“ワード”(renderer state word(RSW))の形式で異なる描画状態を定義するデータセットを記憶する。各描画器状態ワードは、アクティブなテクスチャーマップ、使用するテクスチャー機能およびブレンディングモード、使用するz−バッファおよびステンシルバッファモード、アンチエイリアシングが有効であるか否かのようなデータを指定する、描画パイプライン1のための設定情報を含む。また、描画器状態“ワード”は、1つまたは複数のフラグメントについて使用されるピクセルシェーダープログラム(およびデータ)を示すデータを含むことが可能である。
この実施形態において、各描画器状態ワードは8個のサブワードからなり、各々は32ビットの大きさであり、連続したメモリに記憶される。しかし、この技術分野の当業者に理解されるように、望むならば、異なる構成を用いることが可能である。
描画器状態ワードキャッシュ5は、4つのレジスタまたはラインを含み、各々が1つの描画器状態ワードを記憶することが可能であり、すなわち、描画器状態ワードキャッシュ5は、いつでも4つの異なる描画器状態ワードを記憶することが可能である。これは、4つの現在の記憶された描画器状態ワードのうち任意の1つと対応付けられたフラグメントが描画パイプライン1を通して進行することを可能とする。(この技術分野の当業者によって理解されるように、望むならば、描画器状態ワードキャッシュ5において他の数の状態ワードレジスタを使用することが可能である。)
描画器状態ワードキャッシュ5に記憶された描画器状態ワードは変更することが可能である。これは、リソース割当器24の制御のもとで行われる。
描画器状態ワードキャッシュ5における描画器状態ワードの記憶および置換を制御するために、リソース割当器24は、描画器状態ワードキャッシュ5において記憶される与えられた描画器状態ワードと対応付けられたフラグメントの進行を追跡することを可能とするために、各描画器状態ワードレジスタ(ライン)について2つのカウンタ、プリミティブカウンタおよびフラグメントカウンタを保持する。
プリミティブカウンタは、対応する描画器状態ワードを必要とするプリミティブが、実際、システムにロードされるごとに増加し、ラスタ化器23が、その描画器状態ワードを用いるプリミティブについて最後のフラグメントを送出するごとに減少する。これは、図1に表わされているように、三角形配置ユニットが配置のためにプリミティブを受信すると、そのプリミティブに結び付けられた描画器状態ワードについてプリミティブカウンタを増加させる三角形配置ユニット、および、プリミティブからの最後のフラグメントがラスタ化器23を解放すると、対応する描画器状態ワードについて多角形カウンタ減少信号をリソース割当器24に送出するラスタ化器23によって実行される。
フラグメントカウンタは同様に動作し、描画パイプライン1に送出される対応する描画器状態ワードを用いる各フラグメントについて1だけ増加し、その描画器状態ワードを用いるフラグメントが完了するごとに1だけ減少する。これは、図1に表わされているように、フラグメントがパイプラインに入ると、対応する描画器状態ワードについてフラグメントカウンタ増加信号を送出し、フラグメントがパイプラインを解放すると減少信号を送出する描画パイプラインによって実行される。
リソース割当器24は、描画器状態ワードキャッシュレジスタラインが“解除”可能であるか否か判定するためにこれらのカウンタを用いる(すなわち、対応する描画器状態ワードは、新たな描画器状態ワードで置換することが可能である)。プリミティブカウンタおよびフラグメントカウンタの両方がゼロである(かつ、描画される新たな多角形がその特定の描画器状態ワードを用いない(または、プリミティブリストが終了したならば、現在のプリミティブが存在しない))とき、必要ならば、その描画器状態ワードを、必要とされる新たな描画器状態ワードで上書きすることが可能であるように、リソース割当器24はその特定の描画器状態ワードのために描画器状態ワードレジスタを“解除”する。このようにして、リソース割当器24は、その描画器状態ワードと対応付けられた全ての現在のフラグメントが描画パイプライン1を完了するまで、描画器状態ワードキャッシュ5に既に記憶された描画器状態ワードは置換できないことを保証する。
本実施形態の動作において、場面が描画されるとき、この技術分野において知られているように、ドライバソフトウェアは、描画されるプリミティブを定義するために、(プリミティブデータごとの)必要な頂点データ等を準備および記憶する。また、場面全体を描画するために必要な描画状態データセット(描画器状態ワード)を生成および記憶する。描画状態データセットは、任意の適切な方法で生成および記憶することが可能である。好ましい構成において、プリミティブについて必要とされる描画状態データセットが、より早いプリミティブについて既に生成されたか否かをドライバソフトウェアが判定することを可能とするように描画状態データセットが生成されるので、描画状態データセットの記録(例えば、リスト)は、好ましくはソフトウェアで保持される。これは、ドライバソフトウェアが、同一の描画状態データセットのいくつかの複製を不必要に生成することを減少させまたは防止するために役立つ。
必要なデータが生成および記憶されると、この技術分野において知られているように、ドライバソフトウェアは、(プリミティブが描画されることを可能とするように、プリミティブリスト読取器20による取得のために)場面のために描画される各プリミティブについて、記憶された頂点データ等へのポインタを含む適切なプリミティブリストを準備する。
また、ドライバソフトウェアは、各プリミティブを、それを描画するために使用される適切な描画器状態ワード(描画状態データ)に結合するように、各プリミティブを描画するために使用される記憶された描画器状態ワードデータへのポインタをプリミティブリストに含む。(従って、この構成において、描画状態データセットはプリミティブごとに指定されるが、これは必須ではなく、望むならば、他の構成を用いることが可能である。)
場面が描画されているときドライバソフトウェアに復帰する必要を回避するように、プリミティブが描画するために送出される前に、場面全体(またはフレーム部分、例えば、タイル)を描画するために必要な、描画器状態ワードを含む、全てのプリミティブデータおよびプリミティブリストが準備されることが好ましい。しかし、望むならば、他の構成を用いることが可能である。
プリミティブデータおよびプリミティブリストが準備および記憶されると、プリミティブを描画することが可能である。この処理における第1ステップは、プリミティブリスト読取器20が、プリミティブについて関連するプリミティブリスト要素(すなわち、頂点データ、描画器状態ワードポインタ、等)を、それらが記憶されたメモリから読み取ることである。そして、プリミティブリスト読取器20は、三角形配置操作のために(すなわち、プリミティブを描画することが可能であるように、)リソース割当器24に要求を送信する。
そのような要求を受信すると、リソース割当器24は、当該プリミティブと対応付けられた描画器状態ワードが描画器状態ワードキャッシュ5に既に記憶されているか否か判定する。要求される描画器状態ワードがキャッシュ5に既に記憶されているならば、リソース割当器24は三角形配置操作のためにプリミティブを渡す。(従って、描画器状態ワードはプリミティブごとに定義されるが、システムは、そうすることが適切であるとき、1つのプリミティブから次のプリミティブへ描画器状態ワードをキャッシュするように動作する。)
一方、リソース割当器24が、プリミティブリスト読取器20から三角形配置操作についての要求を受信したときに、要求される描画器状態ワードが描画器状態ワードキャッシュ5にまだ記憶されていないことを発見したならば、描画器状態ワードキャッシュ5のレジスタ(ライン)が解除されるまでプリミティブの処理を停止し、そして、描画器状態ワードキャッシュ5において関連する描画器状態ワードを記憶し、プリミティブの処理を継続する。
後者の動作を行うために、リソース割当器24は、上述したように、各描画器状態ワードレジスタについてのプリミティブカウンタおよびフラグメントカウンタを用いて、描画器状態ワードキャッシュ5において描画器状態ワードのための空き容量が存在するか否か、および、存在する時を判定する(すなわち、少なくとも1つのキャッシュレジスタが“解除”されたか否かを判定する)。
描画器状態ワードキャッシュ5において空きレジスタが存在すると判定したとき、リソース割当器24は、新たな描画器状態ワードが記憶されたメモリからそれをフェッチし、それを空きの描画器状態ワードキャッシュレジスタにロードする。
リソース割当器24は、当該プリミティブについて関連する描画器状態ワードが描画器状態ワードキャッシュ5に記憶されている(または、描画器状態ワードキャッシュ5にそれを記憶した)と判定すると、そのプリミティブについて描画器状態ワードキャッシュ5に記憶された描画器状態ワードが識別されることを可能とするために、描画器状態ワードキャッシュ5への適切な描画器状態ワードインデックス(ポインタ)をプリミティブに割り当てる。
本実施形態において、リソース割当器24が各プリミティブと対応づける描画器状態ワードインデックスは、単に描画器状態ワードキャッシュレジスタへのポインタであり、要求される描画器状態ワードを記憶する。従って、このインデックスは、(キャッシュ5は、4つの描画器状態ワードレジスタを有するので、)描画器状態ワードキャッシュ5への2ビットのインデックスである。(もちろん、他のサイズの描画器状態ワードキャッシュ5について、他のインデックス構成を用いることが可能である。また、望むならば、描画器状態ワードインデックスは、記憶されるメモリ位置(レジスタ)を単に指し示すよりも、使用する実際の描画器状態ワードを示すことが可能である。)
そして、プリミティブは、三角形配置操作および描画するために渡され、システムを通して進行する。
そして、頂点ローダー21は、プリミティブリスト読取器20によって読み取られるプリミティブリストにおけるポインタによって指し示される頂点データをフェッチし、三角形配置ステージ22は、プリミティブデータ上に三角形配置を実行する。
そして、プリミティブは、ラスタ化するためにラスタ化器23に渡される。この技術分野において知られているように、ラスタ化器23は、描画するためにプリミティブデータをフラグメント位置に変換する。また、ラスタ化器23は、フラグメントと対応付けられた描画器状態ワード(多角形リスト読取器20によって読み取られたリスト要素におけるプリミティブと対応付けられたのと同一の描画器状態ワード)を記憶する描画器状態ワードキャッシュ5レジスタを示すインデックスポインタを各フラグメントと対応付ける。
そして、ラスタ化されたフラグメントは、描画するために描画パイプライン1に渡される。上述したように、プリミティブからのフラグメントは描画されるので、描画パイプラインの描画ユニットが適切な描画状態に設定されるように、各フラグメントの描画器状態ワードインデックスは描画パイプラインにおける各ステップにおいて描画器状態ワード探索を実行するために使用される。
フラグメントが描画されると、表示する前に記憶するための、タイルバッファのような適切なメモリに渡される。
図2は、描画パイプライン1の動作をより詳細に表わす。図2に表されているように、描画パイプライン1は、多数の異なる機能ブロックまたは描画ユニット2、3を有し、描画するためのフラグメント4を受信する。これらの描画ユニット2、3は、この技術分野において知られているように、関数発生器、テクスチャーマッパー、ブレンダー、ぼかし(fogging)ユニット、等のような、任意の適切なユニットを具備することが可能である。
描画パイプライン1の各描画ユニット2、3は、受信したフラグメントについて描画操作を実行する機能ブロック10(従って、適切な描画状態に設定される必要がある)、描画器状態ワード(RSW)キャッシュ5から適切な描画状態データを探索するために用いることが可能な描画器状態ワード(RSW)インタフェース11の両方を含む。
図2に表されているように、各フラグメントは、とりわけ、フラグメントインデックス、描画器状態ワード(RSW)インデックス、およびフラグメントを描画するために必要な任意の他のフラグメントデータ(この技術分野において知られているように、RGB値のような任意の適切なデータとすることが可能である)を示すフラグメントデータ6とともに描画パイプライン1に与えられる。
上述したように、描画器状態ワードインデックス8は、描画器状態ワードキャッシュ5における描画器状態ワードレジスタのいずれかを示す2ビットのポインタであり、描画器状態ワードキャッシュ5における描画器状態ワードレジスタは、当該フラグメントを描画するために用いなければならない描画器状態ワードを記憶する。
描画パイプライン1の描画ユニット2、3が描画されるフラグメントを受信すると、まず、その描画器状態ワードインタフェース11を用いて、フラグメント4と対応付けられた描画器状態ワードインデックス8を使用して、描画器状態ワードキャッシュ5から関連する描画状態データを探索する。そして、そのデータを用いてその機能ブロック10を設定し、フラグメントを描画する。この実施形態において、機能ブロック10は、(望むならば、描画器状態ワード全体を探索することが可能であるが、)それらの動作に関連する描画器状態ワードの部分を探索および取得するのみである。
次のフラグメントが描画ユニットによって受信されると、そのフラグメントと対応付けられた描画器状態ワードインデックス8を再び検査し、描画器状態ワードキャッシュ5から関連する設定データを取得し、その機能ブロック10を設定し、そして、フラグメントを描画する、等である。
このようにして、描画状態の変更が発生するときはいつも描画パイプライン全体を再設定する必要は回避される。さらに、描画パイプライン1は、(描画器状態ワードキャッシュ5に記憶された異なる描画器状態ワードの数に応じて、)同時に異なる描画状態を有するフラグメントを処理することが可能である。
図2に表されているように、フラグメントが受信されるごとに描画器状態の“探索”を実行するための追加のハードウェアが必要とされ得るが、従来の描画システムと比較して、描画操作の速度または効率に関して追加のコストは存在しないことに留意すべきである。
図3および図4は、本発明によって構成される3Dグラフィックス処理システムのもう1つの例を表わす。
図3は、特に、描画パイプライン1の構成をより詳細に表わす。図3に表されているように、グラフィックスシステムは、再び、図1に関して上述したように動作するリソース割当器24、この実施形態において2つの描画器状態ワードレジスタを含むものとして表わされている描画器状態ワードキャッシュ5、上述したように動作するラスタ化器23、描画パイプライン1における多数の描画ユニットを含む。
また、描画器入力ステージ30が図示され、これは上述したように、基本的に、描画器状態ワードデータを含むプリミティブリスト情報を受信し、そして、ラスタ化するためにラスタ化器23に適切なプリミティブデータを与える。
ラスタ化器23は、この技術分野において知られているように、描画器入力ステージ30に与えられたグラフィックスプリミティブをグラフィックスフラグメントに変換する。ラスタ化器23は、描画器入力ステージ30によって決定された(または描画器入力ステージ30に与えられた)線分を用いて、一連の(x,y)座標の組を生成し、各組は、プリミティブによって覆われる全ての(x,y)位置について、プリミティブを描画するために使用されるグラフィックスフラグメントの位置に対応する。
次のステージは、1つまたは複数の関数発生器31であり、この技術分野において知られているように、関数発生器31は、プリミティブの各フラグメントを描画するために必要な補間データを決定するために、ラスタ化器23によって決定されるx,yフラグメント位置と一緒に、とりわけ、描画されるプリミティブの各頂点と対応付けられたデータを用いて、グラフィックスフラグメントを描画するために、例えば、そのテクスチャー、色等を設定および変更等するために、関数を補間する。そのような補間されるデータは、通常、テクスチャーマップ座標、原色、原色の混合、ぼかし(fog)、のうちの1つまたは2つである。
そして、描画パイプライン1は、テクスチャーマッパーステージ32を含む。このテクスチャーマッパー32は、この技術分野において知られているように、メモリ(図示しない)からテクスチャーマップデータを取得し、各グラフィックスフラグメントについて、決定されたテクスチャー座標データ(s,t)に従って、描画パイプライン1に渡すグラフィックスフラグメントにテクスチャーマップデータを適用する。テクスチャーマッパー32は、テクスチャーマッパー32によるより高速な取得のためにテクスチャーマップデータを記憶することが可能なテクスチャーマップキャッシュメモリを含むことが可能である
次のステージは、ブレンディングステージ33である。このステージは、この技術分野において知られているように、その入力として(フラグメントのシェーディングおよびテクスチャーマッピングの後に)描画パイプライン1から色値またはフラグメントの値、および、対応するフラグメントx,yについて描画パイプラインの出力バッファ34(以下を参照)に存在する対応する色値を取得し、2つのフラグメントの色値の混合されたものを生成する。
描画パイプライン1の最後のステージは、一揃いの出力バッファ34であり、描画されるグラフィックスフラグメントデータ(すなわち、各フラグメントの赤、緑、青のデータ値(および、適切ならばアルファ値))がディスプレイ画面上の表示のために与えられる前に記憶される。この技術分野において知られているように、タイルに基づく描画の場合において、出力バッファ34は1つまたは複数のタイルバッファを具備する。直接モード描画の場合において、出力バッファ34は表示の前にグラフィックスフラグメントデータを記憶する1つまたは複数のキャッシュメモリを具備する。
この3Dグラフィックスシステムは、図1および図2に関して上述したのと同様に動作する。
従って、描画器入力30およびラスタ化器23は、(上述しように、描画するためのプリミティブを送出する前に、キャッシュ5に適切な描画器状態ワードが記憶されることを検査および保証するように動作するリソース割当器24を用いて、)キャッシュ5において適切な描画器状態ワードキャッシュのエントリを指し示すインデックスを、描画される各フラグメントと対応付けるように動作する。従って、フラグメントが描画されるならば、フラグメントを正しく描画することができるように、描画器状態ワードキャッシュ5から適切な描画器状態ワードデータを探索するために、および、描画ユニットを設定するために、各フラグメントと対応付けられた描画器状態ワードインデックスは描画パイプライン1の描画ユニットによって使用される。
この動作は、図4においてより詳細に図示され、描画パイプライン1の各描画ユニットは汎用の機能ユニットとして表されている。本発明は、好ましい実施形態において、少なくとも、描画器状態の変更が発生すると、描画器を停止させる必要を減少させ、または回避するように構成することが可能なグラフィックス描画器および描画パイプラインを提供することが上記から理解することができる。
これは、好ましい実施形態において、少なくとも、描画器を通るフラグメントに従う描画状態インデックスまたはポインタを描画器において各フラグメントと対応付けることによって達成される。そして、その特定のフラグメントについて特定の描画状態に従う使用において描画ユニットを設定することが可能であるように、描画状態の探索が描画器における各ステップにおいて実行される。このようにして、異なる描画状態を要求するフラグメントは、同時に描画器に存在し、描画器によって処理することが可能であり、それによって、描画状態の変更による“フラグメントバブル(fragment bubble)”の発生およびパイプラインのブロッキングを防止することが可能である。
従って、好ましい実施形態において、少なくとも、本発明は、描画器状態の変更が発生すると、描画器を停止または排出させる必要を回避する。さらにこれは、描画状態によって描画器に供給されるプリミティブをもはや整列する必要がないことを意味し、望むならば、深さ等のような他の基準によってプリミティブを整列することが可能である。
また、本発明は、好ましい実施形態において、少なくとも、ドライバソフトウェアの複雑さを減少することができるように、ドライバソフトウェアに描画状態の変更を通知する必要がないという効果を有する。
さらに、本発明は、使用において描画器全体がブロッキングおよび停止する危険を防止または減少することが可能であるので、より長い描画器(描画パイプライン)の使用を容易にする。従って、フォンシェーディングのような、より複雑な描画操作の使用を容易にする。
本発明の実施形態による3Dグラフィックス処理システムを表わす図である。 図1の実施形態の3Dグラフィックス描画器の動作を表わす図である。 本発明によって構成される3Dグラフィックス処理システムのもう1つの実施形態を表わす。 本発明によって構成される3Dグラフィックス処理システムのもう1つの実施形態を表わす。
符号の説明
1 描画パイプライン
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つと対応付ける手段と、
    記憶された描画状態のデータセットと対応付けられたグラフィックスフラグメントを、描画するために前記描画器の描画ユニットに送出する手段と、
    をさらに具備し、
    前記描画器の描画ユニットの複数は、
    描画されるグラフィックスフラグメントと対応付けられた描画状態のデータセットを判定する手段と、
    前記判定された描画状態のデータセットに従って前記描画ユニットを設定する手段と、
    を具備するグラフィックス処理装置。
  2. 1つまたは複数のフラグメントを対応する描画状態のデータセットと対応付けるためにグラフィックス処理のラスタ化ステップが使用される請求項1に記載のグラフィックス処理装置。
  3. 前記描画器の描画ユニットによってアクセス可能な、前記描画器と対応付けられた1つまたは複数の描画状態のデータセットを記憶するキャッシュメモリを具備し、
    前記描画器の描画ユニットは、前記キャッシュメモリから描画状態のデータセットを取得するために探索するように構成される請求項1または2に記載のグラフィックス処理装置。
  4. 描画するために使用される異なる描画状態を定義する複数のデータセットを記憶する第1メモリ手段と、
    前記複数の描画状態のデータセットのうちの選択された数のデータセットを記憶するために前記描画器の描画ユニットによってアクセス可能な第2メモリ手段と、
    を具備する請求項1から3のいずれか1項に記載のグラフィックス処理装置。
  5. 描画するためのプリミティブが受信されると、要求される描画状態のデータセットが前記描画器の描画ユニットによってアクセス可能なメモリに記憶されているか否か検査する手段と、
    前記要求される描画状態のデータセットが記憶されていないならば、適切な描画状態のデータセットが前記描画ユニットによってアクセス可能なメモリにおいて利用可能となる時までプリミティブの処理を停止する手段と、
    を具備する請求項1から4のいずれか1項に記載のグラフィックス処理装置。
  6. 前記描画器の描画ユニットによる描画状態のデータセットの使用を監視する手段を具備する請求項1から5のいずれか1項に記載のグラフィックス処理装置。
  7. 特定の1つまたは複数の描画状態と対応付けられたグラフィックスフラグメントの前記描画器を通る進行を追跡する手段を具備する請求項1から6のいずれか1項に記載のグラフィックス処理装置。
  8. 前記描画ユニットによってアクセス可能なメモリにおける描画状態のデータセットの記憶を制御し、かつラスタ化するためのプリミティブの送出および描画するためのフラグメントの送出を制御するリソース割当器を具備する請求項1から7のいずれか1項に記載のグラフィックス処理装置。
  9. 描画する前にプリミティブの描画状態以外の基準によってプリミティブを整列する手段を具備する請求項1から8のいずれか1項に記載のグラフィックス処理装置。
  10. グラフィックスフラグメントを描画状態のデータセットと対応付ける前記手段は、フラグメントについて使用される前記描画状態のデータセットを示すフラグを前記フラグメントに割り当てる手段を具備する請求項1から9のいずれか1項に記載のグラフィックス処理装置。
  11. 前記フラグは、前記描画状態のデータセットが記憶されたメモリ位置を示す請求項10に記載のグラフィックス処理装置。
  12. 前記描画ユニットの複数は、描画状態のデータセットの一部のみを選択的に取得することが可能である請求項1から11のいずれか1項に記載のグラフィックス処理装置。
  13. 表示のためのグラフィックスフラグメントを描画するための1つのパイプラインを構成する複数の描画ユニットを含む描画器を有するグラフィックス処理装置を動作させる方法であって、
    前記描画器の描画ユニットを設定するために1つまたは複数の描画状態を定義するデータセットを記憶するステップと、
    描画される各グラフィックスフラグメントを前記記憶された描画状態のデータセットの1つと対応付けるステップと、
    描画ユニットが、描画されるグラフィックスフラグメントを受信すると、そのグラフィックスフラグメントと対応付けられた描画状態のデータセットを判定し、前記判定された描画状態のデータセットに従って設定され、前記受信したグラフィックスフラグメントについて描画操作を実行するステップと、
    を有する方法。
  14. 1つまたは複数のグラフィックスフラグメントを対応する描画状態のデータセットと対応付けるためにグラフィックス処理のラスタ化ステップを用いるステップを有する請求項13に記載の方法。
  15. 前記描画器の描画ユニットによってアクセス可能な、前記描画器と対応付けられたキャッシュメモリに1つまたは複数の描画状態のデータセットを記憶するステップを有し、
    前記描画器の描画ユニットは、前記キャッシュメモリから描画状態のデータセットを取得する請求項13または14に記載の方法。
  16. 描画するために使用される異なる描画状態を定義する複数のデータセットを第1メモリ手段に記憶するステップと、
    前記複数の描画状態のデータセットのうちの選択された数のデータセットを前記描画器の描画ユニットによってアクセス可能な第2メモリ手段に記憶するステップと、
    を有する請求項13から15のいずれか1項に記載の方法。
  17. 描画するためのプリミティブが受信されると、要求される描画状態のデータセットが前記描画器の描画ユニットによってアクセス可能なメモリに記憶されているか否か検査するステップと、
    前記要求される描画状態のデータセットが記憶されていないならば、適切な描画状態のデータセットが前記描画ユニットによってアクセス可能なメモリにおいて利用可能となる時まで前記プリミティブの処理を停止するステップと、
    を有する請求項13から16のいずれか1項に記載の方法。
  18. 前記描画器の描画ユニットによる描画状態のデータセットの使用を監視するステップを有する請求項13から17のいずれか1項に記載の方法。
  19. 特定の1つまたは複数の描画状態と対応付けられたグラフィックスフラグメントの前記描画器を通る進行を追跡するステップを有する請求項13から18のいずれか1項に記載の方法。
  20. 描画する前にプリミティブの描画状態以外の基準によってプリミティブを整列するステップを有する請求項13から19のいずれか1項に記載の方法。
  21. グラフィックスフラグメントを描画状態のデータセットと対応付ける前記手段は、グラフィックスフラグメントについて使用される前記描画状態のデータセットを示すフラグを前記フラグメントに割り当てるステップを有する請求項13から20のいずれか1項に記載の方法。
  22. 前記描画ユニットの1つまたは複数が、描画状態のデータセットの一部のみを選択的に取得するステップを有する請求項13から21のいずれか1項に記載の方法。
  23. データ処理手段において実行されるとき請求項13から22のいずれか1項に記載の方法を実行するためのコンピュータソフトウェアコード部分を有するコンピュータプログラムの構成要素。
  24. 請求項1から12のいずれか1項に記載のグラフィックス処理装置を含む、または、請求項13から22のいずれか1項に記載の方法に従って動作する、3Dグラフィックス処理装置または3Dグラフィックス処理プラットフォーム。
JP2007540720A 2004-11-15 2005-11-15 3次元グラフィックス処理装置および方法 Active JP5053857B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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