JPH0798766A - グラフィックス・アクセラレータにおいてグラフィックス・ジオメトリ・データを前処理する方法および装置 - Google Patents
グラフィックス・アクセラレータにおいてグラフィックス・ジオメトリ・データを前処理する方法および装置Info
- Publication number
- JPH0798766A JPH0798766A JP6136711A JP13671194A JPH0798766A JP H0798766 A JPH0798766 A JP H0798766A JP 6136711 A JP6136711 A JP 6136711A JP 13671194 A JP13671194 A JP 13671194A JP H0798766 A JPH0798766 A JP H0798766A
- Authority
- JP
- Japan
- Prior art keywords
- vertex
- packet
- geometry
- floating point
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
フィックス・アクセラレータ用の、ジオメトリ入力デー
タを種々のフォーマットから翻訳するコマンド・プリプ
ロセッサを得る。 【構成】 コマンド・プリプロセッサは、ホストプロセ
ッサにより翻訳パラメータでプリプログラムされる再フ
ォーマット制御レジスタのセットを含む。再フォーマッ
ト制御レジスタ内の翻訳パラメータは翻訳オペレーショ
ンを指定する。
Description
ックス装置の分野に関するものである。更に詳しくいえ
ば、本発明は高性能三次元グラフィックス・アクセラレ
ータ用コマンド・プリプロセッサに関するものである。
はコンピュータ装置用の特殊化されたグラフィックス表
現サブシステムである。コンピュータ装置のホストプロ
セッサで実行するアプリケーション・プログラムは、表
示装置で表示するための三次元グラフィックス要素を定
める三次元ジオメトリ入力データを生成する。アプリケ
ーションはジオメトリ入力データをホストプロセッサか
らグラフィックス・アクセラレータへ転送する、その
後、グラフィックス・アクセラレータは対応するグラフ
ィックス要素を表示装置で表現する。
次元グラフィックス要素を定めるために好適なフォーマ
ットに従って三次元ジオメトリ入力データを生成する。
好適なフォーマットの例はPHIGS規格である。しか
し、予め定められている異なるフォーマットおよび既存
のフォーマットの変形の拡散が最近生じている。異なる
フォーマットが類似の作図機能を定めるとしても、予め
定められている異なるフォーマットの多くをサポートす
るために、高性能グラフィックス・アクセラレータが典
型的に求められる。
ジオメトリ入力データを種々の所定のフォーマットに従
って処理するために、グラフィックス・アクセラレータ
をマイクロコーディングすることにより、種々の所定の
フォーマットをサポートする。そのような装置において
は、グラフィックス・アクセラレータは対応するグラフ
ィックス要素を表現する(レンダリング)する前に、種
々のフォーマットを分解および翻訳するためのマイクロ
コード・タスクを含む。不幸なことに、そのようなマイ
クロコード・タスクはグラフィックス・アクセラレータ
・マイクロコードのサイズを非常に大きくし、かつその
マイクロコードを非常に複雑にするから、グラフィック
ス・アクセラレータのコストが増大し、表現性能が低下
する。
所定のフォーマットをグラフィックス・アクセラレータ
のための簡単にしたフォーマットへ翻訳するために、ホ
ストプロセッサを採用することにより種々のフォーマッ
トをサポートする。不幸なことに、ホストプロセッサに
よるフォーマット翻訳は、グラフィックス・アクセラレ
ータへのスループットを大幅に減少させることにより、
グラフィックス装置全体の性能を低下させることがある
システムの隘路である。
クス・アクセラレータにおいて、種々のジオメトリ入力
データ・フォーマットを共通フォーマットへ翻訳するこ
とにより、より高性能で、コストが比較的低いグラフィ
ックス・アクセラレータを可能にするコマンド・プリプ
ロセッサを提供することを目的とする。
ータ装置における高性能三次元グラフィックス・アクセ
ラレータ用コマンド・プリプロセッサを開示する。この
コマンド・プリプロセッサはジオメトリ入力データを種
々のフォーマットから標準的な再フォーマットされた頂
点パケットへ翻訳する。コマンド・プリプロセッサは3
Dジオメトリ・パイプラインおよび直接ポート・データ
・パイプラインをインプリメントする。
リ・パイプラインは、プログラムされた入力/出力また
は直接メモリ・アクセスのいずれかを用いてホストバス
を介して入力頂点パケットをアクセスする。コマンド・
プリプロセッサは入力頂点パケットを再フォーマットさ
れた頂点パケットへ再フォーマットし、それから再フォ
ーマットされた頂点パケットを、出力ジオメトリ・パケ
ットとして浮動小数点バスを介して転送する。この場合
には、希望によりデータを置換したり、データを圧縮し
たりする。
ト化制御レジスタを含む。ホストプロセッサは一組の翻
訳パラメータを再フォーマット化制御レジスタへプリプ
ログラムする。再フォーマット化制御レジスタ中の翻訳
パラメータは翻訳オペレーションおよび再フォーマット
された頂点パケットを指定する。
・アクセス・プロトコルに従ってホストバスを介して入
力頂点パケットをアクセスする。入力頂点パケットはグ
ラフィックス・プリミティブを定めるジオメトリ入力デ
ータを含む。コマンド・プリプロセッサは入力頂点パケ
ットをバケット・バッファに格納する。
入力データをバケット・バッファから読出し、再フォー
マット化制御レジスタにおいて指定されている翻訳パラ
メータに従ってそのジオメトリ入力データを翻訳する。
ットされたジオメトリ・データを頂点バッファから読出
し、再フォーマット化制御レジスタにおいて指定されて
いるパラメータに従ってタップル置換(tupple
substitution)およびデータ圧縮を行うこ
とにより出力ジオメトリ・パケットを生成する。
ットされた頂点パケット中に3つの頂点を含み、ベクト
ルのためのプリミティブが再フォーマットされた頂点パ
ケット中に2つの頂点を含み、ドットのためのプリミテ
ィブが再フォーマットされた頂点パケット中に1つの頂
点を含むように、再フォーマットされた頂点パケットが
三角形と、ベクトルと、ドットとのためのプリミティブ
を再フォーマットされた頂点パケットが含むかどうかを
翻訳パラメータが指定する。
頂点パケットのための、バケット・バッファからの一組
のソース・タップルを指定する。翻訳パラメータは再フ
ォーマットされた頂点パケットのヘッダのソースを指定
する。翻訳パラメータはバケット・バッファ中の入力頂
点パケットに含まれている頂点のリオーダーリングを指
定する。翻訳パラメータはジオメトリ入力データに対す
るデータ変換オペレーションを指定する。
における高性能三次元グラフィックス・アクセラレータ
用コマンド・プリプロセッサを開示するものである。説
明の目的のための以下の説明においては、本発明を完全
に理解できるようにするために、特定の応用、特定の
数、特定の装置、特定の構成、および特定の回路につい
て述べる。しかし、本発明はそのような特定の詳細無し
で実施できることが当業者には明らかであろう。他の場
合には、本発明を不必要にあいまいにしないようにする
ために、周知の装置は線図で、またはブロック図の態様
で示す。
ブシステム22と、グラフィックス・アクセラレータ2
4と、表示装置26とを含むコンピュータ装置のブロッ
ク図が示されている図1を参照する。ホストプロセッサ
20と、メモリ・サブシステム22と、グラフィックス
・アクセラレータ24とはホストバス28を介して通信
するためにおのおの結合される。
代表するものである。ホストプロセッサ20は多様なコ
ンピュータ・プロセッサ、マルチプロセッサおよびCP
Uを代表し、メモリ・サブシステム22は、ランダム・
アクセス・メモリおよび大容量記憶装置を含めた多様な
メモリ・サブシステムを代表する。ホストバス28は、
ホストプロセッサと、CPUと、メモリ・サブシステム
および特殊なサブシステムとの間の通信のための多様な
通信バスまたはホストコンピュータ・バスを代表するも
のである。
た入力/出力(I/O)プロトコルに従って、ホストバ
スを介して情報をグラフィックス・アクセラレータ24
との間でやり取りする。また、グラフィックス・アクセ
ラレータ24は直接メモリ・アクセス(DMA)プロト
コルに従ってメモリ・サブシステム22をアクセスす
る。
フィックス・アプリケーション・プログラムは、表示装
置26で表示するための画像を定める三次元ジオメトリ
情報を含むジオメトリ入力データ・アレイを生成する。
ホストプロセッサ20はそれらのジオメトリ入力データ
・アレイをメモリ・サブシステム22へ転送する。その
後で、グラフィックス・アクセラレータ24はDMAア
クセス・サイクルを用いて、ホストバス28を介してジ
オメトリ入力データ・アレイを読み込む。あるいは、ホ
ストプロセッサ20は、プログラムされたI/Oによ
り、ホストバス28を介してジオメトリ入力データ・ア
レイをグラフィックス・アクセラレータ24へ転送す
る。
情報は、頂点座標(頂点)を含む入力頂点パケットのス
トリームと、モデル空間と一般に呼ばれる三次元空間中
の三角形、ベクトルおよび点を定めるその他の情報を含
む。各入力頂点パケットは、頂点の法線、頂点の色、フ
ァセットの法線、ファセットの色、テクスチャ・マップ
座標、ピック−id、ヘッダおよびその他の情報を含む
三次元頂点情報の任意の組み合わせを含むことができ
る。
角形の「ジグザグ」パターンの態様で三角形ストリップ
を定めることができる。ヘッダ無し入力頂点パケットは
三角形の「スター・ストリップ」パターンの態様で三角
形ストリップを定めることもできる。また、ヘッダ無し
入力頂点パケットは分離された三角形のストリップを定
めることができる。ヘッダを持つ入力頂点パケットは各
三角形にたいする三角形ストリップ・フォーマットを変
更でき、かつ「ジグザグ」フォーマットと、「スター」
フォーマットと、分離された三角形との間で変更でき
る。
4のブロック図である。このグラフィックス・アクセラ
レータ24はコマンド・プリプロセッサ30と、一組の
浮動小数点プロセッサ40〜43と、一組の線引きプロ
セッサ50〜54と、フレーム・バッファ100と、ポ
ストプロセッサ70と、ランダム・アクセス・メモリ/
デジタル−アナログ変換器(RAMDAC)72とで構
成される。RAMDAC72は、ルックアップ・テーブ
ル機能を実現する市販のRAMDACに類似する。一実
施例においては、コマンド・プリプロセッサ30と、浮
動小数点プロセッサ40〜43と、線引きプロセッサ5
0〜54と、ホストプロセッサ70とはおのおの個々の
集積回路チップである。
ス28を介して通信するように結合される。コマンド・
プリプロセッサ30はメモリ・サブシステム32から
の、ホストバス28を介するジオメトリ入力データ・ア
レイのDMA読出しを行う。ホストプロセッサ20は仮
想メモリ・ポインタをコマンド・プリプロセッサ30へ
転送する。仮想メモリ・ポインタはメモリ・サブシステ
ム22中のジオメトリ入力データ・アレイを指示する。
コマンド・プリプロセッサ30は、ホストプロセッサ2
0からの介在無しにメモリ・サブシステム22へのDM
A読出しを行うために、仮想メモリ・ポインタを物理的
メモリ・アドレスへ変換する。
オメトリ・パイプラインと、直接ポート・パイプライン
との2つのデータ・パイプラインを実現する。直接ポー
ト・パイプラインにおいては、コマンド・プリプロセッ
サ30は直接ポート・データをホストバス28を介して
受け、その直接ポート・データをコマンド線引きバス
(CD−BUS)80を介して線引きプロセッサ50〜
54へ転送する。キャラクタ書込み、スクリーン・スク
ロール、および線引きプロセッサ50〜54と協力して
のブロック移動のようなX11機能を実行するために、
直接ポート・データは希望により処理される。直接ポー
ト・データは線引きプロセッサ50〜54へのレジスタ
書込みと、フレーム・バッファ100への個々の画素書
込みとを含むこともできる。
は、コマンド・プリプロセッサ30は、ジオメトリ入力
データ・アレイからの入力頂点パケットのストリームを
アクセスし、入力頂点パケットに含まれている情報を再
オーダし、希望によっては入力頂点パケット中の情報を
削除する。コマンド・プリプロセッサ30は、入力頂点
パケットからの情報を、標準化された要素オーダを有す
る再フォーマットされた頂点パケットへ再オーダする。
それから、コマンド・プリプロセッサ30は出力ジオメ
トリ・パケットをコマンド−浮動小数点バス(CF−B
US)82を介して浮動小数点プロセッサ40〜43の
1つへ転送する。出力ジオメトリ・パケットは再フォー
マットされた頂点パケットを含む。この場合には、希望
により変更したり、データを置換できる。
のフォーマットからの各入力頂点パケット中の情報を、
32ビットIEEE浮動小数点数フォーマットへ変換す
る。コマンド・プリプロセッサ30は8ビット浮動小数
点数と、16ビット固定小数点数と、32ビットまたは
64ビットIEEE浮動小数点数を変換する。コマンド
・プリプロセッサ30はヘッダ・フィールドを再フォー
マットまたは挿入し、定数を挿入し、順次ピック−id
を発生して、挿入する。コマンド・プリプロセッサ30
はヘッダの連鎖ビットを検査し、入力頂点パケットから
の情報を、点と、線と、三角形とを含む完全に分離され
たジオメトリ・プリミティブを含んでいる再フォーマッ
トされた頂点パケットへ再び組み立てる。
メトリ・パケットをコマンド−浮動小数点バス(CF−
BUS)82を介して浮動小数点プロセッサ40〜43
の1つへ転送する。コマンド・プリプロセッサ30は制
御信号および状態信号を浮動小数点プロセッサ40〜4
3からCF−BUS82の制御部を介して受ける。制御
信号および状態信号は、出力ジオメトリ・パケットを受
けるために、浮動小数点プロセッサ40〜43内の入力
バッファの利用可能性を指示する。
の十分に類似する。各浮動小数点プロセッサ40〜43
は、並列の入力および出力パケット通信ハードウェアと
ともに、32ビットマイクロコードによりドライブされ
る浮動小数点コアを実現する。各浮動小数点プロセッサ
40〜43は、乗算と、ALU演算と、逆数(reci
procal)演算と、逆数平方根(reciproc
al squareroot)演算と、整数演算とを含
めた浮動小数点関数を実行する。各浮動小数点プロセッ
サ40〜43は、特殊化されたグラフィックス命令およ
び諸機能の広い分類を実行する。グラフィックス・アク
セラレータ24により実現された最大共通三次元グラフ
ィックス処理マイクロコード内部ループを実行するため
に求められる数の高速内部レジスタを実現するために、
各浮動小数点プロセッサ40〜43は最適にされる。
ッサ40〜43は、単一の集積回路チップで実現され
る。各浮動小数点プロセッサ40〜43のために求めら
れる唯一のサポートチップは、制御記憶装置(CS)に
外部マイクロコードを供給する4つのSRAMチップの
セットである。
引きプロセッサ50〜54による走査変換のための三角
形を調製するための機能を実行する。この調製機能の最
初の過程は、三角形の3つの頂点をyの昇順で分類する
過程を含む。各浮動小数点プロセッサ40〜43は、線
引きパケットをCD−BUS80を介して全ての線引き
プロセッサ50〜54へ同報通信する。線引きパケット
は、三角形と、点と、線とを含めた最後のジオメトリ・
プリミティブを備える。
バッファ100のVRAM制御チップとして機能する。
線引きプロセッサ50〜54は、浮動小数点プロセッサ
40〜43の1つから受けた線引きパケットに従って、
またはコマンド・プリプロセッサ30から受けた直接ポ
ート・パケットに従って、画像をフレーム・バッファ1
00へ同時に供給する。
ォーキング(edgewalking)機能の走査変換
機能および走査補間を実行する。線引きプロセッサ50
〜54の間におけるエッジウォーキング機能および走査
補間機能を反復することにより、別々のエッジウォーキ
ングプロセッサおよび走査補間プロセッサの間の大規模
通信通路の必要性を解消し、それにより各線引きプロセ
ッサ50〜54のピンの数を最少にし、プリント回路板
のスペースに対する要求を減少する。
のVRAMインターリーブ・バンクとして構成される。
線引きプロセッサ50は画素データをインターリーブb
ank_0 61へ書込み、線引きプロセッサ51は画
素データをインターリーブbank_1 62へ書込
み、線引きプロセッサ52は画素データをインターリー
ブbank_2 63へ書込み、線引きプロセッサ53
は画素データをインターリーブbank_3 64へ書
込み、線引きプロセッサ54は画素データをインターリ
ーブbank_4 65へ書込む。
るインターリーブ・バンク61〜65内で見ることがで
きる画素だけを表現する。線引きプロセッサ50〜54
は、線引きパケットにより定められた三角形プリミティ
ブを同時に表現して、正しく組み合わされてラスタ化さ
れた画像をフレーム・バッファ100の内部に生ずる。
各線引きプロセッサ50〜54は、最後のラスタ化され
た画像の各走査線に沿う5番目ごとの画素をラスタ化す
る。各線引きプロセッサ50〜54は、画素スペース0
個分、1個分、2個分、3個分、または4個分だけ右へ
偏倚させられた走査線をスタートさせる。
ーイングを希望により行う。表現される三角形、ベクト
ルまたは点の各画素は、浮動小数点プロセッサで深さキ
ューイングを行う従来のグラフィックス装置の低性能と
いう不利益なしに、線引きプロセッサ50〜54内で深
さキューを行うことができる。各線引きプロセッサ50
〜54は長方形ウィンドウ・クリッピング機能、混合機
能およびその他の画素処理機能を希望により実行する。
れた画素データをフレーム・バッファ100からビデオ
バス84を介して受ける。ホストプロセッサ70は色ル
ックアップ・テーブル機能およびカーソル機能を実行す
る。RAMDAC72はホストプロセッサ70から受け
た画素データを、表示装置26に対するビデオ信号73
に変換する。
ロック図である。このコマンド・プリプロセッサ30
は、3Dジオメトリ・パイプラインおよび直接ポート・
パイプラインを介して通信するために、コマンド・プリ
プロセッサ30がホストバス28へ結合されていること
が示されている。一実施例においては、コマンド・プリ
プロセッサ30は1つの集積回路チップで実現される。
ェース541とX11オペレーション回路551を備え
る。この入力インタフェース541は直接ポートデータ
をホストバス28を介して受け、その直接ポートデータ
をCD−BUS80を介して線引きプロセッサ50〜5
4へ転送する。直接ポートデータは線引きプロセッサ5
0〜54へのレジスタ書込みと、フレーム・バッファ1
00への個々の画素書込みとを含む。線引きプロセッサ
50〜54と協力してのキャラクタ書込み機能、スクリ
ーン・スクロール機能、およびブロック移動機能のよう
なX11機能を実行するために、希望により直接ポート
データはX11オペレーション回路551へ転送され
る。
タフェース541と、バケット・バッファ542と、フ
ォーマット変換器543と、一組の頂点レジスタ549
と別のタップル・レジスタ540とを含む頂点バッファ
とを備える。3Dジオメトリ・パイプラインにおけるフ
ォーマット変換はVCSオペレーション回路545と変
換器シーケンサ544により制御される。出力ジオメト
リ・パケットはプリミティブ・アセンブリ回路547と
シーケンサ548により構成される。32−16回路5
50がデータ圧縮を希望により行う。一組の内部レジス
タ552がホストバス28を介してプログラムされて、
3Dジオメトリ・パイプラインおよび直接ポート・パイ
プラインの動作を制御する。DMA制御器546はホス
トバス28を介するバケット・バッファ542へのDM
A転送を行う。
28の種々のクロッキング環境とコマンド・プリプロセ
ッサ30の種々のクロッキング環境の間でインタフェー
スするためのバースト・バッファを有する。バースト・
バッファは、バケット・バッファ542へ転送される頂
点パケットを入力するための一組の一時的保持レジスタ
として機能する。フォーマット変換器回路543はバケ
ット・バッファ542からの入力頂点パケットをアクセ
スし、再フォーマットされた頂点パケットを頂点レジス
タ549に組み込む。フォーマット変換器回路543
は、予めプログラムされたフォーマット変換オペレーシ
ョンに従ってVCSオペレーション回路545により制
御される。フォーマット変換は変換器シーケンサ544
によりシーケンスさせられる。
ティブ・アセンブリ回路547は、頂点パケット549
からの再フォーマットされた頂点パケットをアクセス
し、出力ジオメトリ・パケットをCF−BUS82を介
して転送する。プリミティブ・アセンブリ回路547
は、別のタップル・レジスタ540からの別のタップル
を希望により置換する。プリミティブ・アセンブリ回路
547は出力ジオメトリ・パケット内のデータに対し
て、32−16回路550を用いてデータ圧縮も希望に
より行う。
リップを定める入力頂点パケットを処理する。各入力頂
点パケット中のヘッダ・ビットは交換型を指定する。交
換型は後の入力頂点パケットと前の入力頂点パケットの
組み合わせを定めて、三角形ストリップ中の次の三角形
を形成する。フォーマット変換器543は、三角形スト
リップ中の最後の3つの頂点を保持する。フォーマット
変換器543は三角形ストリップ中の最後の3つの頂点
を、最も古い、中間、および最も新しいと名づける。
ップは、交換型replace_olderestを指
定するヘッダを有する新しい入力頂点パケットに対応す
る。その交換型replace_olderestはフ
ォーマット変換器543に最も古い頂点を中間頂点で置
換させ、中間頂点を最も新しい頂点で置換させ、かつ最
も新しい頂点を新しい入力頂点パケット中の頂点へセッ
トさせる。以上のパターンはPHIGS_PLUS単純
三角形ストリップに対応する。
プは、交換型replace_middlestを指定
するヘッダを有する新しい入力頂点パケットに対応す
る。その交換型replace_middlestはフ
ォーマット変換器543に最も古い頂点を不変のままに
させ、中間頂点を最も新しい頂点で置換させ、かつ最も
新しい頂点を新しい入力頂点パケット中の頂点へセット
させる。
ために、新しい入力頂点パケットは交換型restar
tを指定するヘッダを有する。交換型restartは
フォーマット変換器543に最も古い頂点と中間頂点を
無効であるとマークさせ、かつ最も新しい頂点を新しい
入力頂点パケット中の頂点へセットさせる。
頂点レジスタ549中に発生する時は、プリミティブ・
アセンブリ回路547は頂点レジスタ549および別の
タップル・レジスタ540からの三角形に対する出力ジ
オメトリ・パケットを、CF−BUS82を介して常に
転送する。
rt交換型はポリライン(polyline)の移動オ
ペレーションに対応する。restart交換型は単一
データ構造、すなわち、メモリ・サブシステム22中の
ジオメトリ・データ・アレイ、が接続されていない多数
の可変長三角形ストリップを指定することを可能にす
る。そのような性能により、ホストバス28を介するD
MAシーケンスを開始させるために求められるオーバヘ
ッドが減少させられる。
れたメモリ・サブシステム中のジオメトリ・データ・ア
レイからの入力頂点パケット中の交換型によって、三角
形ストリップを「ジグザグ」パターンからストリップの
中間内の「スター」パターンへ変更することが可能にな
る。その性能によって、ホストバス28において必要と
する入力データ帯域幅をできるだけ狭くして、コンパク
トなデータ構造中の複雑なジオメトリを表現することが
可能にされる。
ace_olderest交換型の後でも頂点レジスタ
549は頂点順序を改めて、再フォーマットされた頂点
パケット中の出力三角形の表面仕上げ(facing)
を正規化する。出力三角形の正面が頂点の時間回り順序
で常に定められるように、順序が頂点レジスタ549か
ら転送されるにつれてプリミティブ・アセンブリ回路5
47は頂点の順序を改める。
三角形ストリップの面の最初の順序づけを指定する。ま
た、コマンド・プリプロセッサ30は、ヘッダにおいて
指定されている面の最初の順序づけを反転させる状態ビ
ットを持つレジスタを含む。ホストプロセッサ20にお
いて実行されているアプリケーション・プログラムは、
アプリケーション・プログラムにより維持されているモ
デル・マトリックスを反映するために状態ビットを維持
する。また、コマンド・プリプロセッサ30は「ジグザ
グ」パターンのあらゆる三角形の面の順序づけを逆にす
る。
フォーマットされた各頂点パケットを頂点レジスタ54
9から、次に利用できる浮動小数点プロセッサ40〜4
3へ転送する。各浮動小数点プロセッサ40〜43の入
力バッファ状態をCF−BUS82の制御部分を介して
検出することにより、次に利用できる浮動小数点プロセ
ッサ40〜43は決定される。
数点プロセッサ40〜43への再フォーマットされた各
頂点パケットの転送の順序づけの記録すなわち「スコア
ボード」を維持する。コマンド・プリプロセッサ30
は、制御信号をCD−BUS80の制御部分を介して転
送することにより、浮動小数点プロセッサ40〜43の
出力バッファを制御する。コマンド・プリプロセッサ3
0により、順次表現順序が求められた時に、再フォーマ
ットされた頂点パケットが浮動小数点プロセッサ40〜
43により適切な順序で確実に処理されるようにされ
る。順次順序づけが求められないとすると、浮動小数点
プロセッサ40〜43の出力端子における第1に線引き
パケットが最初に表現される。
よびポリ−ポリライン(poly−polyline
s)の再フォーマットも行う。また、希望によっては、
フォーマット変換器543は三角形ストリップ・データ
をポリラインエッジへ変換する。三角形エッジの強調を
求めるオペレーションの間は三角形処理は線処理と混合
させられないから、そのような性能により、浮動小数点
プロセッサ40〜43のためのマイクロコードの複雑さ
が低下させられる。
を処理するために、コマンド・プリプロセッサ30は、
三角形ストリップのための入力頂点パケットを再フォー
マットされた頂点パケットに組み立て、再フォーマット
された頂点パケットを出力ジオメトリ・パケットとして
CF−BUS82を介して浮動小数点プロセッサ40〜
43へ送る。その後で、コマンド・プリプロセッサ30
は元の三角形ストリップ入力頂点パケットをアクセス
し、強調されたエッジを表す分離されているベクトルを
含んでいる再フォーマットされた頂点パケットへ入力頂
点パケットを組み立てる。それからコマンド・プリプロ
セッサ30は、分離されているベクトルを浮動小数点プ
ロセッサ40〜43および線引きプロセッサ50〜54
を介して処理する。
データ部分は16ビットの幅であり、CD−BUS80
のデータ部分は16ビットの幅である。希望によって
は、コマンド・プリプロセッサ30は再フォーマットさ
れた頂点パケットの色および正常なデータ成分を、32
−16回路550を用いて圧縮してから、CF−BUS
82を介して浮動小数点プロセッサ40〜43へ転送す
る。32−16回路550は、色および正常なデータを
32ビットIEEE浮動小数点フォーマットから16固
定小数点フォーマットへ圧縮する。その後で、浮動小数
点プロセッサ40〜43は色および正常なデータ成分が
圧縮されている再フォーマットされた頂点パケットを受
け、色および正常な成分を伸張して32ビットIEEE
浮動小数点値へ戻す。
よび正常なデータ成分を圧縮しても、グラフィックス・
アクセラレータ24のための最終的な画質にほとんど影
響しない。その理由は、再フォーマットされた頂点パケ
ットの色成分がフレーム・バッファ100においては8
ビット値で表されているからである。同様に、16ビッ
ト符号無し精度を持つ再フォーマットされた頂点パケッ
トの正常な成分は、1マイルでプラスマイナス1インチ
の解像力を表す。他方、再フォーマットされた頂点パケ
ットの色および正常な成分のデータ圧縮により、CF−
BUS82を介するデータ転送帯域幅が約25%だけ狭
くされる。
す。この頂点モード制御レジスタ200は内部レジスタ
552に内蔵される。頂点モード制御レジスタ200の
内容は再フォーマットされた頂点パケットおよび出力ジ
オメトリ・パケットの準備を制御する。頂点モード制御
レジスタ200は、再フォーマットされた頂点パケット
が三角形、ベクトル、または点に対するプリミティブを
含むかどうかを指定する頂点型フィールドを含む。三角
形プリミティブは再フォーマットされた頂点パケット当
たり3つの頂点を含み、ベクトルは再フォーマットされ
た各頂点パケットごとに2つの頂点を含み、点は再フォ
ーマットされた各頂点パケットごとに1つの頂点を含
む。
ーマットされた頂点パケットのためのバケット・バッフ
ァ542からソース・タップル配置を指定する。フォー
マット変換器543およびプリミティブ・アセンブリ回
路547はバケット・バッファ542からソース・タッ
プルを組み立て、おそらく代わりのタップルを置換し、
タップル値をフォーマットする。以下の例は、コマンド
・プリプロセッサ30が浮動小数点プロセッサ40〜4
3へ転送する三角形に対する一般的な出力ジオメトリ・
パケットの配置を示すものである。
Pz 第1の頂点タップル1 VNx,VNy,V
Nz(オプション) 第1の頂点タップル2 VCr,VCg,V
Cb(オプション) 第2の頂点タップル0 VPx,VPy,V
Pz 第2の頂点タップル1 VNx,VNy,V
Nz(オプション) 第2の頂点タップル2 VCr,VCg,V
Cb(オプション) 第3の頂点タップル0 VPx,VPy,V
Pz 第3の頂点タップル1 VNx,VNy,V
Nz(オプション) 第3の頂点タップル2 VCr,VCg,V
Cb(オプション) ヘッダ・ソース頂点タップル0 FNx,FNy,F
Nz(オプション) ここに、 VPは頂点位置 VNは頂点法線 VCは頂点色 FNは面法線 である。
3の頂点とは頂点レジスタ549中の現在の三角形の3
つの頂点であって、頂点レジスタ549中の特定の場所
に対応するものではない。頂点モード制御レジスタ20
0は、出力ジオメトリ・パケットのヘッダに対するソー
スを指定するヘッダ・ソース・フィールドを含む。色が
提示されて正常でない時は、それらの色はタップル1に
存在し得る。
三角形頂点順序づけを逆にする背面(backfac
e)機能ビットを含む。ストリップの第1の三角形のヘ
ッダは反時計回り(CCW)ビットを含む。このビット
は浮動小数点プロセッサ40〜43へ転送される三角形
頂点の順序づけを指定する。背面機能ビットは三角形ス
トリップの残りに影響を及ぼす。ストリップの第1の三
角形は最初の設定を基にして送り出される。中間頂点
(V2)を置換することにより形成された以後の任意の
三角形は同じ頂点順序づけを保持する。最も古い頂点
(V1)を置換することにより形成された三角形は三角
形頂点順序づけを逆にする。再スタートは、それがCC
Wビットを再びロードする点で、新しいストリップをス
タートさせることと同じである。
ット・フィールドは下記にように定められる。 D<19>=三角形共用エッジモード 0 浮動小数点プロセッサ・ディスパッチ・レジス
タエッジ/中空フラッグをセットするために正常な三角
形モードを使用する。第1の三角形は全部で3つのエッ
ジ/中空ビット・セットを得、以後の全ての三角形は2
つのエッジを有するだけであり、第3のビットは常に零
である。 1 3つのエッジ/中空ビットは全てはあらゆる三
角形のために送られる。
ントPIDカウント(ビット7:5に関連して使用され
る)。
も新しいものからの複製である、ピックIDを用い、最
も新しいものからタップル3を得る。 1 最も古い頂点からのヘッダを使用する;また最
も古いものからの複製である、ピックIDを用い、最も
古いものからタップル3を得る。
り頂点モードがセットされた時に、頂点DMAモード・
ビットはオペレーションのDMAモードまたは即時モー
ドを選択する。 0 即時モード 1 DMAモード
て取り扱う(すなわち、V2とV3の間ではなくて、V
1、V2とV3、V4の間にベクトルを作成する)かど
うかを指定する。分離モード・ビットは、頂点型=ベク
トルの場合にのみ適用される。 0 ポリライン・モード:最も新しい頂点と前の頂
点がベクトルを定める 1 分離モード:まさに2つの頂点が分離ベクトル
である(他の頂点の後の再スタート)
ットがセットされる。背面機能ビットはヘッダ中の反時
計回り(CCW)ビットを逆にし、再フォーマットされ
た頂点パケット中の頂点1と頂点2の順序を逆にする。
頂点型=三角形の場合のみ背面機能ビットは適用され
る。 0 内部CCWビットの現在の設定により指定され
ている順序で三角形頂点を送る 1 内部CCWビットの現在の設定により指定され
ているのとは逆の順序で三角形頂点を送る
ID制御 xxx0 Pick IDを浮動小数点プロセッサ4
0〜43へ送らない xxx1 浮動小数点プロセッサ40〜43へのPi
ck IDの送りを可能にする xx0x 頂点ヘッダからのPick IDを使用す
る xx1x サブエレメントPick IDレジスタか
らのPick IDを使用する x0xx プリミティブごとにサブエレメントPic
k IDレジスタを使用する x1xx 頂点当たりのサブエレメントPick I
Dレジスタを増加する 0xxx サブエレメントPick IDレジスタを
増加するために頂点ヘッダ・ビット7は用いられない 1xxx 頂点ヘッダ・ビット7が1であればサブエ
レメントPick IDレジスタを増加する(頂点ヘッ
ダ・ビット7が0であれば、増加しない)
ァセット値(典型的にはファセット法線)を付すかどう
かを指定する。 0 再フォーマットされた頂点パケット中のファセ
ットデータは送らない 1 ヘッダのためのソースである頂点のファセット
データからのファセッを付す。再フォーマットされた頂
点パケットの端部に常に付される
示す。このバケット・バッファ542には入力頂点パケ
ットが、ホストバス28を経てDMAまたはプログラム
されたI/O転送を介してロードされる。フォーマット
変換器543はバケット・バッファ542からの入力頂
点パケットをアクセスし、再フォーマットされた頂点パ
ケットを頂点レジスタ549へ組み立てる。頂点制御シ
ーケンサ(VCS)135はVCS演算コード・カウン
ト・レジスタと4つのVCS演算コード・レジスタを含
む。VCS演算コード・レジスタは演算コードを13個
まで(VCS OP[0]〜VCS OP[12])含
む。
スタ210を含む。このレジスタは内部レジスタ552
内に含まれる。頂点制御シーケンサ(VCS)演算コー
ド・カウント・フィールドは、バケット・バッファ54
2から頂点レジスタ549への頂点データをフォーマッ
ト変換器543が処理している間に実行されるVCS演
算コードの数を決定する。
220〜226を示す。演算コードVCS OP[0]
〜VCS OP[12]はコマンド・プリプロセッサ3
0のフォーマット変換回路によるデータの操作を制御す
る。演算コードVCS OP[0]〜VCS OP[1
2]は、データがバケット・バッファ542から読出さ
れることというオーダを出し、頂点レジスタ542へ転
送されている間にデータに対して行われる変換を決定す
る。フォーマット変換器543は次に順序、すなわち、
VCS OP[0]...VCS OP[12]、で演
算コードを処理する。例VCS OP228のような、
各VCS OPはパケット演算コードおよびパケット相
対アドレスで構成される。パケット演算コードはフォー
マット変換を制御する。パケット相対アドレスは、バケ
ット・バッファ542中のパケット・ベース・アドレス
に対して相対的な入力データ語のアドレスである。
算コードのためのデータ変換機能を定めるテーブルであ
る。たとえば、パケット演算コード000はフォーマッ
ト変換器543に、指定されたパケット相対アドレスか
らの入力頂点パケット・データのビット8〜15をアク
セスさせ、指定されたビットを32ビット浮動小数点フ
ォーマットへ変換させ、かつ変換されたデータを頂点レ
ジスタ549へ転送させる。
011)は、VCS演算コード・レジスタ220〜22
6内のヘッダ演算コードの場所に応じて、フォーマット
変換器543により種々の動作を行わせる。ヘッダ演算
コードがVCS演算コード・レジスタの最初220に置
かれるものとすると、バケット・バッファ542内の入
力頂点パケットからのヘッダ値が、再フォーマットされ
た頂点パケットに対する頂点ヘッダとして頂点レジスタ
549へ転送される。
ダ演算コードを含んでいないとすると、補助頂点ヘッダ
・レジスタ(下で説明する)が再フォーマットされた頂
点パケットのための頂点ヘッダとして用いられる。定数
ヘッダが求められた時に補助頂点ヘッダ・レジスタ中の
ヘッダが用いられる。また、最初の後のVCS OPS
に対して、XGL定数レジスタ(下で説明する)の内容
が再フォーマットされた頂点パケットへ挿入される。用
いられるXGL定数レジスタは、余分の定数をデータの
流れに置く、たとえば、3Dデータの流れを発生するた
めにZ値を2D入力データの流れに挿入する、ことを要
求する場合のためである。
と、3語代替頂点タップル1バッファと、3語代替頂点
タップル2バッファと、3語代替頂点タップル3バッフ
ァと、浮動小数点プロセッサ・ディスパッチ・レジスタ
と、パス・スルー・ヘッダ・レジスタと、サブエレメン
ト・ピックIDレジスタと、パス・スルー・モード制御
レジスタとを備える。
ットを示す。この頂点バッファは頂点データのセットの
例を保持し、タップルを識別しているのが示されてい
る。頂点バッファ部分230は12−32ビット語の4
つのセグメントに区画されている。各12語セグメント
は1つの頂点に対するx,y,zデータと、法線データ
と、色データとを保持する。頂点バッファ部分230は
4個までの頂点を保持できる。フォーマット変換器54
3は再フォーマットされた頂点パケットのための頂点
を、演算コードVCS OP[0]〜VCS OP[1
2]に従って頂点バッファ部分230へ組み立てる。演
算コードVCS OP[0]〜VCS OP[12]
は、データをバケット・バッファ542から読み出すと
いうオーダを出し、頂点バッファ部分230中に頂点デ
ータを発生するために加えられる変換を決定する。プリ
ミティブに対して十分な頂点が集められると、それらの
頂点は再フォーマットされた頂点パケット中に集めら
れ、コマンド・プリプロセッサ30からCF−BUS8
2を介して浮動小数点プロセッサ40〜43の1つへ転
送される。
2を示す。プリミティブ・アセンブリ回路547は、出
力フォーマット・レジスタ(下で説明する)の制御の下
に、再フォーマットされた頂点パケットの最初のタップ
ルを、代わりの頂点タップル1バッファ240中の代わ
りのタップル1データで置き換える。代わりの頂点タッ
プル1バッファ240は頂点レジスタ549の語48、
49、50を含む。
4を示す。プリミティブ・アセンブリ回路547は、出
力フォーマット・レジスタの制御の下に、再フォーマッ
トされた頂点パケットの第2のタップルを、代わりの頂
点タップル2データで置き換える。代わりの頂点タップ
ル2バッファ234は頂点レジスタ549の語51、5
2、53を含む。
6を示す。プリミティブ・アセンブリ回路547は、出
力フォーマット・レジスタの制御の下に、再フォーマッ
トされた頂点パケットの第2のタップルを、代わりの頂
点タップル3データで置き換える。代わりの頂点タップ
ル3バッファ236は頂点レジスタ549の語54、5
5、56を含む。
ッチ・レジスタ240を示す。この浮動小数点プロセッ
サ・ディスパッチ・レジスタの内容は再フォーマットさ
れた全ての頂点パケットの初めに取り付けられる。浮動
小数点プロセッサ・ディスパッチ・レジスタ240の内
容、それの後に頂点バッファ部分230からの再フォー
マットされた頂点パケットが続く、はCF−BUS82
を介して浮動小数点プロセッサ40〜43の1つへ転送
される。ディスパッチ演算コード・フィールドは浮動小
数点プロセッサ40〜43のマイクロコードへのディス
パッチ・アドレスである。
F−BUS82を介して浮動小数点プロセッサ40〜4
3の1つへ転送される再フォーマットされた頂点パケッ
トが後に続く、ディスパッチ演算コード・フィールドの
例を示す。
ジスタ240に対するビット・フィールドは下記のよう
に定められる: D<14:9>=頂点ヘッダ 頂点ヘッダは次の2種類のビットを含む。(1)強調エ
ッジビット、これは、対応するビットがオンである(お
よびエッジモードがアクティブである)ならば、エッジ
色で表現される、(2)中空リッジビット、これは、対
応するビットがオンであれば、中空三角形(照明された
色付き)で表現される。頂点1が最も古く、頂点2が中
間であり、頂点3が最も新しい頂点である。 D<14>=頂点1と2の間の中空エッジ D<13>=頂点3と1の間の中空エッジ D<12>=頂点2と3の間の中空エッジ D<11>=頂点1と2の間の強調されたエッジを描く D<10>=頂3と1の間の強調されたエッジを描く D<9>=頂2と3の間の強調されたエッジを描く D<8:0>=ディスパッチ演算コード ディスパッチ演算コードは浮動小数点プロセッサ40〜
43中のマイクロコードへのディスパッチ・アドレスで
ある。図15は、一実施例におけるディスパッチ演算コ
ード値と、対応する浮動小数点プロセッサ40〜43の
機能とを示す。
250のフォーマットを示す。このパス・スルー・ヘッ
ダ・レジスタ250のパス・スルー・ヘッダ・フィール
ドは、パス・スルー・パケットのための浮動小数点プロ
セッサ40〜43の1つへ送られる再フォーマットされ
た頂点パケットの初めに取り付けられる。
スタ252のフォーマットを示す。このサブエレメント
・ピックIDレジスタ252はサブエレメント・ピック
IDまたはパス・スルー・パケット・カウント値のいず
れかによりプログラムされる。
2がサブエレメント・ピックIDを含むと、コマンド・
プリプロセッサ30は、浮動小数点プロセッサ40〜4
3へ送られた再フォーマットされた頂点パケットに対す
る代わりのピック・コードを作成する。プリミティブ・
アセンブリ回路547は、サブエレメント・ピックID
を再フォーマットされた各頂点パケットへ挿入し、頂点
ヘッダ・レジスタ中のビットおよび頂点モード制御レジ
スタ200中のビットにより制御されてサブエレメント
・ピックID値を増加する。図18は、サブエレメント
・ピックID値を含んでいる出力ジオメトリ・パケット
の例を示す。
点プロセッサ40〜43へ転送される再フォーマットさ
れた頂点パケットを指定するカウント値を、コマンド・
プリプロセッサ30はサブエレメント・ピックIDレジ
スタ252へロードする。サブエレメント・ピックID
レジスタ252中のカウンタ値に対する典型的な用途
は、ラスタ複写中のパス・スルー・パケットの転送であ
る。すなわち、そのカウンタ値は浮動小数点プロセッサ
40〜43へ転送されるパケットを識別する。サブエレ
メント・ピックIDレジスタ252中のカウンタ値の値
は転送される各パケットに対して増加される。
タ260のフォーマットを示す。パス・スルー・モード
制御レジスタ260の内容は、浮動小数点プロセッサ4
0〜43へ転送するためにコマンド・プリプロセッサ3
0によるパス・スルー・パケットの処理を決定する。パ
ス・スルー・モード制御レジスタ260のためのビット
・フィールドは下記のように定められる:
ー・ヘッダ・レジスタ250の内容とサブエレメント・
ピックIDレジスタ252の内容がパス・スルー・パケ
ットに含まれる。 00 パケットをそのまま送る。この場合、語の数
(n)は頂点モード制御レジスタ200中のパケット・
サイズ・フィールドである:データのn語 01 パス・スルー・ヘッダ・レジスタ250からの
ヘッダを取りつける:ヘッダ+データのn語 1x パス・スルー・ヘッダ・レジスタ250からの
ヘッダと、サブエレメント・ピックIDレジスタ252
からのカウント値とを取りつける:ヘッダ+カウンタ値
+データのn語
セッサ30のスコアボード論理がパケットの順序を維持
するかどうか、すなわち、対応する再フォーマットされ
た頂点パケットがコマンド・プリプロセッサ30から浮
動小数点プロセッサ40〜43へ転送される順序と同じ
順序で、線引きパケットを浮動小数点プロセッサ40〜
43から線引きプロセッサ50〜54へ転送するかどう
かを指定する。 0 順序づけられたプリミティブ処理−浮動小数点
プロセッサ40〜43との間でやり取りされるパケット
の順序は同じである。 1 順序づけられていないプリミティブ処理−順序
は浮動小数点プロセッサ40〜43からのパケットに対
して保たれない。
小数点プロセッサ40〜43の1つから1つまたは複数
の線引きパケットを発生できるかどうかを指定する。 0 パス・スルー・パケットに対応する浮動小数点
プロセッサ40〜43の1つから予測されない出力。 1 パス・スルー・パケットに対応して予測される
出力。
st)選択 ユニキャスト選択フィールドはパス・スルー・パケット
に対する浮動小数点プロセッサ40〜43の1つを指定
する。 00 浮動小数点プロセッサ40 01 浮動小数点プロセッサ41 10 浮動小数点プロセッサ42 11 浮動小数点プロセッサ43
セッサへ送られる) 01 ユニキャスト(特定の浮動小数点プロセッサへ
送られる) 10 ユニキャスト(前のパケットと同じ浮動小数点
プロセッサへ送られる) 11 マルチキャスト(全ての浮動小数点プロセッサ
40〜43へ放送される)属性を浮動小数点プロセッサ
40〜43へ送るためにマルチキャスト・パケットが用
いられる。
サSRAM) 11 ファームウェア・メモリ(浮動小数点プロセッ
サSRAM)。
る出力フォーマット・レジスタ262を示す。この出力
フォーマット・レジスタ262は、浮動小数点プロセッ
サ40〜43へ転送するために再フォーマットされた頂
点パケットのフォーマットを決定する。出力フォーマッ
ト・レジスタ262のためのビット・フィールドは下記
にようにして定められる。
代わりの頂点タップルで置換するかどうかを指定する。
たとえば、ピック・エコー中または強調中に、タップル
置換可能化機能が用いられ、この場合には頂点の色が代
わりの頂点タップルからの一定の強調色で置換される。 000 置換不能化 xx1 代わりの頂点タップル1で置換 x1x 代わりの頂点タップル2で置換 1xx 代わりの頂点タップル3で置換
タップルを再フォーマットされている頂点パケットへ複
製するかどうかを指定する。タップル複製機能は、たと
えば、ファセット・データ(これはヘッダ・ソースの頂
点にある)を頂点データ中に複製するために用いられ
る。 00 複製不能化 x1 タップル1を複製し、ヘッダ・ソースの頂点
からのタップルを用いる 1x タップル2を複製し、ヘッダ・ソースの頂点
からのタップルを用いる
小数点 固定圧縮のための頂点浮動小数点はタップルを圧縮する
かどうかを指定する。32−16回路は、頂点バッファ
の32ビット浮動小数点値を、CF−BUS82へ転送
する前に16ビット固定小数点値へ変換することによ
り、タップルを圧縮する。 0xx 圧縮なしにタップル3を送る 1xx タップル3を32ビット浮動小数点から16
ビット固定小数点へ圧縮する x0x 圧縮なしにタップル2を送る x1x タップル2を32ビット浮動小数点から16
ビット固定小数点へ圧縮する xx0 圧縮なしにタップル1を送る x1x タップル1を32ビット浮動小数点から16
ビット固定小数点へ圧縮する。
指定する。 00 Header+XYZ+Tupple1+T
upple2 01 Header+XYZ+Tupple1 1x Header+XYZ
ジスタ264とXGL定数レジスタ268を含む。図2
1は補助頂点ヘッダ・レジスタ264を示す。この補助
頂点ヘッダ・レジスタ264の内容は、VCS演算コー
ド・レジスタ220がヘッダ演算コードを含まないとす
ると、ヘッダを供給する。補助頂点ヘッダ・レジスタ2
64に対するビット・フィールドは下記のようにして定
められる:
レメント数を増加するかどうかを指定する。 D<6:5>=中空エッジ制御 x1 中空エッジを描く。三角形の場合には、最も
新しい頂点から2番目に古い頂点まで中空エッジを描
く。 1x 別の中空エッジを描く。三角形の場合には、
最も新しい頂点から最も古い頂点まで中空エッジを描
く。
Vmid、Vnew) 1 三角形を反時計回りとして定める(Vol
d、Vnew、Vmid) D<3:2>=一般的な三角形リスト制御 00 三角形ストリップを再スタートする 01 最も古い頂点を置換する 10 2番目に古い頂点を置換する 11 定めず
しい頂点から最も古い頂点までエッジを描くかどうかを
指定する。 D<0>=エッジを描く 三角形の場合には、エッジを描くビットは、最も新しい
頂点から2番目に古い頂点までエッジを描くかどうかを
指定する。線の場合には、エッジを描くビットは、最も
新しい頂点から前の頂点までエッジを描くかどうかを指
定する。エッジを描く値0は「移動」に等しく、エッジ
を描く値1は「引く」に等しい。
す。ヘッダ演算コードにVCS演算コード・レジスタ2
22〜226のいずれかにおいて遭遇した時に、コマン
ド・プリプロセッサ30はXGL定数レジスタ268の
内容を頂点レジスタ549に挿入する。
と、グラフィックス・アクセラレータと、表示装置とを
含むコンピュータ装置のブロック図である。
ロセッサのセットと、線引きプロセッサのセットと、フ
レーム・バッファと、ポストプロセッサと、ランダム・
アクセス・メモリ/デジタル−アナログ変換器(RAM
DAC)とで構成されたグラフィックス・アクセラレー
タのブロック図である。
ット回路を、直接ポート・パイプラインと共に示すブロ
ック図である。
トされた頂点パケットの準備を制御する入力頂点パケッ
ト論理に含まれている頂点モード制御レジスタを示す。
プログラムされたI/O転送を経て入力頂点パケットが
ロードされるバケット・バッファの構成を示す。
換回路がバケット・バッファから頂点バッファへの頂点
データを処理する間に実行されるVCS演算コードの数
を決定するVCS演算コード・カウントでプログラムさ
れるVCS演算コード・カウント・レジスタを示す。
換回路によるデータの取扱いを制御する演算コードVC
S OP[0]〜VCS OP[12]でプログラムさ
れるVCS演算コード・レジスタを示す。
めのデータ変換を定めるテーブルである。
プルを識別する様子が示されている、頂点バッファの頂
点バッファ部分のフォーマットを示す。
ある再フォーマットされた頂点パケットのタップルを置
換する代わりのタップル・データを保持する頂点タップ
ル・バッファの1つの例を示す。
ある再フォーマットされた頂点パケットのタップルを置
換する代わりのタップル・データを保持する頂点タップ
ル・バッファの別の例を示す。
ある再フォーマットされた頂点パケットのタップルを置
換する代わりのタップル・データを保持する頂点タップ
ル・バッファの更に別の例を示す。
の初めに取り付けられる浮動小数点プロセッサ・マイク
ロコード・ディスパッチ・フィールドを保持する浮動小
数点プロセッサ・ディスパッチ・レジスタを示す。
と、頂点バッファ部分からCF−BUSを介して浮動小
数点プロセッサの1つへ転送された再フォーマットされ
た頂点パケットとを示す。
値および対応する浮動小数点プロセッサ機能を示す。
点プロセッサの1つへ送られた再フォーマットされた頂
点パケットの初めにパス・スルー・ヘッダ・フィールド
が取り付けられる、パス・スルー・ヘッダ・レジスタの
フォーマットを示す。
スルー・パケット・カウント値のいずれかによりプログ
ラムされるサブエレメント・ピックIDレジスタのフォ
ーマットを示す。
ォーマットされた頂点パケットを示す。
マンド・プリプロセッサによりパス・スルー・パケット
の処理を制御するパス・スルー・モード・レジスタのフ
ォーマットを示す。
フォーマットされた頂点パケットのフォーマットを決定
する出力フォーマット・レジスタを示す。
コードを含んでいないとすると、補助頂点ヘッダ・レジ
スタの内容がヘッダを供給する、補助頂点ヘッダ・レジ
スタを示す。
VCS演算コード・レジスタのいずれかにおいてヘッダ
演算コードに遭遇した時に、コマンド・プリプロセッサ
が定数値を頂点バッファへ挿入する、定数値によりプロ
グラムされるXGL定数レジスタを示す。
ム、24…グラフィックス・アクセラレータ、26…表
示装置、28…ホストバス、30…コマンド・プリプロ
セッサ、40〜43…浮動小数点プロセッサ、50〜5
4…線引きプロセッサ、61〜65…VRAMインター
リーブ・バンク、70…ホストプロセッサ、72…ラン
ダム・アクセス・メモリ/デジタル−アナログ変換器、
540…代わりのタップルレジスタ、541…入力イン
タフェース、542…バケット・バッファ、543…フ
ォーマット変換器、544,546…DMA制御器、5
45…変換器シーケンサ、547…プリミティブ・アセ
ンブリ回路、548…シーケンサ、550…32−16
回路、552…内部レジスタ。
Claims (2)
- 【請求項1】 再フォーマットされた頂点パケットおよ
び出力ジオメトリ・パケットのためのフォーマットを指
定する一組の翻訳パラメータをホストプロセッサからホ
ストバスを介して受ける過程と、 ジオメトリオブジェクトを定義するジオメトリ入力デー
タを含む入力頂点パケットをホストバスを介して受け、
その入力頂点パケットをバケット・バッファに格納する
過程と、 バケット・バッファから入力頂点パケットを読出して再
フォーマットした頂点パケットを生成し、その入力頂点
パケットを翻訳パラメータに従って翻訳し、再フォーマ
ットされた頂点パケットを頂点バッファに格納する過程
と、 頂点バッファから再フォーマットされた頂点パケットを
読出して出力ジオメトリ・パケットを生成し、その再フ
ォーマットされた頂点パケットを翻訳パラメータに従っ
て翻訳し、出力ジオメトリ・パケットをコマンド−浮動
小数点プロセッサ・バスを介して浮動小数点プロセッサ
へ転送する過程と、を備えるグラフィックス・アクセラ
レータにおいてグラフィックス・ジオメトリ・データを
前処理する方法。 - 【請求項2】 再フォーマットされた頂点パケットおよ
び出力ジオメトリ・パケットのためのフォーマットを指
定する一組の翻訳パラメータをホストプロセッサからホ
ストバスを介して受ける手段と、 ジオメトリ・パケットを定義するジオメトリ入力データ
を含む入力頂点パケットをホストバスを介して受け、そ
の入力頂点パケットをバケット・バッファに格納する手
段と、 バケット・バッファから入力頂点パケットを読出して再
フォーマットした頂点パケットを生成し、その入力頂点
パケットを翻訳パラメータに従って翻訳し、再フォーマ
ットされた頂点パケットをバケット・バッファに格納す
る手段と、 頂点バッファから再フォーマットされた頂点パケットを
読出して出力ジオメトリ・パケットを生成し、その再フ
ォーマットされた頂点パケットを翻訳パラメータに従っ
て翻訳し、出力ジオメトリ・パケットをコマンド−浮動
小数点プロセッサ・バスを介して浮動小数点プロセッサ
へ転送する手段と、を備えるグラフィックス・アクセラ
レータにおいてグラフィックス・ジオメトリ・データを
前処理する装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US074,031 | 1993-06-04 | ||
US08/074,031 US5408605A (en) | 1993-06-04 | 1993-06-04 | Command preprocessor for a high performance three dimensional graphics accelerator |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0798766A true JPH0798766A (ja) | 1995-04-11 |
JP3491774B2 JP3491774B2 (ja) | 2004-01-26 |
Family
ID=22117278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13671194A Expired - Lifetime JP3491774B2 (ja) | 1993-06-04 | 1994-05-27 | グラフィックス・アクセラレータにおいてグラフィックス・ジオメトリ・データを前処理する方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5408605A (ja) |
EP (1) | EP0627699B1 (ja) |
JP (1) | JP3491774B2 (ja) |
KR (1) | KR100301222B1 (ja) |
DE (1) | DE69430856T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008513910A (ja) * | 2004-09-22 | 2008-05-01 | クゥアルコム・インコーポレイテッド | グラフィックプロセッサのための効率的なインタフェース及びアセンブラ |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5793371A (en) | 1995-08-04 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for geometric compression of three-dimensional graphics data |
US6747644B1 (en) | 1995-08-04 | 2004-06-08 | Sun Microsystems, Inc. | Decompression of surface normals in three-dimensional graphics data |
US6256041B1 (en) | 1995-08-04 | 2001-07-03 | Sun Microsystems, Inc. | Decompression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object |
US6525722B1 (en) | 1995-08-04 | 2003-02-25 | Sun Microsystems, Inc. | Geometry compression for regular and irregular mesh structures |
US5842004A (en) * | 1995-08-04 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for decompression of compressed geometric three-dimensional graphics data |
US6215500B1 (en) | 1995-08-04 | 2001-04-10 | Sun Microsystems, Inc. | Compression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object |
US5784075A (en) * | 1995-08-08 | 1998-07-21 | Hewlett-Packard Company | Memory mapping techniques for enhancing performance of computer graphics system |
US5696944A (en) * | 1995-08-08 | 1997-12-09 | Hewlett-Packard Company | Computer graphics system having double buffered vertex ram with granularity |
US6331856B1 (en) * | 1995-11-22 | 2001-12-18 | Nintendo Co., Ltd. | Video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing |
US5821949A (en) * | 1996-07-01 | 1998-10-13 | Sun Microsystems, Inc. | Three-dimensional graphics accelerator with direct data channels for improved performance |
US5874969A (en) * | 1996-07-01 | 1999-02-23 | Sun Microsystems, Inc. | Three-dimensional graphics accelerator which implements multiple logical buses using common data lines for improved bus communication |
US5740409A (en) * | 1996-07-01 | 1998-04-14 | Sun Microsystems, Inc. | Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities |
US5745125A (en) * | 1996-07-02 | 1998-04-28 | Sun Microsystems, Inc. | Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance |
US6690369B1 (en) * | 1996-08-01 | 2004-02-10 | 3Dlabs, Inc., Ltd. | Hardware-accelerated photoreal rendering |
US5943066A (en) * | 1997-05-01 | 1999-08-24 | Hewlett Packard Company | Programmable retargeter method and apparatus |
US6282625B1 (en) | 1997-06-25 | 2001-08-28 | Micron Electronics, Inc. | GART and PTES defined by configuration registers |
US6069638A (en) * | 1997-06-25 | 2000-05-30 | Micron Electronics, Inc. | System for accelerated graphics port address remapping interface to main memory |
US6249853B1 (en) | 1997-06-25 | 2001-06-19 | Micron Electronics, Inc. | GART and PTES defined by configuration registers |
US7071946B2 (en) * | 1997-12-30 | 2006-07-04 | Micron Technology, Inc. | Accelerated graphics port for a multiple memory controller computer system |
US6157398A (en) * | 1997-12-30 | 2000-12-05 | Micron Technology, Inc. | Method of implementing an accelerated graphics port for a multiple memory controller computer system |
US6252612B1 (en) | 1997-12-30 | 2001-06-26 | Micron Electronics, Inc. | Accelerated graphics port for multiple memory controller computer system |
JP4846097B2 (ja) * | 1998-05-12 | 2011-12-28 | エススリー グラフィックス カンパニー リミテッド | グラフィクスサブシステムのレジスタセットのための方法及び装置 |
US6188410B1 (en) * | 1998-07-17 | 2001-02-13 | 3Dlabs Inc. Ltd. | System for processing vertices from a graphics request stream |
US6501479B1 (en) * | 1999-06-21 | 2002-12-31 | Ati International Srl | Multi-format vertex data processing apparatus and method |
US6628836B1 (en) * | 1999-10-05 | 2003-09-30 | Hewlett-Packard Development Company, L.P. | Sort middle, screen space, graphics geometry compression through redundancy elimination |
JP3946393B2 (ja) * | 1999-10-19 | 2007-07-18 | 株式会社東芝 | 階層構造をもつ並列計算機 |
US7079133B2 (en) * | 2000-11-16 | 2006-07-18 | S3 Graphics Co., Ltd. | Superscalar 3D graphics engine |
US6961803B1 (en) * | 2001-08-08 | 2005-11-01 | Pasternak Solutions Llc | Sliced crossbar architecture with no inter-slice communication |
JP3743369B2 (ja) * | 2001-12-28 | 2006-02-08 | ソニー株式会社 | グラフィックス描画装置およびその方法 |
US20080125037A1 (en) * | 2006-08-23 | 2008-05-29 | Brima Ibrahim | Method and system for routing of FM data to a bluetooth A2DP link |
US9087392B2 (en) * | 2012-09-26 | 2015-07-21 | Intel Corporation | Techniques for efficient GPU triangle list adjacency detection and handling |
WO2015099767A1 (en) * | 2013-12-27 | 2015-07-02 | Intel Corporation | Scalable input/output system and techniques |
US10366017B2 (en) | 2018-03-30 | 2019-07-30 | Intel Corporation | Methods and apparatus to offload media streams in host devices |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159665A (en) * | 1989-11-27 | 1992-10-27 | Sun Microsystems, Inc. | Graphics accelerator system |
US5379376A (en) * | 1990-06-04 | 1995-01-03 | International Business Machines Corporation | Bi-directional graphics attribute conversion profile |
DE69232403T2 (de) * | 1991-08-06 | 2002-08-22 | Canon K.K., Tokio/Tokyo | Dreidimensionales Modellverarbeitungsverfahren und -gerät |
US5307449A (en) * | 1991-12-20 | 1994-04-26 | Apple Computer, Inc. | Method and apparatus for simultaneously rendering multiple scanlines |
-
1993
- 1993-06-04 US US08/074,031 patent/US5408605A/en not_active Expired - Lifetime
-
1994
- 1994-04-05 EP EP94302404A patent/EP0627699B1/en not_active Expired - Lifetime
- 1994-04-05 DE DE69430856T patent/DE69430856T2/de not_active Expired - Fee Related
- 1994-05-23 KR KR1019940011198A patent/KR100301222B1/ko not_active IP Right Cessation
- 1994-05-27 JP JP13671194A patent/JP3491774B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008513910A (ja) * | 2004-09-22 | 2008-05-01 | クゥアルコム・インコーポレイテッド | グラフィックプロセッサのための効率的なインタフェース及びアセンブラ |
Also Published As
Publication number | Publication date |
---|---|
DE69430856T2 (de) | 2003-04-03 |
JP3491774B2 (ja) | 2004-01-26 |
KR100301222B1 (ko) | 2001-10-22 |
US5408605A (en) | 1995-04-18 |
KR950001539A (ko) | 1995-01-03 |
EP0627699A2 (en) | 1994-12-07 |
EP0627699B1 (en) | 2002-06-26 |
DE69430856D1 (de) | 2002-08-01 |
EP0627699A3 (en) | 1994-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3491774B2 (ja) | グラフィックス・アクセラレータにおいてグラフィックス・ジオメトリ・データを前処理する方法および装置 | |
EP0627700B1 (en) | Architecture for a high performance three dimensional graphics accelerator | |
US6018353A (en) | Three-dimensional graphics accelerator with an improved vertex buffer for more efficient vertex processing | |
EP0875855B1 (en) | Graphics processing system | |
US5821949A (en) | Three-dimensional graphics accelerator with direct data channels for improved performance | |
US7071935B1 (en) | Graphics system with just-in-time decompression of compressed graphics data | |
US6559842B1 (en) | Compressing and decompressing graphics data using gosub-type instructions and direct and indirect attribute settings | |
US5874969A (en) | Three-dimensional graphics accelerator which implements multiple logical buses using common data lines for improved bus communication | |
US6628277B1 (en) | Decompression of three-dimensional graphics data using mesh buffer references to reduce redundancy of processing | |
US5745125A (en) | Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance | |
KR100325902B1 (ko) | 고성능3차원그래픽가속기를위한부동소숫점처리기및그처리기능수행방법 | |
US5821950A (en) | Computer graphics system utilizing parallel processing for enhanced performance | |
US5740409A (en) | Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities | |
US6954204B2 (en) | Programmable graphics system and method using flexible, high-precision data formats | |
JP3860859B2 (ja) | 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム | |
JP3476094B2 (ja) | 高性能3次元グラフィック・アクセラレータの作図プロセッサ | |
US7791601B2 (en) | Efficient object storage for zone rendering | |
EP1255227A1 (en) | Vertices index processor | |
US5784075A (en) | Memory mapping techniques for enhancing performance of computer graphics system | |
US6304935B1 (en) | Method and system for data transmission in accelerated graphics port systems | |
JPH0954835A (ja) | コンピュータ・グラフィックス・システム用のデータ・バス・プロトコル | |
JP3265856B2 (ja) | Dma転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081114 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101114 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121114 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121114 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131114 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |