JP4091144B2 - ディスプレイリストを生成する方法、ディスプレイリストを受け取りグラフィックスプロセッサに格納する方法、プリミティブをレンダリングする方法およびディスプレイリストを用いてプリミティブをレンダリングするシステム - Google Patents
ディスプレイリストを生成する方法、ディスプレイリストを受け取りグラフィックスプロセッサに格納する方法、プリミティブをレンダリングする方法およびディスプレイリストを用いてプリミティブをレンダリングするシステム Download PDFInfo
- Publication number
- JP4091144B2 JP4091144B2 JP17233197A JP17233197A JP4091144B2 JP 4091144 B2 JP4091144 B2 JP 4091144B2 JP 17233197 A JP17233197 A JP 17233197A JP 17233197 A JP17233197 A JP 17233197A JP 4091144 B2 JP4091144 B2 JP 4091144B2
- Authority
- JP
- Japan
- Prior art keywords
- display list
- primitive
- value
- values
- render
- 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.)
- Expired - Lifetime
Links
- 238000009877 rendering Methods 0.000 title claims description 37
- 238000000034 method Methods 0.000 title claims description 30
- 230000015654 memory Effects 0.000 claims description 24
- 239000003607 modifier Substances 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 9
- 239000003086 colorant Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003079 width control Methods 0.000 description 2
- 206010041954 Starvation Diseases 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、広くはパーソナルコンピュータに用いられるグラフィックス制御システムに関する。具体的には、本発明は、特定のグラフィックス操作について格納され、処理されるパラメータの個数を最小化する方法および装置に関する。さらに詳しく言えば、本発明は、グラフィックスシステムによりレンダリングされるプリミティブの特定のタイプに基づきインストラクションを再配列する(reordering)ことによって、いくつかのレジスタを考慮から除外する技術に関する。
【0002】
【従来の技術】
パーソナルコンピュータ(PC)が利用可能になる以前は、コンピュータグラフィックスパッケージは、業界専用の高価なツールであった。初期のマイクロコンピュータは、典型的には、簡単なライン描画レンダリングしかできない低いスクリーン解像度(例えば、256×256)のものであった。マイクロコンピュータが進歩するにつれて、カラーディスプレイシステムが普及し、プログラマが、グラフィックスを用いてデータ出力を与えるのは日常茶飯事になり始めている。用いられたグラフィックス技術は、構造化されておらず、オブジェクトは、直線を用いた絶対座標を参照して規定された。その後、単一のインストラクションで円、楕円、方形およびポリゴンを描画可能とするためにグラフィックス「プリミティブ」が用いられた。加えて、カラーディスプレイは、典型的には、3原色の強度値により規定されるようになった。これらの3原色をブレンディングすることにより、高品質なカラーディスプレイが得られるようになったのである。
【0003】
【発明が解決しようとする課題】
コンピュータグラフィックスが利用可能になったことにより、より高い解像度で3次元(3D)レンダリングを実現する能力への需要が生じている。中でもコンピュータアニメーションおよびゲームは、コンピュータグラフィックスの能力に大きな革命をもたらした。3Dイメージは、コンピュータシステムでは、例えばポリゴンや、線や、点のようなグラフィックスオブジェクトの集合体として表現されうる。ポリゴンはそれぞれ、頂点のセットとして規定されうる。それぞれの点には、例えばシェーディング、テクスチュア、色などの画素値が関連づけられる。ポリゴン内のその他の点の識別は、典型的には、線形補間を用いておこなわれる。いったん補間されると、ポリゴンは、そのポリゴンの直交する複数のロウを連続的にスキャンすることによって、コンピュータモニタ上にレンダリングされうる。
【0004】
ポリゴンのようなグラフィックスプリミティブの各点(すなわち画素)に対する線形補間は、プロセッサに依存するところが非常に大きい。グラフィックスプロセッサにより初期値と最終値とが補間されることによって、イメージをレンダリングするための補間画素値が得られる。したがって、ビデオデータをグラフィックスコントローラへと通信するために、システムバス上のトラフィックを少なくしてコンピュータイメージを格納するのに必要なシステムメモリの容量が、少なくなる。それぞれの画素についてグラフィックス値を格納し、通信していた初期グラフィックスシステムに比べれば有利であるとはいうものの、勾配技術に基づくこのような従来の技術によるシステムは、それでも大量のデータを格納し、処理しなければならない。
【0005】
画素パラメータは、ディスプレイリストのかたちでグラフィックスシステムに供給される。このディスプレイリストは、グラフィックスプロセッサによりレンダリングされるべきプリミティブのパラメータを規定する。加えて、ディスプレイリストは、グラフィックスプロセッサに対して、ポリゴン、線、点およびその他のグラフィックスプリミティブを描画するように「指令を与え」、プリミティブをレンダリングするのに必要な、利用可能な各種パラメータに対して開始値および勾配値をさらに与える。
【0006】
ディスプレイリストを用いる現行のグラフィックス実現方式では、典型的には、グラフィックスプロセッサ内のレジスタファイルへと、データをシーケンシャルなフォーマットでロードする。それぞれのタイプのプリミティブについて、そのタイプのプリミティブをレンダリングするためには、特定のデータ値のセットが必要になる。例えば、画素グリッド内に描画される点は、x、y位置、色値、および深さ(depth)比較のためのz値を必要とすることがある。逆に、もしプリミティブが線であるのなら、必要になるパラメータには、x方向における線の向きを規定する勾配と、y方向における長さを規定するカウント値とが含まれることがある。ポリゴンの場合、その形状を規定するためには、さらに多くのパラメータが必要になる。
【0007】
ディスプレイリストの一例を以下の表1に示す。
【0008】
【表1】
【0009】
表1のレジスタファイルは、点、線およびポリゴンを描画するのに必要なパラメータを供給する。中央プロセッサ(またはメモリ)から与えられたディスプレイリストは、レジスタファイル内の各種レジスタにデータを供給する。しかし、これらの値のすべてが、点や線を描画するのに必要なわけではない。点や線を描画する際には、一般に、表1の値のうちのサブセットを含むディスプレイリストが用いられる。
【0010】
また、プリミティブのタイプを規定するのに利用可能な値のすべてが、特定のプリミティブをレンダリングするのに用いられるわけではない。例えば、ある与えられた線には、緑および青の値が必要でないこともある。従来の技術によるシステムでは、もしレンダリングされるべきプリミティブが特定のパラメータを必要としないのなら、レジスタファイル内の対応するレジスタには、ヌルつまりゼロの値がロードされる。よって、例えば、もしフラットにシェーディングされた、Zバッファリングされたポリゴン(色シェーディング情報を必要としない)がレンダリングされるのなら、ディスプレイリストには、不要な値に対応するヌルの値がホストプロセッサによりロードされることになる。その後、これらのヌルの値を含むすべての値が、レジスタファイル内へとロードされる。
【0011】
不要なパラメータに対してヌルの値を与えるこのステップは、レンダリング処理のそれぞれの段階で、パラメータを格納するのに必要なメモリの量を増やし、グラフィックスプロセッサにレジスタファイルをロードするのに必要な時間を長くし、また、システムバスや内部グラフィックスプロセッサ上でのトランザクションの量も増やす。その結果、レンダリング操作には、より多くのメモリ空間が必要になり、このような不要な値を考慮から除外する場合に比べて、かかる時間も長くなる。よって、レジスタをロードし、プリミティブをレンダリングするあいだに不要なパラメータを考慮から除外できるグラフィックスシステムを開発できれば、効果的であろう。また、もしホストプロセッサが、必要なパラメータ値のみをディスプレイリストの一部として伝送することができ、かつ、グラフィックスシステムがこれらのパラメータには必要な値しかないと認識して、使用されないデータの不要なロードを避けることができれば、やはり効果的であろう。不要なパラメータを考慮から除外するグラフィックスシステムは、このように明らかに有利であるにもかかわらず、今日まで、このようなシステムを開発したり、実施した者はいない。
【0012】
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、レジスタをロードし、プリミティブをレンダリングするあいだに不要なパラメータを考慮から除外できるグラフィックスシステムを提供することにある。
【0013】
【課題を解決するための手段】
本発明によるプリミティブをレンダリングするのに必要な値のみを含むディスプレイリストを生成する方法は、(a)該プリミティブを含む描画オブジェクトのタイプを記述するオペコードと、インストラクション修飾子値とを含む、演算コードインストラクションを該ディスプレイリストに入れるステップと、(b)該オペコードにより規定される該プリミティブをレンダリングするのに必要な該値のみを該ディスプレイリストに入れるステップと、を含んでおり、そのことにより上記目的が達成される。
【0014】
ある実施形態では、前記プリミティブをレンダリングするのに必要な前記値が、前記オペコードおよび前記インストラクション修飾子値により確認される。
【0015】
ある実施形態では、もし前記プリミティブをレンダリングするのに深さ値が必要ないのなら、Z関連値が前記ディスプレイリストから省かれる。
【0016】
ある実施形態では、もし前記プリミティブに色が必要ないのなら、色に対応する値が前記ディスプレイリストから省かれる。
【0017】
ある実施形態では、(c)前記ディスプレイリストをシステムメモリ装置に格納するステップをさらに含む。
【0018】
ある実施形態では、ホストプロセッサが、前記プリミティブをレンダリングするのに必要な前記値のみを含む前記ディスプレイリストを、該プリミティブをレンダリングするグラフィックスプロセッサに伝送する。
【0019】
本発明によるディスプレイリストを受け取り、該ディスプレイリストをグラフィックスプロセッサに格納する方法は、該ディスプレイリストが、プリミティブをレンダリングするのに必要な値のみを含んでおり、不要な値を省いており、かつ該含まれている必要な値に関連づけられたアドレスをさらに含んでいる、方法であって、(a)該ディスプレイリストを受け取るステップと、(b)該プリミティブをレンダリングするのに必要な該値のみを含む該ディスプレイリストを、該グラフィックスプロセッサに含まれているレジスタファイルに格納するステップであって、該値のそれぞれが、該値のそれぞれに関連づけられたレジスタアドレスに対応するレジスタに格納される、ステップと、を含んでおり、そのことにより上記目的が達成される。
【0020】
ある実施形態では、前記ディスプレイリストが、システムバスを介してシステムメモリ装置から受け取られる。
【0021】
ある実施形態では、前記システムバスから受け取られた前記ディスプレイリストが、ホストプロセッサから該システムバスに与えられたものである。
【0022】
本発明によるホストプロセッサにより生成される演算コードインストラクションおよびディスプレイリストにより規定されるプリミティブをレンダリングする方法は、該演算コードインストラクションがオペコード値およびインストラクション修飾子値を含んでおり、該ディスプレイリストが該プリミティブをレンダリングするのに必要なパラメータのみを含んでいる、方法であって、(a)該演算コードインストラクションおよび該ディスプレイリストを受け取り、該演算コードインストラクションおよび該ディスプレイリストをレジスタファイルに格納するステップであって、該レジスタファイルが、複数のプリミティブに関連づけられた複数のパラメータを格納する複数のレジスタを含んでいる、ステップと、(b)該オペコード値および該インストラクション修飾子値を該演算コードインストラクションから復号化することによって、レンダリングされるプリミティブのタイプを決定するステップと、(c)該レジスタファイル内の該複数のレジスタを再配列することによって、該プリミティブをレンダリングするのに必要な該パラメータのみを該レジスタから転送するステップと、を含んでおり、そのことにより上記目的が達成される。
【0023】
ある実施形態では、(d)前記レジスタファイルから選択された前記値を、前記プリミティブをディスプレイ上にレンダリングするグラフィックスエンジンに与えるステップをさらに含む。
【0024】
ある実施形態では、前記ディスプレイリストが、前記レジスタファイルに格納される前にトランザクションキューに格納される。
【0025】
本発明によるプリミティブをレンダリングするのに必要な値のみを含むディスプレイリストを用いて該プリミティブをレンダリングするシステムは、該プリミティブを規定する複数のパラメータ値から構成されるディスプレイリストを生成するホストプロセッサであって、該複数のパラメータ値から構成される該ディスプレイリストが、該プリミティブをレンダリングするのに必要な該値のみを含む、ホストプロセッサと、該複数のパラメータから構成される該ディスプレイリストを格納するシステムメモリと、システムバスを介して該ホストプロセッサおよび該システムメモリに結合されたグラフィックスプロセッサであって、該複数のパラメータ値から構成される該ディスプレイリストを格納するレジスタファイルを含む、グラフィックスプロセッサと、該グラフィックスプロセッサに結合され、該プリミティブを表示する、ディスプレイと、を備えたシステムにおいて、該グラフィックスプロセッサが、該プリミティブをレンダリングするのに必要な該値のみを含む該ディスプレイリストを用いて、プリミティブレンダリング操作を処理し、そのことにより上記目的が達成される。
【0026】
ある実施形態では、前記ホストプロセッサが、前記ディスプレイリストを生成し、該ディスプレイリストを前記システムメモリに格納する。
【0027】
ある実施形態では、前記ホストプロセッサが、不要な値をすべて省いて、前記プリミティブをレンダリングするのに必要な前記値のみを前記ディスプレイリストに入れ、該ディスプレイリストに、該必要な値のそれぞれに関連づけられたレジスタアドレスを格納する。
【0028】
ある実施形態では、前記グラフィックスプロセッサが、前記ディスプレイリストを前記システムメモリから取り出し、該ディスプレイリストを該グラフィックスプロセッサ内のレジスタファイルに格納する、システムであって、該ディスプレイリストの値がそれぞれ、該レジスタファイル内の、前記必要な値のそれぞれに関連づけられた前記レジスタアドレスに対応するレジスタに格納される。
【0029】
ある実施形態では、前記グラフィックスプロセッサが、前記レジスタファイルから演算コードインストラクションを読み出して解釈することによって、該レジスタファイル内の、前記プリミティブをレンダリングするのに不要な値をスキップする、実行ユニットを備えている。
【0030】
ある実施形態では、前記プリミティブをレンダリングするのに必要な前記値のみが、前記レジスタファイルから、前記グラフィックスプロセッサに含まれるポリゴンおよびテクスチュアエンジンへと書き込まれる。
【0031】
ある実施形態では、前記実行ユニットが再配列ロジックおよびレジスタアドレス発生器を備えており、該再配列ロジックが、前記演算コードインストラクションを受け取り、前記レジスタファイル内の、前記プリミティブをレンダリングするのに必要ない前記レジスタをスキップするように該レジスタアドレス発生器に指示を与える。
【0032】
以下に作用を説明する。
【0033】
本発明は、レンダリングされるプリミティブのタイプに基づいて、レジスタファイルを含むレジスタセットを再配列する技術およびプロトコルを提供する。よって、本発明では、指示されたプリミティブをレンダリングするのに必要ないパラメータを考慮から除外する。その結果、ホストプロセッサは必要なパラメータ値のみを伝送し、グラフィックスコントローラは、特定のプリミティブをレンダリングするのに必要なパラメータのみをロードし、転送する。
【0034】
プリミティブパラメータは、システムプロセッサ内のソフトウェアドライバにより生成され、ディスプレイリストのかたちでグラフィックスプロセッサに与えられる。ソフトウェアドライバは、指示されたプリミティブをレンダリングするのに必要なパラメータのみをディスプレイへと与える。好ましい実施の形態では、グラフィックスプロセッサは、ディスプレイリストをシステムプロセッサから直接得るか、またはリード動作を通してシステムメモリから得る、プリフェッチユニットを備えている。また、このプリフェッチユニットは、好ましくは、システムメモリから演算コード(つまり「オペコード」)のかたちでインストラクションを取り出す。
【0035】
また、グラフィックスプロセッサは、好ましくは、プリフェッチユニットからオペコードを受け取り、そのオペコードを復号化する内部インストラクション実行ユニットを備えている。この実行ユニットもまた、ディスプレイリストを受け取り、そのディスプレイリストをレジスタファイルに格納する。実行ユニットは、そのオペコード復号化の一部として、レンダリングされるプリミティブのタイプを判定し、そのタイプに基づいて、レジスタファイルに格納されている値のうち、必要なレジスタ値のみが、プリミティブをレンダリングするポリゴンおよびテクスチュアエンジンへと伝送されるようにする。
【0036】
【発明の実施の形態】
以下に述べる好ましい実施の形態の詳細な説明を添付の図面を参照しながら考慮すれば、本発明をよりよく理解することができるであろう。
【0037】
図1を参照すると、本発明は、広くは、主勾配技術を用いて点、線およびポリゴンをレンダリングできる、パーソナルコンピュータ(PC)用のグラフィックスシステムに関している。図1に示されているように、このグラフィックスシステムは、大まかにいうと、システムバス25に結合されたホストプロセッサ50およびシステムメモリ75と、グラフィックスプロセッサ100と、例えばRDRAMアレイ85のようなフレームバッファと、ディスプレイユニット60とを備えている。ホストプロセッサ50としては、例えば、PCの中央処理ユニットが挙げられ、システムメモリ75としては、例えば、PCのワーキングメモリまたはランダムアクセスメモリが挙げられる。ホストプロセッサ50は、好ましくは、グラフィックスプロセッサ100によりレンダリングされるディスプレイオブジェクトを記述するディスプレイパラメータを発生するソフトウェアドライバを備えている。よって、ソフトウェアドライバは、例えば、点の空間位置、線の終点、あるいはポリゴンの頂点座標を識別することができる。ポリゴンの場合、ソフトウェアドライバは、好ましくは、そのポリゴンの主勾配値および幅勾配の値も識別する。当業者には理解できるであろうが、適用可能な時、ソフトウェアドライバは、色の強度、テクスチュア、勾配値およびその他さまざまなパラメータ値を識別することができる。よって、ソフトウェアドライバは、グラフィックスプロセッサ100によりレンダリングされるオブジェクトの主勾配および直交勾配、画素位置の開始値および停止値、強度、深さ、ならびに透明度を計算し、ロードする。ホストプロセッサすなわちソフトウェアドライバは、また、レンダリングされるプリミティブのタイプを規定する演算コードインストラクションを発生する。ソフトウェアドライバは、好ましくは、例えばハードドライブあるいはCD ROMドライブデバイスのような永久磁気記憶装置からシステムメモリ75へとロードされる。いったんロードされると、ソフトウェアドライバは、ホストプロセッサ50により実行される。
【0038】
なお、図1に図示されている特定の実施の形態は、パーソナルコンピュータシステムに用いられるグラフィックスシステムの可能な数多くの実現形態の一例にすぎないことは理解されたい。また、図1は明瞭さを重視して簡略化されているので、本発明を理解するのに必要ない多くの構成要素および制御信号が省略されている。好ましい実施の形態では、グラフィックスプロセッサ100は、2Dおよび3Dグラフィックス、ならびに、コンピュータシステムのテキストおよびウィンドウ操作をハードウェア・サポートする。グラフィックスプロセッサ100は、システムメモリ75またはホストプロセッサ50からディジタルデータを転送し、そのデータを処理してRDRAM85に格納し、表示装置60のディスプレイ上に最終的に表示されるようにする。
【0039】
好ましい実施の形態では、ホストプロセッサは、必要なパラメータ値をディスプレイリストのかたちで供給する。このディスプレイリストは、典型的には、グラフィックスプロセッサ100により要求されるまでシステムメモリ75に格納される。あるいは、ホストプロセッサ50は、よく知られている技術を用いて、ディスプレイリストをグラフィックスプロセッサ100にライトしてもよい。いずれにせよ、本発明の原理によれば、ホストプロセッサは、描画されるプリミティブに必要なパラメータしかディスプレイリストには入れない。もしあるパラメータ値がそのプリミティブに必要ないのなら、ディスプレイリスト内のそれに対応するエントリは省かれる。この手法は、必要ないパラメータに対してディスプレイリストにヌル値すなわちゼロの値をロードする従来の技術による手法と比較されるべきである。いったんディスプレイリストがホストプロセッサ50により生成されると、そのディスプレイリストは、好ましくは、グラフィックスプロセッサ100により要求されるまでシステムメモリ75に格納される。
【0040】
ホストプロセッサ50およびシステムメモリ75は共に、好ましくは、システムバス25を介してグラフィックスプロセッサ100と通信する。システムバス25は、標準工業規格アーキテクチャ(ISA)バス、拡張されたISA(EISA)バス、周辺機器相互接続(PCI)バス、ビデオ電子規格協会(VESA)ローカルバス、およびその他の規格化されたコンピュータシステム用システムバスを含む、複数のそれぞれ異なるタイプのホストまたは入力/出力(I/O)バスのうちのいずれか1つであればよい。
【0041】
図1をさらに参照すると、グラフィックスプロセッサ100は、好ましくは、システムバス25に結合されている。好ましい実施の形態では、グラフィックスプロセッサ100は、好ましくは、バスマスタリング能力を備えている。これにより、グラフィックスプロセッサ100は、システムバス25に対するマスタシップを得ることができる。システムバスに対するマスタシップを得ることにより、グラフィックスプロセッサ100は、ホストプロセッサ50がライト動作をおこなうのを待つことなく、システムメモリ75からディスプレイリストをリードすることができる。この動作モードは、「プロセッサモード」と呼ばれる。図1に示されているように、グラフィックスプロセッサ100は、ディスプレイユニット60およびRDRAM85にも接続されている。好ましい実施の形態では、RDRAM85は、RDRAMバッファのバンクを備えている。ここで、RDRAMに格納されるディジタルデータは、複数の絵素(以下の説明では「画素」または「画素値」と称する)から構成される矩形のアレイを備えている。それぞれの画素は、例えば、8ビット値で規定されうる。この値は、ディスプレイユニット60のスクリーン上の対応する画素の単一の色の強度を指定する。フルカラーディスプレイの場合、3原色で24ビットの画素値を実現するためには、3つのパスがなされるか、または、3つのパラレルな論理スライスが実現される。ディスプレイユニット60は、適切なタイプの表示装置であれば何でもよい。表示装置としては、例えば、デスクトップ、ワークステーションあるいはサーバアプリケーション用の陰極線管(CRT)、液晶ディスプレイ(LCD)、薄膜トランジスタ(TFT)ディスプレイ、あるいは、パーソナルコンピュータ用のその他の適切な表示装置が挙げられる。
【0042】
さて図2を参照すると、グラフィックスコントローラ100は、好ましくは、実行ユニット125に結合されたプリフェッチユニット110と、レジスタファイル150と、トランザクションキュー115と、ポリゴンおよびテクスチュアエンジン135とを備えている。プリフェッチユニット110は、システムバス25に対するインタフェースになる。概略的にいうと、プリフェッチユニット110は、ポリゴンおよびテクスチュアエンジン135が以前に取り出されたインストラクションを描画している間に、インストラクションおよびディスプレイリスト175を取り出し、この情報をトランザクションキュー115にロードする。グラフィックスプロセッサ100がバスマスタモード(プロセッサモード)にある時、プリフェッチユニット110は、システムメモリ75からディスプレイリストをリードするためのシステムバスアドレスを発生し、その後、トランザクションキュー115を、ディスプレイリストインストラクションおよびディスプレイリストで満たす。プリフェッチユニット110の内部には、好ましくは、システムバス25の制御を調停するための制御信号を発生するロジックが設けられている。バスマスタリング制御信号に関する詳細は、当業者には直ちに認識できるであろう。動作がプロセッサモードであるあいだ、グラフィックスプロセッサ100は、プリフェッチユニット110を介して、例えば、グラフィックス描画コマンド、レジスタロード、フレーム同期コマンド、および動作のプロセッサモードを開始し、終了するコマンドのような各種コマンドを取り出し、実行することができる。
【0043】
プリフェッチユニット110および実行ユニット125の制御の下に、トランザクションキュー115の内容は、レジスタファイル150に転送され、ポリゴンおよびテクスチュアエンジン135によるレンダリングに後で用いられる。上述したように、ディスプレイリストは、プリミティブをレンダリングするのに必要な値のみを含んでいる。これに対して、レジスタファイル150は、どのようなプリミティブでもレンダリングできるように、可能なあらゆる値に対応するレジスタを含んでいる。よって、ディスプレイリストの値をレジスタファイル内の適切なレジスタへとロードするためには、ディスプレイリスト内の値はそれぞれ、レジスタファイル内のレジスタに対応する、関連づけられたアドレスをもつことになる。よって、プリフェッチユニット110および実行ユニット125は、ディスプレイリスト内のそれぞれの値を、レジスタファイルに含まれている、その値に関連づけられたアドレスに対応するレジスタに格納する。よって、例えばディスプレイリスト内のΔMAIN値が、レジスタファイル内のレジスタ0×4014に格納されることは、表1を見れば、当業者には認識できるであろう。使用されない値はディスプレイリストには入れられないので、レジスタファイル150内でそれらの値に対応するレジスタは、好ましくは、以前の値から変更されないままにされる。
【0044】
プリフェッチユニット110は、また、内部ライトサイクルのあいだに内部モジュールアドレスを生成し、例えばWAITインストラクションのようなその他のインストラクションを復号化することもできる。WAITインストラクションは、スクリーンイベントが生じるまでインストラクションのプリフェッチを一時停止することによって、ディスプレイリストの実行と、スクリーンリフレッシュのイベントとの同期をとることを可能にする。よって、当業者には自明であろうが、プリフェッチユニット110は、好ましくは、グラフィックス操作の間にデータオーバーランおよびデータの枯渇(starvation)の発生を確実に防止できるように機能する。
【0045】
さらに図2を参照すると、実行ユニット125は、概略的には、グラフィックスプロセッサ100の制御状態をセットするように機能し、かつ、グラフィックスプロセッサの副構成要素の動作の同期をとる。好ましい実施の形態では、実行ユニット125は、トランザクションキューからレジスタファイルをロードし、ポリコマンドに対してはポリリクエストを発する。実行ユニット125は、描画インストラクションまたはレンダリングインストラクションが与えられてから次のインストラクションが与えられるまでの間は、IDLEモードに置かれる。
【0046】
いったんトランザクションキュー115からレジスタファイル150へとディスプレイリスト値のセットがロードされると、これらの値により規定されるプリミティブが、ポリゴンおよびテクスチュアエンジン135によりレンダリングされる。ポリゴンおよびテクスチュアエンジンが、レジスタファイルから現在のプリミティブをレンダリングしている間、プリフェッチユニット110は、レンダリングされるべき次のプリミティブに対応するディスプレイリストを受け取ることがある。そして、それを受け取った場合には、そのディスプレイリストをトランザクションキュー115へとロードする。
【0047】
以下の説明では、演算コードインストラクションについて述べ、必要ない値なしでディスプレイリストがどのようにして構成されるかを述べる。図2のシステムメモリ75は、そのそばにディスプレイリスト175の分解図を添えて示されている。このディスプレイリストは、グラフィックスシステムにより描画されるオブジェクトを規定するプリミティブ値を含んでいる。ディスプレイリストは、典型的には、ホストプロセッサ50により実行されるソフトウェアドライバにより生成される。ディスプレイリスト175の分解図に示されているように、ディスプレイリスト175は、好ましくは、描画パラメータと共に演算コードインストラクションも含んでいる。この演算コードインストラクションは、好ましくは、32ビットのダブルワードを含んでおり、以下の表2に記述されているように、オペコード、インストラクション修飾子、A−フィールドおよびカウントフィールドを含んでいる。
【0048】
【表2】
【0049】
演算コードインストラクションのビット27〜31は、グラフィックスプロセッサによりおこなわれる演算の種類(レンダリングされるプリミティブのタイプを含む)を指定するオペコード値を含んでいる。好ましい実施の形態では、異なる複数の種類の演算のうちのいくつかに対応するオペコードは、以下のように規定される。
【0050】
【表3】
【0051】
好ましい実施の形態では、ある特定のオペコード(00000)が、レンダリングプリミティブを点と規定する。同様に、別のオペコード値(00001)がプリミティブを線と規定し、さらに別の値(00010)が、ポリゴンを規定する。内部デバイスレジスタをライトしたり、内部デバイスレジスタをリードしたり、ある与えられたアドレスでインストラクション処理を開始したり、グラフィックスプロセッサをプロセッサモードにリターンしたり、ポリゴンおよびテクスチュアエンジンのレジスタをクリアしたり、プリフェッチユニット110内の制御レジスタにデータをライトしたりするのに、その他のオペコードを設けることもできる。
【0052】
演算コードインストラクションのビット12〜26は、おこなわれる描画操作の種類に関するさらなる詳細を与えるインストラクション修飾子フィールドを含んでいる。レンダリングコマンド(DRAW POINT、DRAW LINE、DRAW POLYGON)用のインストラクション修飾子フィールドとしては、例えば、以下の表4に示すものがある。
【0053】
【表4】
【0054】
表4の例に示されているように、ビット25は、好ましくは、演算コードインストラクションに後続するワードが追加の修飾子を含んでいるかどうかを表す拡張修飾子ビットを含んでいる。初期幅ビット24は、好ましくは、初期三角形幅値がディスプレイリスト内に与えられるかどうかを指定する。好ましい実施の形態では、フェッチカラービット23は、デスティネーションカラーが必要であるかどうかを判定する。アルファロードビット22は、好ましくは、アルファレジスタがロードされるかどうかを表す。同様に、ディザビット21、パターンビット20および点画(stipple)ビット19は、好ましくは、プリミティブがディザリングされるか、パターニングされるか、および/または点画されるかどうかをそれぞれ表す。好ましくは、ライティング処理は、ライティングイネーブルビット18によりイネーブルされる。深さ機能(depth function)は、好ましくは、ビット13を用いて選択され、オブジェクトを通して色を補間するグーロー関数は、ビット12を用いて選択される。最後に、ビット16および17は、もしテクスチュアマッピングが望まれるのなら、テクスチュアマッピングモードを規定するために符号化される。もしテクスチュアマッピングが望まれないのなら、ビット16および17は、共にゼロにセットされる。もし線形テクスチュアマッピングが望まれるのなら、ビット16および17は、それぞれ0および1にセットされ、もしパースペクティブ補正されたテクスチュアマッピングが望まれるのなら、これらのビットは共に1にセットされる。
【0055】
本発明によれば、必要な情報のみを含むディスプレイリストを効果的に生成することができる。すなわち、それぞれの種類のレンダリング操作に、表1のレジスタのすべてが用いられるわけではない。従来の技術では、それぞれの種類のレンダリング操作に1つのディスプレイリストフォーマットを開示する。例えば、従来の技術による点レンダリング操作は、X、Y、R、G、B、Z、VおよびU値を含むディスプレイリストを用いる。しかし、特定の点をレンダリングするためには、これらの値のうちの1サブセットが必要になるだけである。かつては、使用されない値に関連づけられたデータは、リスト内に入れられたままで、ヌル値がライトされていた。本発明では、ホストプロセッサ50は、ディスプレイリスト内に必要な、ヌルではない値のみを入れる。必要な値の選択は、以下の表5〜表10に例示されているように、受け取られた特定のレンダリングコマンドに基づいておこなわれる。
【0056】
【表5】
【0057】
表5は、点をレンダリングするのに必要な8つの値(X、Y、R、G、B、Z、VおよびU)を含んでいる。第(1)欄は、表1に規定されている対応するアドレスを含んでいる。第(3)欄、第(4)欄および第(5)欄は、各種条件について、どの値をスキップすることができるか、つまりディスプレイリストから省くことができるかを示している。値がスキップ可能となる条件は、さらに表6にも示されている。もしグラフィックスプロセッサ100が、マッピングされたカラーモード、あるいは直接カラーモードで動作しているのなら、G値およびB値はスキップすることができる。なぜなら、これらの値は用いられないからである。さらに、もしZ深さ機能が、表4のインストラクション修飾子フィールドにおけるビット13を通してオフされるのなら、ディスプレイリストのZ値をスキップすることができる。最後に、もし表6の最後の欄に示されているようにテクスチュアマッピングがオフされるのなら、V値およびU値をスキップすることができる。表4に示されているように、テクスチュアマッピングは、演算コードインストラクションのインストラクション修飾子フィールドのビット16および17に「0」をライトすることによって、オフされうる。
【0058】
【表6】
【0059】
表6は、点をレンダリングする時にディスプレイリストから値を省くことができる、3つのモードを規定している。当業者には知られているように、マッピングされたカラーモードあるいは直接カラーモードでは、表示される色を決めるのにカラールックアップテーブルをパレットに用いることができる。Zモードでは、Z深さ機能が実行される。最後に、テクスチュアモードは、プリミティブをレンダリングするのに、線形テクスチュアマッピングが用いられるのか、パースペクティブマッピングが用いられるのか、あるいはいずれも用いられないのかを決める。
【0060】
【表7】
【0061】
表7は、点をレンダリングするのに必要な値である、X、Y、R、G、B、ΔMAIN、Y COUNT、ΔWIDTH OPP、ΔR MAIN、ΔG MAIN、ΔB MAIN、Z、ΔZ MAIN、V、U、ΔV MAIN、ΔUMAIN、Δ2V MAINおよびΔ2U MAINを含んでいる。第(1)欄に示されたこれらの値のアドレスは、表1と同じである。ただし、Δ2V MAINは、アドレス0×4068に対応しており、Δ2U MAINは、アドレス0×406Cに対応している。第(3)欄〜第(7)欄は、5つのそれぞれ異なる状況について、スキップされる値を示している。マッピングされたカラーモード、Zオフ、およびテクスチュアマッピングオフの条件は、上述したモードと同じであるが、これらの条件が続くあいだは、さらなる値がスキップ可能となる。マッピングされたカラーモードの場合、G値およびB値がスキップされるのみならず、ΔG MAIN値およびΔB MAIN値もスキップ可能となる。Z深さ機能がオフされる時、Z値およびΔZ MAIN値が第(5)欄でスキップされる。テクスチュアマッピングモードが第(6)欄でオフされる時、V値、U値、ΔV MAIN値、ΔU MAIN値、Δ2V MAIN値およびΔ2U MAIN値がスキップ可能となる。さらに、もし、表8でポリゴンを通して色を補間するものと記載されている、第(4)欄のグーローシェーディングモードが、演算コードインストラクションのインストラクション修飾子フィールドのビット12(表4)を通してオフされるのなら、色値ΔR MAIN、ΔG MAINおよびΔB MAINがスキップ可能となる。さらには、もし、インストラクション修飾子フィールドのビット16および17に値「1」をライトすることによって実行される、パースペクティブテクスチュアマッピング(第(7)欄)がオフされるのなら、Δ2V MAIN値およびΔ2U MAIN値がスキップ可能となる。
【0062】
【表8】
【0063】
表8におけるマッピングされた/直接カラーの条件およびZの条件は、表6に記載されている条件と実質的に同じである。表8で言及されているグーローモードは、上述したように、線を通して色を補間することを可能にする。最後に、テクスチュアモードエントリは、テクスチュアマッピングモードとパースペクティブテクスチュアマッピングモードに言及している。これらのモードのうち、いずれか1つが実施されるか、両方が実施されるか、または、いずれも実施されないかという3つの選択肢がある。
【0064】
【表9】
【0065】
表9は、ポリゴンをレンダリングする時の各種状況について、スキップ可能な値を含んでいる。もしグラフィックスプロセッサ100が、マッピングされたカラーモードであるか、または直接カラーモードであるのなら、ディスプレイリスト内のG値、B値、ΔG MAIN値、ΔB MAIN値、ΔG ORTHO値およびΔB ORTHO値は、表9の第(3)欄に示されているように、スキップされうる。第(4)欄では、もしグラフィックスプロセッサ100がグーローシェーディングモードをオフしたのなら、ΔR MAIN値、ΔG MAIN値、ΔB MAIN値、ΔR ORTHO値、ΔG ORTHO値およびΔB ORTHO値がスキップ可能となる。さらに、もしZモードがオフされているのなら、第(5)欄に示されているように、Z値、ΔZ MAIN値およびΔZ ORTHO値がスキップ可能となる。もし初期幅制御がオフされているのなら、WIDTH MAIN値およびWIDTH OPP値がスキップ可能となる(第(6)欄)。初期幅制御は、ポリゴンをレンダリングするためだけに用いられ、表4に示されているように、演算コードインストラクションのインストラクション修飾子フィールドのビット24を通して実行される。最後に、もし第(7)欄および第(8)欄においてテクスチュアマッピングモードあるいはパースペクティブテクスチュアマッピングモードがオフされるのなら、Δ2V MAIN値、Δ2U MAIN値、Δ2V ORTHO値、Δ2U ORTHO値、ΔV ORTHO ADD値およびΔU ORTHO ADD値がスキップ可能となる。また、テクスチュアマッピングモードがオフされるのなら、V値、U値、ΔV MAIN値、ΔU MAIN値、ΔV ORTHO値およびΔU ORTHO値をディスプレイリストから省くことができる。
【0066】
【表10】
【0067】
表10は、ポリゴンに関するパラメータをディスプレイリストから省くことができる条件を記述している。マッピングされたカラーモードあるいは直接カラーモードは、表6および表8で、表示される色を決めるのにカラールックアップテーブルを用いるものとして言及されている。グーローモードは、ポリゴンを通して色を補間することを可能にするが、Z深さ機能は、もしオフされれば、Z値をスキップ可能とする。さらに、初期幅関数は、初期の三角形の幅がディスプレイリストに与えられるかどうかを判定する。最後に、テクスチュアモードエントリは、テクスチュアマッピングモードおよび/またはパースペクティブテクスチュアマッピングモードが用いられるかどうかについて言及する。
【0068】
要約すると、ホストプロセッサ50は、上述した各表およびそれに付随するテキストで説明したように、さまざまな具体的状況の下にプリミティブをレンダリングするのに必要ではない値をディスプレイリストから省くことによって、プリミティブをレンダリングするのに必要最小限のディスプレイリスト175を生成する。例えば、3原色成分のすべてと、比較用のZ深さ値と、テクスチュアマッピングとを用いて点をレンダリングするためのディスプレイリストは、X、Y、R、G、B、Z、VおよびUの値を含んでいる。しかし、点をレンダリングするのに、テクスチュアマッピングをオフし、Z深さ値を用いないと、ホストプロセッサが、X、Y、R、GおよびBの値のみを含むディスプレイリストを生成する結果となる。この場合、上述した点のレンダリングよりも、値の数は3つ少なくなる。また、本発明によれば、ディスプレイリストに含まれている必要最小限の値から構成されるセットを用いて、プリミティブをレンダリングできるという効果が得られる。
【0069】
以下の説明は、上述したようにプリミティブをレンダリングするのに必要な値のみを含むディスプレイリストを用いて、プリミティブがレンダリングされる手法について述べたものである。ここでは、議論のために、レンダリング操作用の値は、あらかじめレジスタファイル150に格納されているものとする。図3を参照すると、実行ユニット125は、レジスタアドレス発生器225と、再配列ロジック250とを含むものとして図示されている。当業者には理解できることであろうが、実行ユニットは、図3には図示されていないその他の要素を含んでいてもよい。
【0070】
レジスタアドレス発生器225は、レジスタファイル150内のレジスタに関するアドレスNを発生し、信号ライン226を介してそのアドレスNをレジスタファイル150へと伝送する。すると、レジスタ内のアドレスNにおけるデータが、信号ライン151を介してポリゴンおよびテクスチュアエンジンへと伝送される。再配列ロジック250は、オペコード自体と、インストラクション修飾子の値とを含む演算コードインストラクションを受け取る。オペコードの値およびインストラクション修飾子の値から、再配列ロジック250は、レジスタファイル内において、オペコードダブルワードに対応するプリミティブをレンダリングするのに必要なレジスタはどれかを確定し、表5〜表10で見てきたように、必要ない値をスキップする。再配列ロジック250は、好ましくは、レジスタファイル150内で、プリミティブをレンダリングするのに必要な次の値に対応するアドレスに、以前のアドレスNをインクリメントするようにレジスタアドレス発生器225を制御する、ステートマシンを含んでいる。具体的には、再配列ロジック250は、信号ライン252を介して「Nに加算する値」をレジスタアドレス発生器225に伝送する。「Nに加算する値」は、プリミティブをレンダリングするのに必要な次のレジスタを得るためには、スキップしなければならないレジスタファイル内のレジスタの個数を指定する。よって、レジスタファイル内のレジスタは、プリミティブをレンダリングするのに必要なパラメータのみをレジスタファイルからポリゴンおよびテクスチュアエンジンへと転送するために、再配列される。
【0071】
例えば、もしオペコードおよびインストラクション修飾子が、レンダリングされるプリミティブはZ深さをもたないポリゴンであることを示すのなら、再配列ロジック250は、レジスタアドレス発生器に対して、レジスタファイル150内のレジスタ0×4044までのすべてのレジスタを選択するように指示を与える、「Nに加算する値」である4を与える。再配列ロジック250は、Zレジスタ、ΔZ MAINレジスタおよびΔZ ORTHOレジスタをスキップしなければならないことを認識する。なぜなら、これらのレジスタは、所望のポリゴンをレンダリングするのに必要ないからである。これに応答して、再配列ロジック250は、レジスタアドレス発生器225に対して、これら3つのZ関連レジスタをスキップするように指示を与える、「Nに加算する値」である16をレジスタアドレス発生器225に与える。
【0072】
いったん以上の開示を十分に理解すれば、数多くの変更および改変が、当業者には自明になるであろう。添付の請求の範囲は、このような変更および改変のすべてを包含すると解釈されるように意図されているものである。
【0073】
【発明の効果】
本発明によれば、レジスタをロードし、プリミティブをレンダリングするあいだに不要なパラメータを考慮から除外できるグラフィックスシステムを提供することができる。
【図面の簡単な説明】
【図1】本発明の原理により、コンピュータシステムのシステムバスに接続されたグラフィックスプロセッサの簡略ブロック図である。
【図2】図1のグラフィックスプロセッサの一部をより詳細に示すブロック図である。
【図3】描画すべきプリミティブをレンダリングするのに必要な値のみをレジスタファイルから選択するための実施の形態の一例を示すブロック図である。
【符号の説明】
25 システムバス
50 ホストプロセッサ
60 ディスプレイ
75 システムメモリ
85 RDRAMアレイ
100 グラフィックスプロセッサ
Claims (10)
- ディスプレイリストを受け取り、該ディスプレイリストをグラフィックスプロセッサに格納する方法において、該ディスプレイリストが、全ての可能なディスプレイリスト値の組から選択された、プリミティブをレンダリングするのに必要な値のみを含んでおり、不要な値を省いており、かつ該含まれている必要な値に関連づけられたアドレスをさらに含んでいる、方法であって、
前記可能なディスプレイリスト値のそれぞれは、描画パラメータと、演算コードインストラクションとからなり、
前記演算コードインストラクションは、前記プリミティブを含む描画オブジェクトのタイプを記述するオペコードと、インストラクション修飾子値とを含み、
前記プリミティブをレンダリングするのに不要なディスプレイリスト値は、その前記インストラクション修飾子が、そのディスプレイリスト値が前記プリミティブをレンダリングするのに不要なディスプレイリスト値であることを示す値にセットされ、
前記方法が、
(a)該ディスプレイリスト値を受け取るステップと、
(b)前記インストラクション修飾子の値に基づいて不要な値をスキップして、該プリミティブをレンダリングするのに必要な該ディスプレイリスト値のみを、該グラフィックスプロセッサに含まれているレジスタファイルに格納するステップであって、該ディスプレイリストの値のそれぞれが、該値のそれぞれに関連づけられたレジスタアドレスに対応するレジスタに格納される、ステップと、を含む方法。 - 前記ディスプレイリストが、システムバスを介してシステムメモリ装置から受け取られる、請求項1に記載の方法。
- 前記システムバスから受け取られた前記ディスプレイリストが、ホストプロセッサから該システムバスに与えられたものである、請求項2に記載の方法。
- ホストプロセッサにより生成される、全ての可能なディスプレイリスト値の組のなかから選択された値を含むディスプレイリストにより規定されるプリミティブをレンダリングする方法であって、
前記可能なディスプレイリスト値のそれぞれは、描画パラメータと、演算コードインストラクションとからなり、
該演算コードインストラクションがオペコード値およびインストラクション修飾子値を含んでおり、
前記プリミティブをレンダリングするのに不要なディスプレイリスト値は、その前記インストラクション修飾子が、そのディスプレイリスト値が前記プリミティブをレンダリングするのに不要なディスプレイリスト値であることを示す値にセットされ、
該ディスプレイリストが該プリミティブをレンダリングするのに必要な描画パラメータのみを含んでおり、
前記方法が、
(a)前記ディスプレイリスト値を受け取り、前記インストラクション修飾子の値に基づいて不要なディスプレイリスト値をスキップして、前記プリミティブをレンダリングするのに必要な前記ディスプレイリスト値をレジスタファイルに格納するステップであって、該レジスタファイルが、前記ディスプレイリスト値を格納する複数のレジスタを含んでおり、該ディスプレイリストの値のそれぞれが、該値のそれぞれに関連づけられたレジスタアドレスに対応するレジスタに格納される、ステップと、
(b)該オペコード値および該インストラクション修飾子値を該演算コードインストラクションから復号化することによって、レンダリングされるプリミティブのタイプを決定するステップと、
(c)該レジスタファイル内の該複数のレジスタのなかから複数のレジスタを選択するステップであって、選択される前記複数のレジスタは、該プリミティブをレンダリングするのに必要な前記ディスプレイリスト値が転送されるレジスタのみである、ステップと、を含む方法。 - (d)前記レジスタファイルから選択された前記値を、前記プリミティブをディスプレイ上にレンダリングするグラフィックスエンジンに与えるステップをさらに含む、請求項4に記載の方法。
- 前記ディスプレイリストが、前記レジスタファイルに格納される前にトランザクションキューに格納される、請求項4に記載の方法。
- プリミティブをレンダリングするのに必要な値のみを含むディスプレイリストを用いて該プリミティブをレンダリングするシステムであって、
全ての可能なディスプレイリスト値の組から選択された、プリミティブをレンダリングするのに必要な値のみを含む前記ディスプレイリストを生成するホストプロセッサであって、前記可能なディスプレイリスト値のそれぞれは、描画パラメータと、演算コードインストラクションとからなり、前記演算コードインストラクションは、前記プリミティブを含む描画オブジェクトのタイプを記述するオペコードと、インストラクション修飾子値とを含み、前記プリミティブをレンダリングするのに不要なディスプレイリスト値は、その前記インストラクション修飾子が、そのディスプレイリスト値が前記プリミティブをレンダリングするのに不要なディスプレイリスト値であることを示す値にセットされた、ホストプロセッサと、
前記可能なディスプレイリスト値を格納するシステムメモリと、
システムバスを介して該ホストプロセッサおよび該システムメモリに結合されたグラフィックスプロセッサであって、前記グラフィックスプロセッサは、レジスタファイルであって、前記ディスプレイリスト値を格納する複数のレジスタを含んでいる、該レジスタファイルを含み、前記インストラクション修飾子の値に基づいて不要なディスプレイリスト値をスキップして、前記プリミティブをレンダリングするのに必要な前記ディスプレイリスト値を前記システムメモリから取り出し、該ディスプレイリストを該グラフィックスプロセッサ内のレジスタファイルに格納し、前記プリミティブをレンダリングするのに必要な値は、前記インストラクション修飾子の値により確認される、グラフィックスプロセッサと、
該グラフィックスプロセッサに結合され、該プリミティブを表示する、ディスプレイと、
を備えたシステムにおいて、
前記ホストプロセッサが、前記ディスプレイリストを生成し、該ディスプレイリストを前記システムメモリに格納し、不要な描画パラメータをすべて省いて、前記プリミティブをレンダリングするのに必要な前記描画パラメータのみを前記ディスプレイリストに入れ、該ディスプレイリストに、該必要な描画パラメータのそれぞれに関連づけられたレジスタアドレスを格納し、
前記グラフィックスプロセッサが、前記ディスプレイリストの値を前記レジスタファイルに格納する際、該ディスプレイリストの値はそれぞれ、該レジスタファイル内の、前記必要な値のそれぞれに関連づけられた前記レジスタアドレスに対応するレジスタに格納され、
該グラフィックスプロセッサが、該プリミティブをレンダリングするのに必要な該値のみを含む該ディスプレイリストを用いて、プリミティブレンダリング操作を処理する、システム。 - 前記グラフィックスプロセッサが、前記レジスタファイルから演算コードインストラクションを読み出して解釈することによって、該レジスタファイル内の、前記プリミティブをレンダリングするのに不要な値をスキップする、実行ユニットを備えている、請求項7に記載のシステム。
- 前記プリミティブをレンダリングするのに必要な前記値のみが、前記レジスタファイルから、前記グラフィックスプロセッサに含まれるポリゴンおよびテクスチュアエンジンへと書き込まれる、請求項8に記載のシステム。
- 前記実行ユニットが再配列ロジックおよびレジスタアドレス発生器を備えており、該再配列ロジックが、前記演算コードインストラクションを受け取り、前記レジスタファイル内の、前記プリミティブをレンダリングするのに必要ない前記レジスタをスキップするように該レジスタアドレス発生器に指示を与える、請求項8に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/672,620 US5793386A (en) | 1996-06-28 | 1996-06-28 | Register set reordering for a graphics processor based upon the type of primitive to be rendered |
US08/672,620 | 1996-06-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1097635A JPH1097635A (ja) | 1998-04-14 |
JP4091144B2 true JP4091144B2 (ja) | 2008-05-28 |
Family
ID=24699324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17233197A Expired - Lifetime JP4091144B2 (ja) | 1996-06-28 | 1997-06-27 | ディスプレイリストを生成する方法、ディスプレイリストを受け取りグラフィックスプロセッサに格納する方法、プリミティブをレンダリングする方法およびディスプレイリストを用いてプリミティブをレンダリングするシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US5793386A (ja) |
EP (1) | EP0821302B1 (ja) |
JP (1) | JP4091144B2 (ja) |
TW (1) | TW328575B (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5977983A (en) * | 1997-02-20 | 1999-11-02 | S3 Incorporated | Method and apparatus for adjusting graphics processing procedures based on a selectable speed/quality gauge |
US6072508A (en) * | 1997-03-14 | 2000-06-06 | S3 Incorporated | Method and apparatus for shortening display list instructions |
US6028613A (en) * | 1997-03-20 | 2000-02-22 | S3 Incorporated | Method and apparatus for programming a graphics subsystem register set |
US5966142A (en) * | 1997-09-19 | 1999-10-12 | Cirrus Logic, Inc. | Optimized FIFO memory |
US6061073A (en) * | 1997-11-12 | 2000-05-09 | Cirrus Logic, Inc. | Tracking of graphics polygon data from different clock domains in a graphics processor |
US5999200A (en) * | 1998-01-23 | 1999-12-07 | Cirrus Logic, Inc. | Method and apparatus for automatically controlling the destination of a graphics command in a register file |
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 |
US6191793B1 (en) | 1998-04-01 | 2001-02-20 | Real 3D, Inc. | Method and apparatus for texture level of detail dithering |
WO1999059076A1 (en) * | 1998-05-12 | 1999-11-18 | S3 Incorporated | Method and apparatus for shortening display list instructions |
US6469704B1 (en) * | 1999-01-19 | 2002-10-22 | Hewlett-Packard Company | System and method for combined execution of graphics primitive data sets |
US6362825B1 (en) * | 1999-01-19 | 2002-03-26 | Hewlett-Packard Company | Real-time combination of adjacent identical primitive data sets in a graphics call sequence |
US6421059B1 (en) * | 1999-03-22 | 2002-07-16 | Nvidia Corporation | Apparatus and method for rendering characters into a memory |
US6424320B1 (en) * | 1999-06-15 | 2002-07-23 | Ati International Srl | Method and apparatus for rendering video |
JP3619143B2 (ja) * | 1999-11-18 | 2005-02-09 | キヤノン株式会社 | 画像処理装置およびその方法 |
US7159041B2 (en) * | 2000-03-07 | 2007-01-02 | Microsoft Corporation | Method and system for defining and controlling algorithmic elements in a graphics display system |
US6747654B1 (en) * | 2000-04-20 | 2004-06-08 | Ati International Srl | Multiple device frame synchronization method and apparatus |
US7116333B1 (en) * | 2000-05-12 | 2006-10-03 | Microsoft Corporation | Data retrieval method and system |
US6894693B1 (en) * | 2001-02-09 | 2005-05-17 | Vicarious Visions Inc. | Management of limited resources in a graphics system |
US6828975B2 (en) * | 2001-03-01 | 2004-12-07 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
US7027062B2 (en) * | 2004-02-27 | 2006-04-11 | Nvidia Corporation | Register based queuing for texture requests |
US7091982B2 (en) * | 2004-05-14 | 2006-08-15 | Nvidia Corporation | Low power programmable processor |
US7389006B2 (en) * | 2004-05-14 | 2008-06-17 | Nvidia Corporation | Auto software configurable register address space for low power programmable processor |
US7436410B2 (en) * | 2005-04-01 | 2008-10-14 | Seiko Epson Corporation | System and method for programming a controller |
US9195501B2 (en) | 2011-07-12 | 2015-11-24 | Qualcomm Incorporated | Instruction culling in graphics processing unit |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL72685A (en) * | 1983-08-30 | 1988-08-31 | Gen Electric | Advanced video object generator |
US4583185A (en) * | 1983-10-28 | 1986-04-15 | General Electric Company | Incremental terrain image generation |
US4586038A (en) * | 1983-12-12 | 1986-04-29 | General Electric Company | True-perspective texture/shading processor |
US4821212A (en) * | 1984-08-08 | 1989-04-11 | General Electric Company | Three dimensional texture generator for computed terrain images |
US4855937A (en) * | 1984-08-08 | 1989-08-08 | General Electric Company | Data block processing for fast image generation |
US4715005A (en) * | 1984-08-08 | 1987-12-22 | General Electric Company | Terrain/seascape image generator with math model data base |
US4692880A (en) * | 1985-11-15 | 1987-09-08 | General Electric Company | Memory efficient cell texturing for advanced video object generator |
IL79822A (en) * | 1985-12-19 | 1990-03-19 | Gen Electric | Method of comprehensive distortion correction for a computer image generation system |
US4811245A (en) * | 1985-12-19 | 1989-03-07 | General Electric Company | Method of edge smoothing for a computer image generation system |
US4862388A (en) * | 1986-12-15 | 1989-08-29 | General Electric Company | Dynamic comprehensive distortion correction in a real time imaging system |
US4905164A (en) * | 1986-12-19 | 1990-02-27 | General Electric Company | Method for modulating color for effecting color cell texture |
US4868771A (en) * | 1987-03-30 | 1989-09-19 | General Electric Company | Computer image generation with topographical response |
US5191642A (en) * | 1987-04-09 | 1993-03-02 | General Electric Company | Method for efficiently allocating computer resource for real time image generation |
US4825391A (en) * | 1987-07-20 | 1989-04-25 | General Electric Company | Depth buffer priority processing for real time computer image generating systems |
US4958305A (en) * | 1987-11-04 | 1990-09-18 | General Electric Company | Polygon edge clipping |
US4974176A (en) * | 1987-12-18 | 1990-11-27 | General Electric Company | Microtexture for close-in detail |
US4965745A (en) * | 1987-12-18 | 1990-10-23 | General Electric Company | YIQ based color cell texture |
US5367615A (en) * | 1989-07-10 | 1994-11-22 | General Electric Company | Spatial augmentation of vertices and continuous level of detail transition for smoothly varying terrain polygon density |
US5126726A (en) * | 1989-12-27 | 1992-06-30 | General Electric Company | Picture element encoding |
JP2770598B2 (ja) | 1990-06-13 | 1998-07-02 | 株式会社日立製作所 | 図形表示方法およびその装置 |
US5329615A (en) | 1990-09-14 | 1994-07-12 | Hughes Aircraft Company | Concurrent general purpose and DMA processing in a graphics rendering processor |
US5268996A (en) * | 1990-12-20 | 1993-12-07 | General Electric Company | Computer image generation method for determination of total pixel illumination due to plural light sources |
US5420970A (en) * | 1991-03-13 | 1995-05-30 | Martin Marietta Corporation | Method for determining computer image generation display pixels occupied by a circular feature |
US5293467A (en) * | 1991-04-03 | 1994-03-08 | Buchner Gregory C | Method for resolving priority between a calligraphically-displayed point feature and both raster-displayed faces and other calligraphically-displayed point features in a CIG system |
US5187754A (en) * | 1991-04-30 | 1993-02-16 | General Electric Company | Forming, with the aid of an overview image, a composite image from a mosaic of images |
TW225595B (ja) * | 1991-09-03 | 1994-06-21 | Gen Electric | |
US5299309A (en) * | 1992-01-02 | 1994-03-29 | Industrial Technology Research Institute | Fast graphics control system capable of simultaneously storing and executing graphics commands |
US5649173A (en) * | 1995-03-06 | 1997-07-15 | Seiko Epson Corporation | Hardware architecture for image generation and manipulation |
US5798762A (en) * | 1995-05-10 | 1998-08-25 | Cagent Technologies, Inc. | Controlling a real-time rendering engine using a list-based control mechanism |
-
1996
- 1996-06-28 US US08/672,620 patent/US5793386A/en not_active Expired - Lifetime
-
1997
- 1997-06-03 TW TW086107629A patent/TW328575B/zh not_active IP Right Cessation
- 1997-06-25 EP EP97304513A patent/EP0821302B1/en not_active Expired - Lifetime
- 1997-06-27 JP JP17233197A patent/JP4091144B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0821302A1 (en) | 1998-01-28 |
JPH1097635A (ja) | 1998-04-14 |
EP0821302B1 (en) | 2012-05-02 |
US5793386A (en) | 1998-08-11 |
TW328575B (en) | 1998-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4091144B2 (ja) | ディスプレイリストを生成する方法、ディスプレイリストを受け取りグラフィックスプロセッサに格納する方法、プリミティブをレンダリングする方法およびディスプレイリストを用いてプリミティブをレンダリングするシステム | |
US5909219A (en) | Embedding a transparency enable bit as part of a resizing bit block transfer operation | |
US5594854A (en) | Graphics subsystem with coarse subpixel correction | |
US5727192A (en) | Serial rendering system with auto-synchronization on frame blanking | |
US5764243A (en) | Rendering architecture with selectable processing of multi-pixel spans | |
US6348919B1 (en) | Graphics system with optimized use of unified local and frame buffers | |
US5815166A (en) | Graphics subsystem with slaveable rasterizer | |
JP4110239B2 (ja) | 増強テクスチャマップデータフェッチング回路および方法 | |
US5835096A (en) | Rendering system using 3D texture-processing hardware for accelerated 2D rendering | |
US5777629A (en) | Graphics subsystem with smart direct-memory-access operation | |
US6111584A (en) | Rendering system with mini-patch retrieval from local texture storage | |
US5805868A (en) | Graphics subsystem with fast clear capability | |
US6154223A (en) | Integrated graphics subsystem with message-passing architecture | |
US5798770A (en) | Graphics rendering system with reconfigurable pipeline sequence | |
US5801717A (en) | Method and system in display device interface for managing surface memory | |
US5742796A (en) | Graphics system with color space double buffering | |
US5701444A (en) | Three-dimensional graphics subsystem with enhanced support for graphical user interface | |
US5764228A (en) | Graphics pre-processing and rendering system | |
US6864892B2 (en) | Graphics data synchronization with multiple data paths in a graphics accelerator | |
US5790125A (en) | System and method for use in a computerized imaging system to efficiently transfer graphics information to a graphics subsystem employing masked span | |
US6072508A (en) | Method and apparatus for shortening display list instructions | |
US6833831B2 (en) | Synchronizing data streams in a graphics processor | |
US5966142A (en) | Optimized FIFO memory | |
US6222562B1 (en) | Fast processed screen image | |
US5999200A (en) | Method and apparatus for automatically controlling the destination of a graphics command in a register file |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070125 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20070328 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070328 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070425 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070625 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20070706 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070904 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071102 |
|
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: 20080205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080228 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110307 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120307 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130307 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130307 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140307 Year of fee payment: 6 |
|
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 |
|
EXPY | Cancellation because of completion of term |