(57)【特許請求の範囲】
【請求項１】
ディスプレイリストを受け取り、該ディスプレイリストをグラフィックスプロセッサに格納する方法において、該ディスプレイリストが、全ての可能なディスプレイリスト値の組から選択された、プリミティブをレンダリングするのに必要な値のみを含んでおり、不要な値を省いており、かつ該含まれている必要な値に関連づけられたアドレスをさらに含んでいる、方法であって、
前記可能なディスプレイリスト値のそれぞれは、描画パラメータと、演算コードインストラクションとからなり、
前記演算コードインストラクションは、前記プリミティブを含む描画オブジェクトのタイプを記述するオペコードと、インストラクション修飾子値とを含み、
前記プリミティブをレンダリングするのに不要なディスプレイリスト値は、その前記インストラクション修飾子が、そのディスプレイリスト値が前記プリミティブをレンダリングするのに不要なディスプレイリスト値であることを示す値にセットされ、
前記方法が、
（ａ）該ディスプレイリスト値を受け取るステップと、
（ｂ）前記インストラクション修飾子の値に基づいて不要な値をスキップして、該プリミティブをレンダリングするのに必要な該ディスプレイリスト値のみを、該グラフィックスプロセッサに含まれているレジスタファイルに格納するステップであって、該ディスプレイリストの値のそれぞれが、該値のそれぞれに関連づけられたレジスタアドレスに対応するレジスタに格納される、ステップと、を含む方法。
【請求項２】
前記ディスプレイリストが、システムバスを介してシステムメモリ装置から受け取られる、請求項１に記載の方法。
【請求項３】
前記システムバスから受け取られた前記ディスプレイリストが、ホストプロセッサから該システムバスに与えられたものである、請求項２に記載の方法。
【請求項４】
ホストプロセッサにより生成される、全ての可能なディスプレイリスト値の組のなかから選択された値を含むディスプレイリストにより規定されるプリミティブをレンダリングする方法であって、
前記可能なディスプレイリスト値のそれぞれは、描画パラメータと、演算コードインストラクションとからなり、
該演算コードインストラクションがオペコード値およびインストラクション修飾子値を含んでおり、
前記プリミティブをレンダリングするのに不要なディスプレイリスト値は、その前記インストラクション修飾子が、そのディスプレイリスト値が前記プリミティブをレンダリングするのに不要なディスプレイリスト値であることを示す値にセットされ、
該ディスプレイリストが該プリミティブをレンダリングするのに必要な描画パラメータのみを含んでおり、
前記方法が、
（ａ）前記ディスプレイリスト値を受け取り、前記インストラクション修飾子の値に基づいて不要なディスプレイリスト値をスキップして、前記プリミティブをレンダリングするのに必要な前記ディスプレイリスト値をレジスタファイルに格納するステップであって、該レジスタファイルが、前記ディスプレイリスト値を格納する複数のレジスタを含んでおり、該ディスプレイリストの値のそれぞれが、該値のそれぞれに関連づけられたレジスタアドレスに対応するレジスタに格納される、ステップと、
（ｂ）該オペコード値および該インストラクション修飾子値を該演算コードインストラクションから復号化することによって、レンダリングされるプリミティブのタイプを決定するステップと、
（ｃ）該レジスタファイル内の該複数のレジスタのなかから複数のレジスタを選択するステップであって、選択される前記複数のレジスタは、該プリミティブをレンダリングするのに必要な前記ディスプレイリスト値が転送されるレジスタのみである、ステップと、を含む方法。
【請求項５】
（ｄ）前記レジスタファイルから選択された前記値を、前記プリミティブをディスプレイ上にレンダリングするグラフィックスエンジンに与えるステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記ディスプレイリストが、前記レジスタファイルに格納される前にトランザクションキューに格納される、請求項４に記載の方法。
【請求項７】
プリミティブをレンダリングするのに必要な値のみを含むディスプレイリストを用いて該プリミティブをレンダリングするシステムであって、
全ての可能なディスプレイリスト値の組から選択された、プリミティブをレンダリングするのに必要な値のみを含む前記ディスプレイリストを生成するホストプロセッサであって、前記可能なディスプレイリスト値のそれぞれは、描画パラメータと、演算コードインストラクションとからなり、前記演算コードインストラクションは、前記プリミティブを含む描画オブジェクトのタイプを記述するオペコードと、インストラクション修飾子値とを含み、前記プリミティブをレンダリングするのに不要なディスプレイリスト値は、その前記インストラクション修飾子が、そのディスプレイリスト値が前記プリミティブをレンダリングするのに不要なディスプレイリスト値であることを示す値にセットされた、ホストプロセッサと、
前記可能なディスプレイリスト値を格納するシステムメモリと、
システムバスを介して該ホストプロセッサおよび該システムメモリに結合されたグラフィックスプロセッサであって、前記グラフィックスプロセッサは、レジスタファイルであって、前記ディスプレイリスト値を格納する複数のレジスタを含んでいる、該レジスタファイルを含み、前記インストラクション修飾子の値に基づいて不要なディスプレイリスト値をスキップして、前記プリミティブをレンダリングするのに必要な前記ディスプレイリスト値を前記システムメモリから取り出し、該ディスプレイリストを該グラフィックスプロセッサ内のレジスタファイルに格納し、前記プリミティブをレンダリングするのに必要な値は、前記インストラクション修飾子の値により確認される、グラフィックスプロセッサと、
該グラフィックスプロセッサに結合され、該プリミティブを表示する、ディスプレイと、
を備えたシステムにおいて、
前記ホストプロセッサが、前記ディスプレイリストを生成し、該ディスプレイリストを前記システムメモリに格納し、不要な描画パラメータをすべて省いて、前記プリミティブをレンダリングするのに必要な前記描画パラメータのみを前記ディスプレイリストに入れ、該ディスプレイリストに、該必要な描画パラメータのそれぞれに関連づけられたレジスタアドレスを格納し、
前記グラフィックスプロセッサが、前記ディスプレイリストの値を前記レジスタファイルに格納する際、該ディスプレイリストの値はそれぞれ、該レジスタファイル内の、前記必要な値のそれぞれに関連づけられた前記レジスタアドレスに対応するレジスタに格納され、
該グラフィックスプロセッサが、該プリミティブをレンダリングするのに必要な該値のみを含む該ディスプレイリストを用いて、プリミティブレンダリング操作を処理する、システム。
【請求項８】
前記グラフィックスプロセッサが、前記レジスタファイルから演算コードインストラクションを読み出して解釈することによって、該レジスタファイル内の、前記プリミティブをレンダリングするのに不要な値をスキップする、実行ユニットを備えている、請求項７に記載のシステム。
【請求項９】
前記プリミティブをレンダリングするのに必要な前記値のみが、前記レジスタファイルから、前記グラフィックスプロセッサに含まれるポリゴンおよびテクスチュアエンジンへと書き込まれる、請求項８に記載のシステム。
【請求項１０】
前記実行ユニットが再配列ロジックおよびレジスタアドレス発生器を備えており、該再配列ロジックが、前記演算コードインストラクションを受け取り、前記レジスタファイル内の、前記プリミティブをレンダリングするのに必要ない前記レジスタをスキップするように該レジスタアドレス発生器に指示を与える、請求項８に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広くはパーソナルコンピュータに用いられるグラフィックス制御システムに関する。具体的には、本発明は、特定のグラフィックス操作について格納され、処理されるパラメータの個数を最小化する方法および装置に関する。さらに詳しく言えば、本発明は、グラフィックスシステムによりレンダリングされるプリミティブの特定のタイプに基づきインストラクションを再配列する（reordering）ことによって、いくつかのレジスタを考慮から除外する技術に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ（ＰＣ）が利用可能になる以前は、コンピュータグラフィックスパッケージは、業界専用の高価なツールであった。初期のマイクロコンピュータは、典型的には、簡単なライン描画レンダリングしかできない低いスクリーン解像度（例えば、２５６×２５６）のものであった。マイクロコンピュータが進歩するにつれて、カラーディスプレイシステムが普及し、プログラマが、グラフィックスを用いてデータ出力を与えるのは日常茶飯事になり始めている。用いられたグラフィックス技術は、構造化されておらず、オブジェクトは、直線を用いた絶対座標を参照して規定された。その後、単一のインストラクションで円、楕円、方形およびポリゴンを描画可能とするためにグラフィックス「プリミティブ」が用いられた。加えて、カラーディスプレイは、典型的には、３原色の強度値により規定されるようになった。これらの３原色をブレンディングすることにより、高品質なカラーディスプレイが得られるようになったのである。
【０００３】
【発明が解決しようとする課題】
コンピュータグラフィックスが利用可能になったことにより、より高い解像度で３次元（３Ｄ）レンダリングを実現する能力への需要が生じている。中でもコンピュータアニメーションおよびゲームは、コンピュータグラフィックスの能力に大きな革命をもたらした。３Ｄイメージは、コンピュータシステムでは、例えばポリゴンや、線や、点のようなグラフィックスオブジェクトの集合体として表現されうる。ポリゴンはそれぞれ、頂点のセットとして規定されうる。それぞれの点には、例えばシェーディング、テクスチュア、色などの画素値が関連づけられる。ポリゴン内のその他の点の識別は、典型的には、線形補間を用いておこなわれる。いったん補間されると、ポリゴンは、そのポリゴンの直交する複数のロウを連続的にスキャンすることによって、コンピュータモニタ上にレンダリングされうる。
【０００４】
ポリゴンのようなグラフィックスプリミティブの各点（すなわち画素）に対する線形補間は、プロセッサに依存するところが非常に大きい。グラフィックスプロセッサにより初期値と最終値とが補間されることによって、イメージをレンダリングするための補間画素値が得られる。したがって、ビデオデータをグラフィックスコントローラへと通信するために、システムバス上のトラフィックを少なくしてコンピュータイメージを格納するのに必要なシステムメモリの容量が、少なくなる。それぞれの画素についてグラフィックス値を格納し、通信していた初期グラフィックスシステムに比べれば有利であるとはいうものの、勾配技術に基づくこのような従来の技術によるシステムは、それでも大量のデータを格納し、処理しなければならない。
【０００５】
画素パラメータは、ディスプレイリストのかたちでグラフィックスシステムに供給される。このディスプレイリストは、グラフィックスプロセッサによりレンダリングされるべきプリミティブのパラメータを規定する。加えて、ディスプレイリストは、グラフィックスプロセッサに対して、ポリゴン、線、点およびその他のグラフィックスプリミティブを描画するように「指令を与え」、プリミティブをレンダリングするのに必要な、利用可能な各種パラメータに対して開始値および勾配値をさらに与える。
【０００６】
ディスプレイリストを用いる現行のグラフィックス実現方式では、典型的には、グラフィックスプロセッサ内のレジスタファイルへと、データをシーケンシャルなフォーマットでロードする。それぞれのタイプのプリミティブについて、そのタイプのプリミティブをレンダリングするためには、特定のデータ値のセットが必要になる。例えば、画素グリッド内に描画される点は、ｘ、ｙ位置、色値、および深さ（depth）比較のためのｚ値を必要とすることがある。逆に、もしプリミティブが線であるのなら、必要になるパラメータには、ｘ方向における線の向きを規定する勾配と、ｙ方向における長さを規定するカウント値とが含まれることがある。ポリゴンの場合、その形状を規定するためには、さらに多くのパラメータが必要になる。
【０００７】
ディスプレイリストの一例を以下の表１に示す。
【０００８】
【表１】
0004091144.tif 000002
【０００９】
表１のレジスタファイルは、点、線およびポリゴンを描画するのに必要なパラメータを供給する。中央プロセッサ（またはメモリ）から与えられたディスプレイリストは、レジスタファイル内の各種レジスタにデータを供給する。しかし、これらの値のすべてが、点や線を描画するのに必要なわけではない。点や線を描画する際には、一般に、表１の値のうちのサブセットを含むディスプレイリストが用いられる。
【００１０】
また、プリミティブのタイプを規定するのに利用可能な値のすべてが、特定のプリミティブをレンダリングするのに用いられるわけではない。例えば、ある与えられた線には、緑および青の値が必要でないこともある。従来の技術によるシステムでは、もしレンダリングされるべきプリミティブが特定のパラメータを必要としないのなら、レジスタファイル内の対応するレジスタには、ヌルつまりゼロの値がロードされる。よって、例えば、もしフラットにシェーディングされた、Ｚバッファリングされたポリゴン（色シェーディング情報を必要としない）がレンダリングされるのなら、ディスプレイリストには、不要な値に対応するヌルの値がホストプロセッサによりロードされることになる。その後、これらのヌルの値を含むすべての値が、レジスタファイル内へとロードされる。
【００１１】
不要なパラメータに対してヌルの値を与えるこのステップは、レンダリング処理のそれぞれの段階で、パラメータを格納するのに必要なメモリの量を増やし、グラフィックスプロセッサにレジスタファイルをロードするのに必要な時間を長くし、また、システムバスや内部グラフィックスプロセッサ上でのトランザクションの量も増やす。その結果、レンダリング操作には、より多くのメモリ空間が必要になり、このような不要な値を考慮から除外する場合に比べて、かかる時間も長くなる。よって、レジスタをロードし、プリミティブをレンダリングするあいだに不要なパラメータを考慮から除外できるグラフィックスシステムを開発できれば、効果的であろう。また、もしホストプロセッサが、必要なパラメータ値のみをディスプレイリストの一部として伝送することができ、かつ、グラフィックスシステムがこれらのパラメータには必要な値しかないと認識して、使用されないデータの不要なロードを避けることができれば、やはり効果的であろう。不要なパラメータを考慮から除外するグラフィックスシステムは、このように明らかに有利であるにもかかわらず、今日まで、このようなシステムを開発したり、実施した者はいない。
【００１２】
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、レジスタをロードし、プリミティブをレンダリングするあいだに不要なパラメータを考慮から除外できるグラフィックスシステムを提供することにある。
【００１３】
【課題を解決するための手段】
本発明によるプリミティブをレンダリングするのに必要な値のみを含むディスプレイリストを生成する方法は、（ａ）該プリミティブを含む描画オブジェクトのタイプを記述するオペコードと、インストラクション修飾子値とを含む、演算コードインストラクションを該ディスプレイリストに入れるステップと、（ｂ）該オペコードにより規定される該プリミティブをレンダリングするのに必要な該値のみを該ディスプレイリストに入れるステップと、を含んでおり、そのことにより上記目的が達成される。
【００１４】
ある実施形態では、前記プリミティブをレンダリングするのに必要な前記値が、前記オペコードおよび前記インストラクション修飾子値により確認される。
【００１５】
ある実施形態では、もし前記プリミティブをレンダリングするのに深さ値が必要ないのなら、Ｚ関連値が前記ディスプレイリストから省かれる。
【００１６】
ある実施形態では、もし前記プリミティブに色が必要ないのなら、色に対応する値が前記ディスプレイリストから省かれる。
【００１７】
ある実施形態では、（ｃ）前記ディスプレイリストをシステムメモリ装置に格納するステップをさらに含む。
【００１８】
ある実施形態では、ホストプロセッサが、前記プリミティブをレンダリングするのに必要な前記値のみを含む前記ディスプレイリストを、該プリミティブをレンダリングするグラフィックスプロセッサに伝送する。
【００１９】
本発明によるディスプレイリストを受け取り、該ディスプレイリストをグラフィックスプロセッサに格納する方法は、該ディスプレイリストが、プリミティブをレンダリングするのに必要な値のみを含んでおり、不要な値を省いており、かつ該含まれている必要な値に関連づけられたアドレスをさらに含んでいる、方法であって、（ａ）該ディスプレイリストを受け取るステップと、（ｂ）該プリミティブをレンダリングするのに必要な該値のみを含む該ディスプレイリストを、該グラフィックスプロセッサに含まれているレジスタファイルに格納するステップであって、該値のそれぞれが、該値のそれぞれに関連づけられたレジスタアドレスに対応するレジスタに格納される、ステップと、を含んでおり、そのことにより上記目的が達成される。
【００２０】
ある実施形態では、前記ディスプレイリストが、システムバスを介してシステムメモリ装置から受け取られる。
【００２１】
ある実施形態では、前記システムバスから受け取られた前記ディスプレイリストが、ホストプロセッサから該システムバスに与えられたものである。
【００２２】
本発明によるホストプロセッサにより生成される演算コードインストラクションおよびディスプレイリストにより規定されるプリミティブをレンダリングする方法は、該演算コードインストラクションがオペコード値およびインストラクション修飾子値を含んでおり、該ディスプレイリストが該プリミティブをレンダリングするのに必要なパラメータのみを含んでいる、方法であって、（ａ）該演算コードインストラクションおよび該ディスプレイリストを受け取り、該演算コードインストラクションおよび該ディスプレイリストをレジスタファイルに格納するステップであって、該レジスタファイルが、複数のプリミティブに関連づけられた複数のパラメータを格納する複数のレジスタを含んでいる、ステップと、（ｂ）該オペコード値および該インストラクション修飾子値を該演算コードインストラクションから復号化することによって、レンダリングされるプリミティブのタイプを決定するステップと、（ｃ）該レジスタファイル内の該複数のレジスタを再配列することによって、該プリミティブをレンダリングするのに必要な該パラメータのみを該レジスタから転送するステップと、を含んでおり、そのことにより上記目的が達成される。
【００２３】
ある実施形態では、（ｄ）前記レジスタファイルから選択された前記値を、前記プリミティブをディスプレイ上にレンダリングするグラフィックスエンジンに与えるステップをさらに含む。
【００２４】
ある実施形態では、前記ディスプレイリストが、前記レジスタファイルに格納される前にトランザクションキューに格納される。
【００２５】
本発明によるプリミティブをレンダリングするのに必要な値のみを含むディスプレイリストを用いて該プリミティブをレンダリングするシステムは、該プリミティブを規定する複数のパラメータ値から構成されるディスプレイリストを生成するホストプロセッサであって、該複数のパラメータ値から構成される該ディスプレイリストが、該プリミティブをレンダリングするのに必要な該値のみを含む、ホストプロセッサと、該複数のパラメータから構成される該ディスプレイリストを格納するシステムメモリと、システムバスを介して該ホストプロセッサおよび該システムメモリに結合されたグラフィックスプロセッサであって、該複数のパラメータ値から構成される該ディスプレイリストを格納するレジスタファイルを含む、グラフィックスプロセッサと、該グラフィックスプロセッサに結合され、該プリミティブを表示する、ディスプレイと、を備えたシステムにおいて、該グラフィックスプロセッサが、該プリミティブをレンダリングするのに必要な該値のみを含む該ディスプレイリストを用いて、プリミティブレンダリング操作を処理し、そのことにより上記目的が達成される。
【００２６】
ある実施形態では、前記ホストプロセッサが、前記ディスプレイリストを生成し、該ディスプレイリストを前記システムメモリに格納する。
【００２７】
ある実施形態では、前記ホストプロセッサが、不要な値をすべて省いて、前記プリミティブをレンダリングするのに必要な前記値のみを前記ディスプレイリストに入れ、該ディスプレイリストに、該必要な値のそれぞれに関連づけられたレジスタアドレスを格納する。
【００２８】
ある実施形態では、前記グラフィックスプロセッサが、前記ディスプレイリストを前記システムメモリから取り出し、該ディスプレイリストを該グラフィックスプロセッサ内のレジスタファイルに格納する、システムであって、該ディスプレイリストの値がそれぞれ、該レジスタファイル内の、前記必要な値のそれぞれに関連づけられた前記レジスタアドレスに対応するレジスタに格納される。
【００２９】
ある実施形態では、前記グラフィックスプロセッサが、前記レジスタファイルから演算コードインストラクションを読み出して解釈することによって、該レジスタファイル内の、前記プリミティブをレンダリングするのに不要な値をスキップする、実行ユニットを備えている。
【００３０】
ある実施形態では、前記プリミティブをレンダリングするのに必要な前記値のみが、前記レジスタファイルから、前記グラフィックスプロセッサに含まれるポリゴンおよびテクスチュアエンジンへと書き込まれる。
【００３１】
ある実施形態では、前記実行ユニットが再配列ロジックおよびレジスタアドレス発生器を備えており、該再配列ロジックが、前記演算コードインストラクションを受け取り、前記レジスタファイル内の、前記プリミティブをレンダリングするのに必要ない前記レジスタをスキップするように該レジスタアドレス発生器に指示を与える。
【００３２】
以下に作用を説明する。
【００３３】
本発明は、レンダリングされるプリミティブのタイプに基づいて、レジスタファイルを含むレジスタセットを再配列する技術およびプロトコルを提供する。よって、本発明では、指示されたプリミティブをレンダリングするのに必要ないパラメータを考慮から除外する。その結果、ホストプロセッサは必要なパラメータ値のみを伝送し、グラフィックスコントローラは、特定のプリミティブをレンダリングするのに必要なパラメータのみをロードし、転送する。
【００３４】
プリミティブパラメータは、システムプロセッサ内のソフトウェアドライバにより生成され、ディスプレイリストのかたちでグラフィックスプロセッサに与えられる。ソフトウェアドライバは、指示されたプリミティブをレンダリングするのに必要なパラメータのみをディスプレイへと与える。好ましい実施の形態では、グラフィックスプロセッサは、ディスプレイリストをシステムプロセッサから直接得るか、またはリード動作を通してシステムメモリから得る、プリフェッチユニットを備えている。また、このプリフェッチユニットは、好ましくは、システムメモリから演算コード（つまり「オペコード」）のかたちでインストラクションを取り出す。
【００３５】
また、グラフィックスプロセッサは、好ましくは、プリフェッチユニットからオペコードを受け取り、そのオペコードを復号化する内部インストラクション実行ユニットを備えている。この実行ユニットもまた、ディスプレイリストを受け取り、そのディスプレイリストをレジスタファイルに格納する。実行ユニットは、そのオペコード復号化の一部として、レンダリングされるプリミティブのタイプを判定し、そのタイプに基づいて、レジスタファイルに格納されている値のうち、必要なレジスタ値のみが、プリミティブをレンダリングするポリゴンおよびテクスチュアエンジンへと伝送されるようにする。
【００３６】
【発明の実施の形態】
以下に述べる好ましい実施の形態の詳細な説明を添付の図面を参照しながら考慮すれば、本発明をよりよく理解することができるであろう。
【００３７】
図１を参照すると、本発明は、広くは、主勾配技術を用いて点、線およびポリゴンをレンダリングできる、パーソナルコンピュータ（ＰＣ）用のグラフィックスシステムに関している。図１に示されているように、このグラフィックスシステムは、大まかにいうと、システムバス２５に結合されたホストプロセッサ５０およびシステムメモリ７５と、グラフィックスプロセッサ１００と、例えばＲＤＲＡＭアレイ８５のようなフレームバッファと、ディスプレイユニット６０とを備えている。ホストプロセッサ５０としては、例えば、ＰＣの中央処理ユニットが挙げられ、システムメモリ７５としては、例えば、ＰＣのワーキングメモリまたはランダムアクセスメモリが挙げられる。ホストプロセッサ５０は、好ましくは、グラフィックスプロセッサ１００によりレンダリングされるディスプレイオブジェクトを記述するディスプレイパラメータを発生するソフトウェアドライバを備えている。よって、ソフトウェアドライバは、例えば、点の空間位置、線の終点、あるいはポリゴンの頂点座標を識別することができる。ポリゴンの場合、ソフトウェアドライバは、好ましくは、そのポリゴンの主勾配値および幅勾配の値も識別する。当業者には理解できるであろうが、適用可能な時、ソフトウェアドライバは、色の強度、テクスチュア、勾配値およびその他さまざまなパラメータ値を識別することができる。よって、ソフトウェアドライバは、グラフィックスプロセッサ１００によりレンダリングされるオブジェクトの主勾配および直交勾配、画素位置の開始値および停止値、強度、深さ、ならびに透明度を計算し、ロードする。ホストプロセッサすなわちソフトウェアドライバは、また、レンダリングされるプリミティブのタイプを規定する演算コードインストラクションを発生する。ソフトウェアドライバは、好ましくは、例えばハードドライブあるいはＣＤ ＲＯＭドライブデバイスのような永久磁気記憶装置からシステムメモリ７５へとロードされる。いったんロードされると、ソフトウェアドライバは、ホストプロセッサ５０により実行される。
【００３８】
なお、図１に図示されている特定の実施の形態は、パーソナルコンピュータシステムに用いられるグラフィックスシステムの可能な数多くの実現形態の一例にすぎないことは理解されたい。また、図１は明瞭さを重視して簡略化されているので、本発明を理解するのに必要ない多くの構成要素および制御信号が省略されている。好ましい実施の形態では、グラフィックスプロセッサ１００は、２Ｄおよび３Ｄグラフィックス、ならびに、コンピュータシステムのテキストおよびウィンドウ操作をハードウェア・サポートする。グラフィックスプロセッサ１００は、システムメモリ７５またはホストプロセッサ５０からディジタルデータを転送し、そのデータを処理してＲＤＲＡＭ８５に格納し、表示装置６０のディスプレイ上に最終的に表示されるようにする。
【００３９】
好ましい実施の形態では、ホストプロセッサは、必要なパラメータ値をディスプレイリストのかたちで供給する。このディスプレイリストは、典型的には、グラフィックスプロセッサ１００により要求されるまでシステムメモリ７５に格納される。あるいは、ホストプロセッサ５０は、よく知られている技術を用いて、ディスプレイリストをグラフィックスプロセッサ１００にライトしてもよい。いずれにせよ、本発明の原理によれば、ホストプロセッサは、描画されるプリミティブに必要なパラメータしかディスプレイリストには入れない。もしあるパラメータ値がそのプリミティブに必要ないのなら、ディスプレイリスト内のそれに対応するエントリは省かれる。この手法は、必要ないパラメータに対してディスプレイリストにヌル値すなわちゼロの値をロードする従来の技術による手法と比較されるべきである。いったんディスプレイリストがホストプロセッサ５０により生成されると、そのディスプレイリストは、好ましくは、グラフィックスプロセッサ１００により要求されるまでシステムメモリ７５に格納される。
【００４０】
ホストプロセッサ５０およびシステムメモリ７５は共に、好ましくは、システムバス２５を介してグラフィックスプロセッサ１００と通信する。システムバス２５は、標準工業規格アーキテクチャ（ＩＳＡ）バス、拡張されたＩＳＡ（ＥＩＳＡ）バス、周辺機器相互接続（ＰＣＩ）バス、ビデオ電子規格協会（ＶＥＳＡ）ローカルバス、およびその他の規格化されたコンピュータシステム用システムバスを含む、複数のそれぞれ異なるタイプのホストまたは入力／出力（Ｉ／Ｏ）バスのうちのいずれか１つであればよい。
【００４１】
図１をさらに参照すると、グラフィックスプロセッサ１００は、好ましくは、システムバス２５に結合されている。好ましい実施の形態では、グラフィックスプロセッサ１００は、好ましくは、バスマスタリング能力を備えている。これにより、グラフィックスプロセッサ１００は、システムバス２５に対するマスタシップを得ることができる。システムバスに対するマスタシップを得ることにより、グラフィックスプロセッサ１００は、ホストプロセッサ５０がライト動作をおこなうのを待つことなく、システムメモリ７５からディスプレイリストをリードすることができる。この動作モードは、「プロセッサモード」と呼ばれる。図１に示されているように、グラフィックスプロセッサ１００は、ディスプレイユニット６０およびＲＤＲＡＭ８５にも接続されている。好ましい実施の形態では、ＲＤＲＡＭ８５は、ＲＤＲＡＭバッファのバンクを備えている。ここで、ＲＤＲＡＭに格納されるディジタルデータは、複数の絵素（以下の説明では「画素」または「画素値」と称する）から構成される矩形のアレイを備えている。それぞれの画素は、例えば、８ビット値で規定されうる。この値は、ディスプレイユニット６０のスクリーン上の対応する画素の単一の色の強度を指定する。フルカラーディスプレイの場合、３原色で２４ビットの画素値を実現するためには、３つのパスがなされるか、または、３つのパラレルな論理スライスが実現される。ディスプレイユニット６０は、適切なタイプの表示装置であれば何でもよい。表示装置としては、例えば、デスクトップ、ワークステーションあるいはサーバアプリケーション用の陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、薄膜トランジスタ（ＴＦＴ）ディスプレイ、あるいは、パーソナルコンピュータ用のその他の適切な表示装置が挙げられる。
【００４２】
さて図２を参照すると、グラフィックスコントローラ１００は、好ましくは、実行ユニット１２５に結合されたプリフェッチユニット１１０と、レジスタファイル１５０と、トランザクションキュー１１５と、ポリゴンおよびテクスチュアエンジン１３５とを備えている。プリフェッチユニット１１０は、システムバス２５に対するインタフェースになる。概略的にいうと、プリフェッチユニット１１０は、ポリゴンおよびテクスチュアエンジン１３５が以前に取り出されたインストラクションを描画している間に、インストラクションおよびディスプレイリスト１７５を取り出し、この情報をトランザクションキュー１１５にロードする。グラフィックスプロセッサ１００がバスマスタモード（プロセッサモード）にある時、プリフェッチユニット１１０は、システムメモリ７５からディスプレイリストをリードするためのシステムバスアドレスを発生し、その後、トランザクションキュー１１５を、ディスプレイリストインストラクションおよびディスプレイリストで満たす。プリフェッチユニット１１０の内部には、好ましくは、システムバス２５の制御を調停するための制御信号を発生するロジックが設けられている。バスマスタリング制御信号に関する詳細は、当業者には直ちに認識できるであろう。動作がプロセッサモードであるあいだ、グラフィックスプロセッサ１００は、プリフェッチユニット１１０を介して、例えば、グラフィックス描画コマンド、レジスタロード、フレーム同期コマンド、および動作のプロセッサモードを開始し、終了するコマンドのような各種コマンドを取り出し、実行することができる。
【００４３】
プリフェッチユニット１１０および実行ユニット１２５の制御の下に、トランザクションキュー１１５の内容は、レジスタファイル１５０に転送され、ポリゴンおよびテクスチュアエンジン１３５によるレンダリングに後で用いられる。上述したように、ディスプレイリストは、プリミティブをレンダリングするのに必要な値のみを含んでいる。これに対して、レジスタファイル１５０は、どのようなプリミティブでもレンダリングできるように、可能なあらゆる値に対応するレジスタを含んでいる。よって、ディスプレイリストの値をレジスタファイル内の適切なレジスタへとロードするためには、ディスプレイリスト内の値はそれぞれ、レジスタファイル内のレジスタに対応する、関連づけられたアドレスをもつことになる。よって、プリフェッチユニット１１０および実行ユニット１２５は、ディスプレイリスト内のそれぞれの値を、レジスタファイルに含まれている、その値に関連づけられたアドレスに対応するレジスタに格納する。よって、例えばディスプレイリスト内のΔＭＡＩＮ値が、レジスタファイル内のレジスタ０×４０１４に格納されることは、表１を見れば、当業者には認識できるであろう。使用されない値はディスプレイリストには入れられないので、レジスタファイル１５０内でそれらの値に対応するレジスタは、好ましくは、以前の値から変更されないままにされる。
【００４４】
プリフェッチユニット１１０は、また、内部ライトサイクルのあいだに内部モジュールアドレスを生成し、例えばＷＡＩＴインストラクションのようなその他のインストラクションを復号化することもできる。ＷＡＩＴインストラクションは、スクリーンイベントが生じるまでインストラクションのプリフェッチを一時停止することによって、ディスプレイリストの実行と、スクリーンリフレッシュのイベントとの同期をとることを可能にする。よって、当業者には自明であろうが、プリフェッチユニット１１０は、好ましくは、グラフィックス操作の間にデータオーバーランおよびデータの枯渇（starvation）の発生を確実に防止できるように機能する。
【００４５】
さらに図２を参照すると、実行ユニット１２５は、概略的には、グラフィックスプロセッサ１００の制御状態をセットするように機能し、かつ、グラフィックスプロセッサの副構成要素の動作の同期をとる。好ましい実施の形態では、実行ユニット１２５は、トランザクションキューからレジスタファイルをロードし、ポリコマンドに対してはポリリクエストを発する。実行ユニット１２５は、描画インストラクションまたはレンダリングインストラクションが与えられてから次のインストラクションが与えられるまでの間は、ＩＤＬＥモードに置かれる。
【００４６】
いったんトランザクションキュー１１５からレジスタファイル１５０へとディスプレイリスト値のセットがロードされると、これらの値により規定されるプリミティブが、ポリゴンおよびテクスチュアエンジン１３５によりレンダリングされる。ポリゴンおよびテクスチュアエンジンが、レジスタファイルから現在のプリミティブをレンダリングしている間、プリフェッチユニット１１０は、レンダリングされるべき次のプリミティブに対応するディスプレイリストを受け取ることがある。そして、それを受け取った場合には、そのディスプレイリストをトランザクションキュー１１５へとロードする。
【００４７】
以下の説明では、演算コードインストラクションについて述べ、必要ない値なしでディスプレイリストがどのようにして構成されるかを述べる。図２のシステムメモリ７５は、そのそばにディスプレイリスト１７５の分解図を添えて示されている。このディスプレイリストは、グラフィックスシステムにより描画されるオブジェクトを規定するプリミティブ値を含んでいる。ディスプレイリストは、典型的には、ホストプロセッサ５０により実行されるソフトウェアドライバにより生成される。ディスプレイリスト１７５の分解図に示されているように、ディスプレイリスト１７５は、好ましくは、描画パラメータと共に演算コードインストラクションも含んでいる。この演算コードインストラクションは、好ましくは、３２ビットのダブルワードを含んでおり、以下の表２に記述されているように、オペコード、インストラクション修飾子、Ａ−フィールドおよびカウントフィールドを含んでいる。
【００４８】
【表２】
0004091144.tif 000003
【００４９】
演算コードインストラクションのビット２７〜３１は、グラフィックスプロセッサによりおこなわれる演算の種類（レンダリングされるプリミティブのタイプを含む）を指定するオペコード値を含んでいる。好ましい実施の形態では、異なる複数の種類の演算のうちのいくつかに対応するオペコードは、以下のように規定される。
【００５０】
【表３】
0004091144.tif 000004
【００５１】
好ましい実施の形態では、ある特定のオペコード（０００００）が、レンダリングプリミティブを点と規定する。同様に、別のオペコード値（００００１）がプリミティブを線と規定し、さらに別の値（０００１０）が、ポリゴンを規定する。内部デバイスレジスタをライトしたり、内部デバイスレジスタをリードしたり、ある与えられたアドレスでインストラクション処理を開始したり、グラフィックスプロセッサをプロセッサモードにリターンしたり、ポリゴンおよびテクスチュアエンジンのレジスタをクリアしたり、プリフェッチユニット１１０内の制御レジスタにデータをライトしたりするのに、その他のオペコードを設けることもできる。
【００５２】
演算コードインストラクションのビット１２〜２６は、おこなわれる描画操作の種類に関するさらなる詳細を与えるインストラクション修飾子フィールドを含んでいる。レンダリングコマンド（ＤＲＡＷ  ＰＯＩＮＴ、ＤＲＡＷ  ＬＩＮＥ、ＤＲＡＷ  ＰＯＬＹＧＯＮ）用のインストラクション修飾子フィールドとしては、例えば、以下の表４に示すものがある。
【００５３】
【表４】
0004091144.tif 000005
【００５４】
表４の例に示されているように、ビット２５は、好ましくは、演算コードインストラクションに後続するワードが追加の修飾子を含んでいるかどうかを表す拡張修飾子ビットを含んでいる。初期幅ビット２４は、好ましくは、初期三角形幅値がディスプレイリスト内に与えられるかどうかを指定する。好ましい実施の形態では、フェッチカラービット２３は、デスティネーションカラーが必要であるかどうかを判定する。アルファロードビット２２は、好ましくは、アルファレジスタがロードされるかどうかを表す。同様に、ディザビット２１、パターンビット２０および点画（stipple）ビット１９は、好ましくは、プリミティブがディザリングされるか、パターニングされるか、および／または点画されるかどうかをそれぞれ表す。好ましくは、ライティング処理は、ライティングイネーブルビット１８によりイネーブルされる。深さ機能（depth function）は、好ましくは、ビット１３を用いて選択され、オブジェクトを通して色を補間するグーロー関数は、ビット１２を用いて選択される。最後に、ビット１６および１７は、もしテクスチュアマッピングが望まれるのなら、テクスチュアマッピングモードを規定するために符号化される。もしテクスチュアマッピングが望まれないのなら、ビット１６および１７は、共にゼロにセットされる。もし線形テクスチュアマッピングが望まれるのなら、ビット１６および１７は、それぞれ０および１にセットされ、もしパースペクティブ補正されたテクスチュアマッピングが望まれるのなら、これらのビットは共に１にセットされる。
【００５５】
本発明によれば、必要な情報のみを含むディスプレイリストを効果的に生成することができる。すなわち、それぞれの種類のレンダリング操作に、表１のレジスタのすべてが用いられるわけではない。従来の技術では、それぞれの種類のレンダリング操作に１つのディスプレイリストフォーマットを開示する。例えば、従来の技術による点レンダリング操作は、Ｘ、Ｙ、Ｒ、Ｇ、Ｂ、Ｚ、ＶおよびＵ値を含むディスプレイリストを用いる。しかし、特定の点をレンダリングするためには、これらの値のうちの１サブセットが必要になるだけである。かつては、使用されない値に関連づけられたデータは、リスト内に入れられたままで、ヌル値がライトされていた。本発明では、ホストプロセッサ５０は、ディスプレイリスト内に必要な、ヌルではない値のみを入れる。必要な値の選択は、以下の表５〜表１０に例示されているように、受け取られた特定のレンダリングコマンドに基づいておこなわれる。
【００５６】
【表５】
0004091144.tif 000006
【００５７】
表５は、点をレンダリングするのに必要な８つの値（Ｘ、Ｙ、Ｒ、Ｇ、Ｂ、Ｚ、ＶおよびＵ）を含んでいる。第（１）欄は、表１に規定されている対応するアドレスを含んでいる。第（３）欄、第（４）欄および第（５）欄は、各種条件について、どの値をスキップすることができるか、つまりディスプレイリストから省くことができるかを示している。値がスキップ可能となる条件は、さらに表６にも示されている。もしグラフィックスプロセッサ１００が、マッピングされたカラーモード、あるいは直接カラーモードで動作しているのなら、Ｇ値およびＢ値はスキップすることができる。なぜなら、これらの値は用いられないからである。さらに、もしＺ深さ機能が、表４のインストラクション修飾子フィールドにおけるビット１３を通してオフされるのなら、ディスプレイリストのＺ値をスキップすることができる。最後に、もし表６の最後の欄に示されているようにテクスチュアマッピングがオフされるのなら、Ｖ値およびＵ値をスキップすることができる。表４に示されているように、テクスチュアマッピングは、演算コードインストラクションのインストラクション修飾子フィールドのビット１６および１７に「０」をライトすることによって、オフされうる。
【００５８】
【表６】
0004091144.tif 000007
【００５９】
表６は、点をレンダリングする時にディスプレイリストから値を省くことができる、３つのモードを規定している。当業者には知られているように、マッピングされたカラーモードあるいは直接カラーモードでは、表示される色を決めるのにカラールックアップテーブルをパレットに用いることができる。Ｚモードでは、Ｚ深さ機能が実行される。最後に、テクスチュアモードは、プリミティブをレンダリングするのに、線形テクスチュアマッピングが用いられるのか、パースペクティブマッピングが用いられるのか、あるいはいずれも用いられないのかを決める。
【００６０】
【表７】
0004091144.tif 000008
【００６１】
表７は、点をレンダリングするのに必要な値である、Ｘ、Ｙ、Ｒ、Ｇ、Ｂ、ΔＭＡＩＮ、Ｙ  ＣＯＵＮＴ、ΔＷＩＤＴＨ  ＯＰＰ、ΔＲ  ＭＡＩＮ、ΔＧ  ＭＡＩＮ、ΔＢ  ＭＡＩＮ、Ｚ、ΔＺ  ＭＡＩＮ、Ｖ、Ｕ、ΔＶ  ＭＡＩＮ、ΔＵＭＡＩＮ、Δ２Ｖ  ＭＡＩＮおよびΔ２Ｕ  ＭＡＩＮを含んでいる。第（１）欄に示されたこれらの値のアドレスは、表１と同じである。ただし、Δ２Ｖ  ＭＡＩＮは、アドレス０×４０６８に対応しており、Δ２Ｕ  ＭＡＩＮは、アドレス０×４０６Ｃに対応している。第（３）欄〜第（７）欄は、５つのそれぞれ異なる状況について、スキップされる値を示している。マッピングされたカラーモード、Ｚオフ、およびテクスチュアマッピングオフの条件は、上述したモードと同じであるが、これらの条件が続くあいだは、さらなる値がスキップ可能となる。マッピングされたカラーモードの場合、Ｇ値およびＢ値がスキップされるのみならず、ΔＧ  ＭＡＩＮ値およびΔＢ  ＭＡＩＮ値もスキップ可能となる。Ｚ深さ機能がオフされる時、Ｚ値およびΔＺ  ＭＡＩＮ値が第（５）欄でスキップされる。テクスチュアマッピングモードが第（６）欄でオフされる時、Ｖ値、Ｕ値、ΔＶ  ＭＡＩＮ値、ΔＵ  ＭＡＩＮ値、Δ２Ｖ  ＭＡＩＮ値およびΔ２Ｕ  ＭＡＩＮ値がスキップ可能となる。さらに、もし、表８でポリゴンを通して色を補間するものと記載されている、第（４）欄のグーローシェーディングモードが、演算コードインストラクションのインストラクション修飾子フィールドのビット１２（表４）を通してオフされるのなら、色値ΔＲ  ＭＡＩＮ、ΔＧ  ＭＡＩＮおよびΔＢ  ＭＡＩＮがスキップ可能となる。さらには、もし、インストラクション修飾子フィールドのビット１６および１７に値「１」をライトすることによって実行される、パースペクティブテクスチュアマッピング（第（７）欄）がオフされるのなら、Δ２Ｖ  ＭＡＩＮ値およびΔ２Ｕ  ＭＡＩＮ値がスキップ可能となる。
【００６２】
【表８】
0004091144.tif 000009
【００６３】
表８におけるマッピングされた／直接カラーの条件およびＺの条件は、表６に記載されている条件と実質的に同じである。表８で言及されているグーローモードは、上述したように、線を通して色を補間することを可能にする。最後に、テクスチュアモードエントリは、テクスチュアマッピングモードとパースペクティブテクスチュアマッピングモードに言及している。これらのモードのうち、いずれか１つが実施されるか、両方が実施されるか、または、いずれも実施されないかという３つの選択肢がある。
【００６４】
【表９】
0004091144.tif 000010
【００６５】
表９は、ポリゴンをレンダリングする時の各種状況について、スキップ可能な値を含んでいる。もしグラフィックスプロセッサ１００が、マッピングされたカラーモードであるか、または直接カラーモードであるのなら、ディスプレイリスト内のＧ値、Ｂ値、ΔＧ  ＭＡＩＮ値、ΔＢ  ＭＡＩＮ値、ΔＧ  ＯＲＴＨＯ値およびΔＢ  ＯＲＴＨＯ値は、表９の第（３）欄に示されているように、スキップされうる。第（４）欄では、もしグラフィックスプロセッサ１００がグーローシェーディングモードをオフしたのなら、ΔＲ  ＭＡＩＮ値、ΔＧ  ＭＡＩＮ値、ΔＢ  ＭＡＩＮ値、ΔＲ  ＯＲＴＨＯ値、ΔＧ  ＯＲＴＨＯ値およびΔＢ  ＯＲＴＨＯ値がスキップ可能となる。さらに、もしＺモードがオフされているのなら、第（５）欄に示されているように、Ｚ値、ΔＺ  ＭＡＩＮ値およびΔＺ  ＯＲＴＨＯ値がスキップ可能となる。もし初期幅制御がオフされているのなら、ＷＩＤＴＨ  ＭＡＩＮ値およびＷＩＤＴＨ  ＯＰＰ値がスキップ可能となる（第（６）欄）。初期幅制御は、ポリゴンをレンダリングするためだけに用いられ、表４に示されているように、演算コードインストラクションのインストラクション修飾子フィールドのビット２４を通して実行される。最後に、もし第（７）欄および第（８）欄においてテクスチュアマッピングモードあるいはパースペクティブテクスチュアマッピングモードがオフされるのなら、Δ２Ｖ  ＭＡＩＮ値、Δ２Ｕ  ＭＡＩＮ値、Δ２Ｖ  ＯＲＴＨＯ値、Δ２Ｕ  ＯＲＴＨＯ値、ΔＶ  ＯＲＴＨＯ  ＡＤＤ値およびΔＵ  ＯＲＴＨＯ  ＡＤＤ値がスキップ可能となる。また、テクスチュアマッピングモードがオフされるのなら、Ｖ値、Ｕ値、ΔＶ  ＭＡＩＮ値、ΔＵ  ＭＡＩＮ値、ΔＶ  ＯＲＴＨＯ値およびΔＵ  ＯＲＴＨＯ値をディスプレイリストから省くことができる。
【００６６】
【表１０】
0004091144.tif 000011
【００６７】
表１０は、ポリゴンに関するパラメータをディスプレイリストから省くことができる条件を記述している。マッピングされたカラーモードあるいは直接カラーモードは、表６および表８で、表示される色を決めるのにカラールックアップテーブルを用いるものとして言及されている。グーローモードは、ポリゴンを通して色を補間することを可能にするが、Ｚ深さ機能は、もしオフされれば、Ｚ値をスキップ可能とする。さらに、初期幅関数は、初期の三角形の幅がディスプレイリストに与えられるかどうかを判定する。最後に、テクスチュアモードエントリは、テクスチュアマッピングモードおよび／またはパースペクティブテクスチュアマッピングモードが用いられるかどうかについて言及する。
【００６８】
要約すると、ホストプロセッサ５０は、上述した各表およびそれに付随するテキストで説明したように、さまざまな具体的状況の下にプリミティブをレンダリングするのに必要ではない値をディスプレイリストから省くことによって、プリミティブをレンダリングするのに必要最小限のディスプレイリスト１７５を生成する。例えば、３原色成分のすべてと、比較用のＺ深さ値と、テクスチュアマッピングとを用いて点をレンダリングするためのディスプレイリストは、Ｘ、Ｙ、Ｒ、Ｇ、Ｂ、Ｚ、ＶおよびＵの値を含んでいる。しかし、点をレンダリングするのに、テクスチュアマッピングをオフし、Ｚ深さ値を用いないと、ホストプロセッサが、Ｘ、Ｙ、Ｒ、ＧおよびＢの値のみを含むディスプレイリストを生成する結果となる。この場合、上述した点のレンダリングよりも、値の数は３つ少なくなる。また、本発明によれば、ディスプレイリストに含まれている必要最小限の値から構成されるセットを用いて、プリミティブをレンダリングできるという効果が得られる。
【００６９】
以下の説明は、上述したようにプリミティブをレンダリングするのに必要な値のみを含むディスプレイリストを用いて、プリミティブがレンダリングされる手法について述べたものである。ここでは、議論のために、レンダリング操作用の値は、あらかじめレジスタファイル１５０に格納されているものとする。図３を参照すると、実行ユニット１２５は、レジスタアドレス発生器２２５と、再配列ロジック２５０とを含むものとして図示されている。当業者には理解できることであろうが、実行ユニットは、図３には図示されていないその他の要素を含んでいてもよい。
【００７０】
レジスタアドレス発生器２２５は、レジスタファイル１５０内のレジスタに関するアドレスＮを発生し、信号ライン２２６を介してそのアドレスＮをレジスタファイル１５０へと伝送する。すると、レジスタ内のアドレスＮにおけるデータが、信号ライン１５１を介してポリゴンおよびテクスチュアエンジンへと伝送される。再配列ロジック２５０は、オペコード自体と、インストラクション修飾子の値とを含む演算コードインストラクションを受け取る。オペコードの値およびインストラクション修飾子の値から、再配列ロジック２５０は、レジスタファイル内において、オペコードダブルワードに対応するプリミティブをレンダリングするのに必要なレジスタはどれかを確定し、表５〜表１０で見てきたように、必要ない値をスキップする。再配列ロジック２５０は、好ましくは、レジスタファイル１５０内で、プリミティブをレンダリングするのに必要な次の値に対応するアドレスに、以前のアドレスＮをインクリメントするようにレジスタアドレス発生器２２５を制御する、ステートマシンを含んでいる。具体的には、再配列ロジック２５０は、信号ライン２５２を介して「Ｎに加算する値」をレジスタアドレス発生器２２５に伝送する。「Ｎに加算する値」は、プリミティブをレンダリングするのに必要な次のレジスタを得るためには、スキップしなければならないレジスタファイル内のレジスタの個数を指定する。よって、レジスタファイル内のレジスタは、プリミティブをレンダリングするのに必要なパラメータのみをレジスタファイルからポリゴンおよびテクスチュアエンジンへと転送するために、再配列される。
【００７１】
例えば、もしオペコードおよびインストラクション修飾子が、レンダリングされるプリミティブはＺ深さをもたないポリゴンであることを示すのなら、再配列ロジック２５０は、レジスタアドレス発生器に対して、レジスタファイル１５０内のレジスタ０×４０４４までのすべてのレジスタを選択するように指示を与える、「Ｎに加算する値」である４を与える。再配列ロジック２５０は、Ｚレジスタ、ΔＺ  ＭＡＩＮレジスタおよびΔＺ  ＯＲＴＨＯレジスタをスキップしなければならないことを認識する。なぜなら、これらのレジスタは、所望のポリゴンをレンダリングするのに必要ないからである。これに応答して、再配列ロジック２５０は、レジスタアドレス発生器２２５に対して、これら３つのＺ関連レジスタをスキップするように指示を与える、「Ｎに加算する値」である１６をレジスタアドレス発生器２２５に与える。
【００７２】
いったん以上の開示を十分に理解すれば、数多くの変更および改変が、当業者には自明になるであろう。添付の請求の範囲は、このような変更および改変のすべてを包含すると解釈されるように意図されているものである。
【００７３】
【発明の効果】
本発明によれば、レジスタをロードし、プリミティブをレンダリングするあいだに不要なパラメータを考慮から除外できるグラフィックスシステムを提供することができる。
【図面の簡単な説明】
【図１】本発明の原理により、コンピュータシステムのシステムバスに接続されたグラフィックスプロセッサの簡略ブロック図である。
【図２】図１のグラフィックスプロセッサの一部をより詳細に示すブロック図である。
【図３】描画すべきプリミティブをレンダリングするのに必要な値のみをレジスタファイルから選択するための実施の形態の一例を示すブロック図である。
【符号の説明】
２５  システムバス
５０  ホストプロセッサ
６０  ディスプレイ
７５  システムメモリ
８５  ＲＤＲＡＭアレイ
１００  グラフィックスプロセッサ
【図１】
0004091144.tif 000012
【図２】
0004091144.tif 000013
【図３】
0004091144.tif 000014