JP4808858B2 - グラフィクスパイプラインおよびそれの同期化方法 - Google Patents
グラフィクスパイプラインおよびそれの同期化方法 Download PDFInfo
- Publication number
- JP4808858B2 JP4808858B2 JP2001128570A JP2001128570A JP4808858B2 JP 4808858 B2 JP4808858 B2 JP 4808858B2 JP 2001128570 A JP2001128570 A JP 2001128570A JP 2001128570 A JP2001128570 A JP 2001128570A JP 4808858 B2 JP4808858 B2 JP 4808858B2
- Authority
- JP
- Japan
- Prior art keywords
- graphics
- graphics pipeline
- token
- variable content
- external processing
- 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
- 238000000034 method Methods 0.000 title claims description 29
- 238000012545 processing Methods 0.000 claims description 38
- 239000000872 buffer Substances 0.000 claims description 27
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 3
- 230000011664 signaling Effects 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims 1
- 230000037431 insertion Effects 0.000 claims 1
- 239000000203 mixture Substances 0.000 claims 1
- 230000009466 transformation Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000002452 interceptive effect Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000002156 mixing Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000004049 embossing Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 241000086550 Dinosauria Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
Description
【産業上の利用分野】
この発明はコンピュータグラフィクスに関し、特にたとえば家庭用ビデオゲームプラットフォームのようなインタラクティブなグラフィクスシステムに関する。さらに具体的には、この発明は、可変コンテンツ同期化トークンを使用する、グラフィクスパイプラインとグラフィクスコマンドプロセサとの間の同期化に関する。
【0002】
【発明の背景】
多くの人々はかなりリアルな恐竜,エイリアン,生き生きとしたおもちゃおよび他の空想的な動物を含む映画をかつて見たことがある。そのようなアニメーションはコンピュータグラフィクスによって可能とされた。そのような技術を用いて、コンピュータグラフィクスのアーティストは、各オブジェクトがどのように見えるべきかや時間の経過とともに外見上どのように変化すべきかを特定し、コンピュータは、そのオブジェクトをモデル化してテレビジョンやコンピュータスクリーンのようなディスプレイに表示する。コンピュータは、表示される映像の各部分を、場面中の各オブジェクトの位置や向き,各オブジェクトを照らすように見える照明の方向,各オブジェクトの表面テクスチャ,および他の要素に正確に基づいて、色付けしまた形作るために必要な多くのタスクを実行する。
【0003】
コンピュータグラフィクスの生成は複雑であるので、ここ数年前のコンピュータによって生成された3次元(3D)グラフィクスは、ほとんど高価な特殊なフライトシミュレータ,ハイエンドグラフィクスワークステーションおよびスーパーコンピュータに限られていた。大衆は映画や高価なテレビコマーシャルにおいてこれらのコンピュータシステムによって生成された映像のいくつかを見たが、大部分の人はグラフィクスを生成しているコンピュータに対して実際に相互作用をさせることはできない。たとえば、Nintendo64(登録商標)や今や利用可能であるパソコン用の種々の3Dグラフィクスカードのような比較的安価な3Dグラフィクスプラットフォームの利用によって、このすべてが変わった。今や、家庭や会社の比較的安価なコンピュータグラフィクスシステム上でエキサイティングな3Dアニメーションやシミュレーションに対して相互作用を及ぼすことができる。
【0004】
グラフィクスシステム設計者が過去に直面した問題は、グラフィクスパイプラインをグラフィクスコマンド生成器のような外部コンポーネントと如何に同期化するかである。典型的なグラフィクスレンダリングシステムは、いくつかの非同期コンポーネンツ(たとえば、グラフィクスコマンドを発生するグラフィクスコマンド生成器、コマンドを消費しかつフレームバッファ出力を生成するグラフィクスプロセサ、およびフレームバッファを表示する表示インタフェース)を含む。レンダリングシステムの異なるステージを同期化して各種の動作間において等時性(time-coherence)を確立することがしばしば望まれる。たとえば、グラフィクスコマンド生成器にとって、或る状況下において、グラフィクスプロセサが或るグラフィクスコマンドの処理をいつ終えたかを知ることは非常に有用である。このような同期化問題は、典型的なグラフィクスプロセサが異なるグラフィクスコマンドを処理するについて異なる時間量を要するという点で煩瑣である。
【0005】
この問題に対する種々のソリューションが提案されている。たとえば、グラフィクスパイプラインとグラフィクスコマンド生成器との間の同期化を提供するために過去に用いられた1つの技術は、グラフィクス表示リスト中のすべてのコマンドが処理されたときにグラフィクスパイプラインにコマンド生成器に対して割込を送るようにさせることである。この同期化能力は非常に有用ではあるけれども、グラフィクス表示リスト中のより中間的な同期化要求(たとえば、グラフィクスパイプラインが表示リストの残りのものについて仕事を続けている間、グラフィクスコマンド生成器あるいは他の動作コンポーネントをイネーブルして新たなグラフィクスコマンドを送信する以外の何らかのタスクを実行する)を解決できるものではない。
【0006】
グラフィクスコマンドストリーム中に可変コンテンツトークン識別子を挿入することによってグラフィクスプロセサが処理のために異なるアイテムを選択できるようにすることが知られている。しかしながら、そのようなトークン識別子は、同期化目的のためには一般的ではなく、グラフィクスパイプラインがそれに基づいて動作するデータ構造や他のアイテムを識別するために使用された。
【0007】
過去に意義深い仕事がなされたが、さらなる改良が望まれている。
【0008】
【発明の概要】
この発明は、グラフィクスパイプラインをたとえばグラフィクスコマンド生成器のような外部動作コンポーネントと同期化する技術および構成を提供することによって、上述のような同期化問題を解決する。この発明によって提供される1つの局面によれば、可変データメッセージを含むトークンがグラフィクスパイプラインへ送られるグラフィクスコマンドストリーム中に挿入される。パイプラインの所定点においてトークンが捕捉され、信号が発生されてトークンが到着したことを示す。外部コンポーネントは、その捕捉されたトークンを見て、複数の可能性のあるトークンのどれが捕捉されたかを判断することができる。
【0009】
具体的な実施例においては、グラフィクスパイプラインは、パイプライン中の所定点にトークンが到達したとき割込を発生し、他の動作コンポーネントは捕捉されたトークンの値を判断するためにトークンレジスタをポーリングすることができる。グラフィクスコマンド生成器あるいは他の動作コンポーネントは、タスクをグラフィクスパイプラインと同期化するために、たとえばグラフィクスパイプラインおよびグラフィクスコマンド生成器の間で共用されるメモリにおけるメモリ等時性を維持するために、トークン同期化情報を使用することができる。この発明の他の局面によれば、グラフィクスコマンド生成器は同じグラフィクスコマンドストリーム中に異なる値の複数のトークンを挿入することができ、グラフィクスパイプライン中の所定点にどのトークンが到達したかを判断するために比較を用いる。異なるタスクが、その点にどのトークンが到達したかに基づいて、トリガされ得る。
【0010】
この発明によって提供される1つの局面によれば、グラフィクスパイプラインとの同期化方法では、グラフィクスパイプラインに可変コンテンツ同期化トークンを送信し、そしてパイプライン中の所定点にトークンが到達したタイミングを検出する。このトークンは、或る実施例では、グラフィクスパイプラインが変更もしくは修飾しない可変コンテンツデータメッセージを含む。検出ステップでは、トークンレジスタによって返送された値と送信したトークンの値とを比較する。そして、検出ステップは、割込に応答してトークンレジスタをポーリングするようにしてもよい。
【0011】
この発明によって提供される他の局面によれば、コマンドプロセサ,変換ユニット,ライティングユニット,テクスチャ座標発生器,テクスチャマッパ,ラスタライザ,ブレンダ,ピクセルエンジンおよびフレームバッファを含む形式のグラフィクスパイプラインと同期化する方法では、グラフィクスパイプライン中に可変コンテンツデータメッセージを挿入し、グラフィクスパイプラインの所定点でその可変コンテンツデータメッセージを捕捉し、可変コンテンツデータメッセージがそのグラフィクスパイプライン中の所定点に到達したときに信号を伝達し、そして捕捉した可変コンテンツデータメッセージが挿入した可変コンテンツデータメッセージと対応するかどうかを判断する。信号伝達ステップは、可変コンテンツデータメッセージがグラフィクスパイプラインの終端(bottom)に到達したとき割込を発生する。捕捉ステップでは、可変コンテンツデータメッセージをレジスタにストアし、そして判断ステップでは、そのレジスタの内容を読み出す。
【0012】
この発明によって提供されるさらに他の局面によれば、コマンドプロセサは可変コンテンツデータメッセージを受け、かつその可変コンテンツデータメッセージをパイプラインを通してピクセルエンジンにパスする。ピクセルエンジンは可変コンテンツデータメッセージを捕捉するレジスタを含み、可変コンテンツデータメッセージがピクセルエンジンに到達したときに信号を伝達する。
【0013】
この発明によって提供される別の局面は、グラフィクスコマンドストリーム中に挿入される可変コンテンツデータメッセージを含むトークンを提供する。グラフィクスシステムは、トークンより前のグラフィクスストリームの部分が処理されたかどうかについての問い合わせに対して応答を与えることによって、グラフィクスシステムのイベントを同期化することができる。
【0014】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0015】
【実施例】
図1は対話型(インタラクティブ)3Dコンピュータグラフィクスシステム50の一例を示す。システム50は対話型3Dビデオゲームをステレオ音声とともにプレイするのに用いられ得る。これはまた多様な他のアプリケーションにも用いられ得る。
【0016】
この実施例において、システム50は3次元世界のディジタル表現ないしモデルをインタラクティブにかつリアルタイムに処理することができる。システム50は、任意の視点から、その世界の一部または全部を表示することができる。たとえば、システム50は、手持ちコントローラ52aおよび52bまたは他の入力デバイスからのリアルタイム入力に応答して、視点をインタラクティブに変化できる。このことによって、ゲームプレーヤは、その世界内もしくは外の誰かの目を通してその世界を見ることができる。システム50は、リアルタイム3Dインタラクティブ表示を必要としないアプリケーション(たとえば2D表示の発生やおよび/またはノンインタラクティブ表示)に使用できるが、高品質の3D映像を非常に速く表示する能力は、非常にリアルでエキサイティングなゲームプレイや他のグラフィクスインタラクションを創造するのに使用され得る。
【0017】
システム50を用いてビデオゲームまたは他のアプリケーションをプレイするために、ユーザはまず、主ユニット54を、カラーテレビ56または他の表示装置に、両者の間にケーブル58を接続することによって、接続する。主ユニット54はカラーテレビ56を制御するためのビデオ信号およびオーディオ信号を発生する。ビデオ信号はテレビジョン画面59上に表示されている映像を制御するものであり、オーディオ信号はテレビのステレオスピーカ61Lおよび61Rを通して音声として再生される。
【0018】
ユーザはまた主ユニット54を電源につなぐ必要がある。この電源は従来のACアダプタ(図示せず)であってよく、そのACアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、主ユニット54を駆動するのに適した低いDC電圧信号に変換する。他の実施例ではバッテリが用いられてもよい。
【0019】
ユーザは主ユニット54を制御するために手持ちコントローラ52aおよび52bを用いる。コントロール60は、たとえば、3D世界内においてテレビ56に表示されているキャラクタが移動すべき方向(上または下、左または右、近づいてまたは遠ざかって)を指示するために使用され得る。コントロール60は、また他のアプリケーションのための入力(たとえばメニュー選択,ポインタ/カーソル制御,その他)を与える。コントローラ52は多様な形態をとり得る。この実施例においては、図示されるコントローラ52は、各々ジョイスティック,押しボタンおよび/または方向スイッチのようなコントロール60を含む。コントローラ52は、ケーブルによって、もしくは電磁波(たとえば電波または赤外線)を介してワイヤレスで、主ユニット54に接続され得る。
【0020】
ゲームのようなアプリケーションをプレイするために、ユーザはビデオゲームもしくはプレイしたいと思う他のアプリケーションをストアしている適宜の記憶媒体62を選択し、その記憶媒体を主ユニット54のスロット64に差し込む。記憶媒体62は、たとえば、特別にエンコードされおよび/または記号化された光学的ならびに/もしくは磁気的ディスクであってよい。ユーザは主ユニット54をオンするために電源スイッチ66を操作し、主ユニットがその記憶媒体62にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザは主ユニットに入力を与えるためにコントローラ52を操作する。たとえば、コントロール60を操作することによってゲームもしくは他のアプリケーションをスタートさせる。他のコントロール60を動かすことによって、動画キャラクタを異なる方向に移動させ、または3D世界におけるユーザの視点を変化させる。記憶媒体62にストアされている具体的なソフトウェアによって、コントローラ52上の種々のコントロール60は異なる時間で異なる機能を達成することができる。
全体システムの例
図2はシステム50の例示的なコンポーネントのブロック図であり、重要なコンポーネントは、
・主プロセサ(CPU)110、
・主メモリ112、および
・グラフィクス/オーディオプロセサ114
を含む。
【0021】
この実施例において、主プロセサ110(たとえばIBMパワーPC750の改良版)は、手持ちコントローラ52(および/または他の入力デバイス)からの入力をグラフィクス/オーディオプロセサ114を通して受ける。主プロセサ110はユーザ入力にインタラクティブに応答し、光ディスクドライブのような大容量記憶媒体アクセス装置106を介して、たとえば外部記憶媒体62から供給されるビデオゲームもしくは他のプログラムを実行する。一例として、ビデオゲームプレイの状況では、主プロセサ110は、多様なインタラクティブ制御機能に加えて、衝突検出および動画処理を実行する。
【0022】
この実施例では、主プロセサ110は3Dグラフィクス/オーディオコマンドを発生し、それらをグラフィクス/オーディオプロセサ114に送る。グラフィクス/オーディオプロセサ114はこれらのコマンドを処理し、ディスプレイ59上での可視映像を生成し、ステレオスピーカ61Rおよび61Lもしくは他の適宜の音声発生デバイス上でのステレオ音声を生成する。
【0023】
実施例のシステム50はビデオエンコーダ120を含み、このビデオエンコーダは、グラフィクス/オーディオプロセサ114からの映像信号を受けて、その映像信号をコンピュータモニタや家庭用テレビ56のような標準的な表示装置上での表示に適したアナログおよび/またはディジタルビデオ信号に変換する。システム100はまたオーディオコーデック(圧縮器/伸長器)122を含み、このオーディオコーデックはディジタル化されたオーディオ信号を圧縮しかつ伸長するとともに、必要に応じてディジタルオーディオ信号のフォーマットとアナログオーディオ信号のフォーマットとの間で変換を行う。オーディオコーデック122はバッファ124を介してオーディオ入力を受けることができ、処理(たとえば、プロセサが生成したおよび/または大容量記憶媒体アクセス装置106のストリームオーディオ出力を介して受信した他のオーディオ信号とのミキシング)するために、そのオーディオ入力をグラフィクス/オーディオプロセサ114に与える。この実施例におけるグラフィクス/オーディオプロセサ114は、オーディオタスクに利用可能なオーディオメモリ126にオーディオ関連情報をストアすることができる。グラフィクス/オーディオプロセサ114は、結果的に得られるオーディオ出力信号を、圧縮およびアナログ信号への変換のために、オーディオコーデック122に与え、したがってそのオーディオ出力信号が(たとえばバッファアンプ128Lおよび128Rを介して)スピーカ61Lおよび61Rによって再生され得る。
【0024】
グラフィクス/オーディオプロセサ114はシステム100内に存在するであろう種々の付加的なデバイスと通信する能力を有する。たとえば、パラレルディジタルバス130は大容量記憶媒体アクセス装置106および/または他のコンポーネントと通信するために用いられる。シリアル周辺バス132は多様な周辺機器または、たとえば、
・PROMおよび/またはRTC(リアルタイムクロック)134、
・モデム136もしくは他のネットワークインタフェース(それはシステム100を、プログラム命令および/またはデータがダウンロードもしくはアップロードされ得るインターネットあるいは他のディジタルネットワークのようなテレコミュニケーションネットワーク138に接続する)、および
・フラッシュメモリ140
を含む他のデバイスと通信する。
別の外部シリアルバス142は、付加的な拡張メモリ144(たとえばメモリカード)もしくは他のデバイスと通信するために使用され得る。コネクタが種々のデバイスをバス130,132および142に接続するために使用され得る。
グラフィクス/オーディオプロセサの例
図3は実施例のグラフィクス/オーディオプロセサ114を示すブロック図である。或る実施例においては、グラフィクス/オーディオプロセサ114はシングルチップASICであってよい。この実施例においては、グラフィクス/オーディオプロセサ114は、
・プロセサインタフェース150、
・メモリインタフェース/コントローラ152、
・3Dグラフィクスプロセサ154、
・オーディオディジタル信号プロセサ(DSP)156、
・オーディオメモリインタフェース158、
・オーディオインタフェース/ミキサ160,
・周辺コントローラ162、および
・表示コントローラ164
を含む。
【0025】
3Dグラフィクスプロセサ154はグラフィクス処理タスクを実行する。オーディオディジタル信号プロセサ156はオーディオ処理タスクを実行する。表示コントローラ164は主メモリ112からの映像情報にアクセスし、表示装置102上での表示のためにその映像情報をビデオエンコーダ120に与える。オーディオインタフェース/ミキサ160はオーディオコーデック122をインタフェースし、また異なるソースからのオーディオ(たとえば、大容量記憶媒体アクセス装置106からのオーディオストリーム,オーディオDSP156の出力,およびオーディオコーデック122を通して受ける外部オーディオ入力)をミックスすることができる。プロセサインタフェース150は主プロセサ110およびグラフィクス/オーディオプロセサ114の間のデータおよび制御インタフェースを提供する。
【0026】
メモリインタフェース152はグラフィクス/オーディオプロセサ114とメモリ112との間のデータおよび制御インタフェースを提供する。この実施例においては、主プロセサ110は、プロセサインタフェース150およびグラフィクス/オーディオプロセサ114の一部であるメモリインタフェース152を介して、主メモリ112にアクセスする。周辺コントローラ162はグラフィクス/オーディオプロセサ114と上で述べた種々の周辺機器との間のデータおよび制御インタフェースを提供する。オーディオメモリインタフェース158はオーディオメモリ126とのインタフェースを提供する。
グラフィクスパイプラインの例
図4は図3の3Dグラフィクスプロセサ154をより詳細に示すグラフィクス処理システムを示す。この3Dグラフィクスプロセサ154は、とりわけ、コマンドプロセサ200および3Dグラフィクスパイプライン180を含む。主プロセサ110はデータストリーム(たとえばグラフィクスコマンドストリームおよび表示リスト)をコマンドプロセサ200に通信する。主プロセサ110はメモリレイテンシを最小化するために2レベルキャッシュ112を有し、さらにまたグラフィクス/オーディオプロセサ114に向けられたキャッシュされていないデータストリームのための書込収集(write-gathering)バッファ111を有する。この書込収集バッファ11は部分キャッシュラインを全キャッシュラインに集め、バスの最大使用時に、グラフィクス/オーディオプロセサ114からのデータを1つのキャッシュラインに送る。
【0027】
コマンドプロセサ200は主プロセサ110からの表示コマンドを受け、それらを解剖し、メモリコントローラ152を介して共用メモリ112からのそのコマンドを処理するに必要な付加的なデータを入手する。コマンドプロセサ200は、2Dおよび/または3D処理およびレンダリングのために、頂点コマンドのストリームをグラフィクスパイプライン180に与える。グラフィクスパイプライン180はこれらのコマンドに基づいて映像を生成する。結果として得られた映像情報は、表示コントローラ/ビデオインタフェースユニット164によるアクセスのために主メモリ120に転送され得て、この映像情報は表示装置156上にパイプライン180のフレームバッファ出力を表示する。
【0028】
図5はグラフィクスプロセサ154を用いて実行される処理を図解的に示すブロック論理フロー図である。主プロセサ10は、グラフィクスコマンドストリーム210,表示リスト212および頂点アレイ214を主メモリ112にストアし、ポインタをバスインタフェース150を介してコマンドプロセサ200に送る。主プロセサ110は主メモリ110内に割り付けられた1つ以上のグラフィクスFIFOバッファ210にグラフィクスコマンドをストアする。このコマンドプロセサ200は、
・同期/フロー制御および負荷バランスのためにグラフィクスコマンドを受けかつバッファするオンチップFIFOメモリバッファ216を介して主メモリ112からのコマンドストリーム、
・オンチップコールFIFOメモリバッファ218を介して主メモリ112からの表示リスト212、および
・コマンドストリームからおよび/または主メモリ112の頂点アレイ214からの頂点アトリビュート
を頂点キャッシュ220を介して取り込む。
【0029】
コマンドプロセサ200はコマンド処理動作200aを実行し、そのコマンド処理動作200aはアトリビュート形式を浮動小数点フォーマットに変換し、結果的に得られた完全頂点ポリゴンデータをレンダリング/ラスタライゼーションのためにグラフィクスパイプライン180に与える。プログラマブルメモリ調停回路130(グラフィクスメモリ要求調停回路:図4)は、グラフィクスパイプライン180,コマンドプロセサ200および表示コントローラ/ビデオインタフェースユニット164の間での共用主メモリ112へのアクセスを調停する。
【0030】
図4は、グラフィクスパイプライン180が
・変換ユニット300、
・セットアップ/ラスタライザ400、
・テクスチャユニット500、
・テクスチャ環境ユニット600、および
・ピクセルエンジン700
を含むことを示す。
【0031】
変換ユニット300は多様な2Dおよび3D変換および他の動作300a(図5)を実行する。変換ユニット300は変換処理300aに用いられるマトリクスをストアするための1つ以上のマトリクスメモリ300bを含む。変換ユニット300は、入来する頂点毎のジオメトリをオブジェクト空間からスクリーン空間へ変換し、そして入来するテクスチャ座標を変換しかつ投影テクスチャ座標(300c)を計算する。変換ユニット300はまたポリゴンクリッピング/カリング(clipping/culling)300dを実行する。変換ユニット300bによってまた達成される照明処理300eが、この実施例では8つまでの独立した照明について、頂点毎に照明計算を行う。変換ユニット300は、エンボス(embossed)タイプのバンプマッピング効果およびポリゴンクリッピング/カリング動作(300d)のために、テクスチャ座標を発生する(300c)。
【0032】
セットアップ/ラスタライザ400はセットアップユニットを含み、このセットアップユニットは、変換ユニット300からの頂点データを受け、三角形セットアップ情報を、エッジラスタライゼーション,テクスチャ座標ラスタライゼーションおよびカラーラスタライゼーションを実行する1つ以上のラスタライザユニット(400b)に送る。
【0033】
テクスチャユニット500は、オンチップテクスチャメモリ(TMEM)502を含んでもよく、たとえば、
・主メモリ112からのテクスチャ504の検索、
・たとえばマルチテクスチャ処理,ポストキャッシュテクスチャ伸長,テクスチャフィルタリング,エンボシング,投影テクスチャの使用を通しての陰影付け,およびアルファトランスパーレンシおよびデプスを用いるBLITを含むテクスチャ処理(500a)、
・バンプマッピング,偽(pseudo)テクスチャおよびテクスチャタイル(tiling)効果(500b)のためのテクスチャ座標置換を計算するバンプマップ処理、および
・間接テクスチャ処理(500c)
を含むテクスチャリングに関連する種々のタスクを実行する。
【0034】
テクスチャユニット500はテクスチャ環境処理(600a)のためにフィルタされたテクスチャ値をテクスチャ環境ユニット600に出力する。テクスチャ環境ユニット600は、ポリゴンおよびテクスチャカラー/アルファ/デプスをブレンドし、また逆レンジベース(reverse range based)のフォグ効果を達成するために、テクスチャフォグ処理(600b)を実行する。テクスチャ環境ユニット600はたとえばカラー/アルファ変調,エンボシング,詳細テクスチャ,テクスチャスワッピング,クランピングおよびデプスブレンディングに基づく多様な他の環境関連機能を実行するマルチステージ(multi stages)を提供する。
【0035】
ピクセルエンジン700はデプス(z)比較(700a)およびピクセルブレンディング(700b)を実行する。この実施例では、ピクセルエンジン700はデータを埋め込み(オンチップ:内蔵)フレームバッファメモリ702にストアする。グラフィクスパイプライン180は、フレームバッファおよび/またはテクスチャ情報をローカルにストアするために1つ以上の内蔵DRAMメモリ702を含む。z比較700aは、現在有効なレンダリングモードに依存して、グラフィクスパイプライン180におけるより早いステージで実行される(たとえば、z比較は、もしアルファブレンディングが要求されていないならば早くに実行され得る)。このピクセルエンジン700は表示コントローラ/ビデオインタフェースユニット164による主メモリ112へのアクセスのために、オンチップフレームバッファ702を周期的に書き込むコピー動作700cを含む。このコピー動作700cはまた動的テクスチャ合成効果のために、埋め込みフレームバッファ702の内容を主メモリ112中のテクスチャにコピーするために使用され得る。エイリアス補正ないしアンチエイリアシング(anti-aliasing:エイリアス補正)および他のフィルタリングがコピーアウト動作中に実行され得る。最終的に主メモリ112にストアされるグラフィクスパイプライン180のフレームバッファ出力は、表示コントローラ/ビデオインタフェースユニット164によってフレーム毎に読み出される。表示コントローラ/ビデオインタフェース164は表示装置56上での表示のためにディジタルRGBピクセル値を与える。
グラフィクスパイプライン同期化メカニズム
図4に示すように、システム50のレンダリングパイプラインはいくつかの非同期コンポーネントを含む。それらの中で、主プロセサ110はグラフィクスコマンドを発生し、グラフィクス/オーディオプロセサ114はそのコマンドを消費してフレームバッファを生成し、そして表示コントローラ/ビデオインタフェース164はフレームバッファを表示する。この発明はこれらのコンポーネントを同期化するためのメカニズムを提供し、複雑さの異なるレベルで種々のプログラムモデルを許容する。
【0036】
実施例において、主プロセサ110はグラフィクス/オーディオプロセサ114と調和されるべきである。たとえば、主プロセサ110が与えるプリミティブデータやテクスチャデータはグラフィクス/オーディオプロセサ114がそれを読み取るまで利用可能にされていなければならず、その後、主プロセサは次のフレームのためにデータを変更したり必要に応じてそれを削除する。また、グラフィクス/オーディオプロセサ114は、内蔵フレームバッファ702がアクティブでない外部フレームバッファ113へ単にコピーされ、表示コントローラ/ビデオインタフェース164が正しい時間に新たな外部フレームバッファの走査へ切り換え、次のフレームによる使用のために先に走査されていた外部フレームバッファを開放するように、表示コントローラ/ビデオインタフェース164と調和されなければならない。同期化のための他のアプリケーションは、主プロセサ110とグラフィクス/オーディオプロセサ114との間で共用される主メモリ112の一部のための他のメモリ等時性(memory coherence) タスクを含む。
【0037】
実施例が提供する同期化のためのメカニズムはいわゆる「ドローダン(draw done) 」コマンドである。具体的な例では、この「ドローダン」コマンドは、好ましい実施例において、廻り込み(wrapper around)2同期化機能:「セットドローダン(set draw done) 」および「ウェイトドローダン(wait draw done)」である。この「セットドローダン」コマンドは、主プロセサ110とグラフィクス/オーディオプロセサ114との間のFIFOバッファにドローダントークン(draw-done token) を送り、そのバッファをフラッシュ(flush)する。「ウェイトドローダン」コマンドは、グラフィクスパイプライン180がフラッシュしかつトークンがグラフィクスパイプラインの終端に現れるのを待つ。トークンを待つのに代えて、ドローダン割込の結果として生じるコールバック(callback)を使用することもできる。このコールバックはディスエーブルされた割込とともに走り、そしてそれゆえに、素早く終了する。コールバックルーチンを設定するための関数は先のコールバック関数ポインタへリターンする。
【0038】
上で述べた「ドローダン」同期化メカニズムに加えて、システム50の好ましい実施例は、グラフィクスパイプライン180が或るコマンドの処理を完了した(たとえば、或るジオメトリが完全にレンダリングされた)ことを検出するために使用される「ドローシンク(draw sync) 」コマンドを含む。この「ドローシンク」メカニズムを用いることによって、プログラマは、たとえば、可変コンテンツトークンたとえば主プロセサ110の選択した16ビット数をグラフィクスパイプライン180へ送ることができる。このトークンはグラフィクスパイプライン中の所定点に、この具体的な実施例では、ピクセルエンジン700内のグラフィクスパイプラインの終端(very bottom)にそれが到達すると、トークンレジスタ704にストアされる。主プロセサ110はグラフィクス/オーディオプロセサ114へ付加的なコマンドを送ることによって、そのトークンレジスタ704を読み出す。返送されたトークンレジスタ値が主プロセサ114が送ったトークンと一致すると、主プロセサは、そのトークンに関連する特定のジオメトリが完全にレンダリングされたことを知る。
【0039】
詳しくいえば、グラフィクス/オーディオプロセサはそれの同期化コマンドのレパートリに次のようなコマンドを含むことができる。
【0040】
GXSetDrawSync(Token)
GXReadDrawSync(Token)
これらの例において、引数(argument)「Token 」は、16ビットの未符号化(unsigned)整数値である。GXSetDrawSync コマンドに応答して、グラフィクスパイプライン180のハードウェアは、このコマンドが描画パイプラインの終端に達したとき、Token をトークンレジスタ704へ書き込む。このレジスタ704は、描画のプロセスをチェックするために、読み出され(たとえば、ポーリングされ)得る。好ましい実施例において、GXDrawSyncは、したがって、グラフィクスパイプライン180中へ数値(16ビットトークン)を挿入し、それがグラフィクスパイプラインの終端に達したときそのトークン値を読み出すようにでき、グラフィクスパイプラインを強制的にフラッシュさせることがない(そしてグラフィクスパイプライン中の「バブル(bubble)」のアイドリングサイクルを作ることがない)。このGXReadDrawSyncコマンドはグラフィクスパイプライン180の終端でトークンレジスタ704を読み出し、そのトークン値を返送する。
【0041】
具体的な実施例においては、割込ライン706がピクセルエンジン700からプロセサインタフェース150へ設けられる。この割込ライン706はトークンレジスタ704およびそれの関連機能に関連する。ピクセルエンジン700は、ピクセルエンジン700内のトークンレジスタ704が上で述べた「GXSetDrawSync 」コマンドに応答してトークンを受けかつストアしたとき、この割込ライン706をアクティブ(たとえば、ハイレベル)にする。この割込機能は、主プロセサ110がピクセルエンジン700内の別の割込制御レジスタ(図示せず)へ割込イネーブル値を書き込むことによってイネーブルされまたはディスエーブルされ得る。主プロセサ110はピクセルエンジン700内の割込制御レジスタへ書き込むことによって一旦設定された割込をクリアすることができ、そして上で述べた「ReadDrawSync」コマンドを送ることによって、トークンレジスタ704の内容をポーリングすることができる。
【0042】
好ましい実施例において、主プロセサ110上で走るアプリケーションはトークン割込コールバックを設定する「GXDrawSyncCallback」コマンドを登録することができる。このコールバックの引数は最も直近に遭遇したトークンの値である。トークンを取り損なうことができる(コールバックが動作している間グラフィクス処理は停止しない)ので、アプリケーションは、たとえば単純に値を増加させることによって、任意のトークンが取り逃されたことを推測することができる。
【0043】
図6は上で述べたトークン同期化メカニズムを使用したフロー図の例である。図6のフロー図は、たとえば、主プロセサ110上で動いているアプリケーションによって実行される。具体的な例においては、アプリケーションはグラフィクスパイプライン180へ1つまたはそれ以上のグラフィクスコマンドを挿入し(ブロック800)、ユニークなデータメッセージを発生し(ブロック802)、そして上で述べたReadDrawSyncコマンドを用いてそのユニークなデータメッセージをトークンとしてグラフィクスパイプライン中へ挿入する(ブロック804)。具体的な実施例においては、その挿入するトークンは、解剖されているデータ中の非演繹的テキスト要素(non-reducible textual element)、たとえば、可変ネーム,値,数,キャラクタあるいはワードを含む独特に構成されたデータオブジェクトまたはメッセージである。アプリケーションは、ピクセルエンジン700からの割込を待つ間、他のタスクを実行する(ブロック806)。割込を受けると、アプリケーションは、既に述べたGetDrawSync コマンドを用いてピクセルエンジンのトークンレジスタ704を読み取る(ブロック808)。アプリケーションがトークンレジスタ704の内容を抽出すると、アプリケーションはその値をトークンとして送られた具体的な値と比較して、2つの値が一致するかどうかを判断する(決定ブロック810)。この比較が好都合ないし肯定的であるとき、アプリケーションはグラフィクスパイプライン180がブロック800によるトークンより前に挿入されたコマンドの処理を終了したことを「知る」ので、アプリケーションは、次いで、グラフィクスパイプライン180と同期化させるに必要なタスクを実行する(ブロック812)。次表1は使用例である。
【0044】
【表1】
上で述べた同期化トークンは、主プロセサ110上で動作しているアプリケーションが任意の数の異なる同期化イベントを定義し、トークン値に基づいてこれらの同期化イベントを区別することを許容する。好ましい実施例においては、グラフィクスパイプライン180はトークン値を変更ないし修飾することはなく、そのために主プロセサ110はそれを容易に認識できる。しかしながら、他の実施例においては、グラフィクスパイプライン180は、それがグラフィクスパイプライン180中に挿入したトークンをピクセルエンジン700で受け取ったトークン値と相互に関連付ける主プロセサ110の能力を破壊することなく、その値を変更するためにトークン値上に所定の関数(による計算)を実行することができる。好ましい実施例においては、トークンレジスタ704はグラフィクスパイプライン180の終端へ配置されたが、他の場所に配置されてもよく、あるいは最終完了のほかにジオメトリの完了状態をモニタする必要があれば、複数のトークンレジスタやそれに関連する割込ラインを設けることができる。
【0045】
この同期化メカニズムの1つの有用な応用は、主プロセサ110がグラフィクスパイプライン180とは別のメモリ(たとえば主プロセサ110とグラフィクスパイプライン180との間で共用される主メモリ112)へ書き込みかつメモリ等時性を維持したいときである。
互換性のある他の実施例
上述のシステム50は上で述べた家庭用ビデオゲームコンソールの構成以外としても実現できる。たとえば、或るものは、システム50をエミュレートする異なる構成を有するプラットフォームもしくはそれと同等のものにおいて、システム50のために書かれたグラフィクスアプリケーションや他のソフトウェアを実行させることができる。もし、他のプラットフォームがシステム50のいくつかのもしくはすべてのハードウェアおよびソフトウェアリソースをエミュレートしシミュレートしおよび/または提供することができれば、その他のプラットフォームはそのソフトウェアを成功裏に実行することができる。
【0046】
一例として、エミュレータがシステム50のハードウェアおよび/またはソフトウェア構成(プラットフォーム)とは異なるハードウェアおよび/またはソフトウェア構成(プラットフォーム)を提供できる。そのエミュレータシステムは、それのためにアプリケーションソフトウェアが書かれているシステムのいくつかのもしくはすべてのハードウェアおよび/またはソフトウェアコンポーネンツをエミュレートしもしくはシミュレートするソフトウェアおよび/またはハードウェアコンポーネンツを含む。たとえば、エミュレータシステムはパソコンのような汎用ディジタルコンピュータを含み、それはシステム50のハードウェアおよび/またはファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行する。上述のオーディオシステムのDSP処理がパソコンによってエミュレートされ得る。
【0047】
或る汎用ディジタルコンピュータ(たとえばIBMやマッキントッシュのパソコンおよびそれらの同等物)は、ダイレクトX(DirectX)または他の標準的な3DグラフィクスコマンドAPIsに従った3Dグラフィクスパイプラインを提供する3Dグラフィクスカードを備える。それらはまた、音声コマンドの標準的なセットに基づいて高品質のステレオ音声を提供するステレオ音声カードを備える。エミュレータソフトウェアを実行するそのようなマルチメディアのハードウェアを備えるパソコンは、システム50のグラフィクスおよび音声性能とほぼ等しい十分な性能を有する。エミュレータソフトウェアはパソコンプラットフォーム上のハードウェアリソースを制御して、それのためにゲームプログラマがゲームソフトウェアを書いた家庭用ビデオゲームコンソールプラットフォームの処理,3Dグラフィクス,音声,周辺および他の能力をシミュレートする。
【0048】
図7はホストプラットフォーム1201,エミュレータコンポーネント1303および記憶媒体62上のゲームソフトウェア実行可能バイナリ映像を用いる全体のエミュレーション処理を図解する。ホスト1201は、たとえばパソコン,ビデオゲームコンソールあるいは十分な計算力を有する任意の他のプラットフォームのような汎用または特定目的ディジタル計算装置である。エミュレータ1303はそのホストプラットフォーム1201上で走るソフトウェアおよび/またはハードウェアであり、記憶媒体62からのコマンド,データおよび他の情報のそのホスト1201によって実行可能な形態へのリアルタイム変換を行う。たとえば、エミュレータ1303は記憶媒体62からシステム50によって実行されるように意図された「ソース」であるバイナリ映像プログラム命令を取り込み、これらのプログラム命令をホスト1201によって実行されもしくは処理され得るターゲットとなる形態に変換する。
【0049】
一例として、ソフトウェアがIBMパワーPCまたは他の特定のプロセサを用いるプラットフォーム上での実行のために書かれかつホスト1201が異なる(たとえばインテル)プロセサを用いるパソコンである場合、エミュレータ1203は記憶媒体1305からの1つのもしくは一連のバイナリ映像プログラム命令を取り込み、これらのプログラム命令を1つまたはそれ以上の同等のインテルのバイナリ映像プログラム命令に変換する。エミュレータ1203はまたグラフィクス/オーディオプロセサ114によって処理されるように意図されたグラフィクスコマンドおよびオーディオコマンドを取り込みかつ/あるいは生成し、そしてホスト1201上で利用可能なハードウェアおよび/またはソフトウェアグラフィクス/オーディオ処理リソースによって処理され得る形態にこれらのコマンドを変換する。一例として、エミュレータ1303はホスト1201の特別なグラフィクスおよび/または音声ハードウェア(たとえば標準的なダイレクトX,オープンGLおよび/または音声APIs)によって処理され得るコマンドにこれらのコマンドを変換する。
【0050】
上で述べたビデオゲームシステムのいくつかのもしくはすべての特徴を与えるために用いられるエミュレータ1303は、また、エミュレータを使ってゲームを走らせている種々のオプションおよびスクリーンモードの選択を簡単化しもしくは自動化するグラフィックユーザインタフェース(GUI)を備える。一例において、そのようなエミュレータ1303はさらにそのソフトウェアが本来的に目的とされたホストプラットフォームに比べてより増強された機能性を含むこともできる。
【0051】
図8はエミュレータ1303で用いるに適したエミュレーションホストシステム1201を図解的に示す。このシステム1201は処理ユニット1203およびシステムメモリ1205を含む。システムバス1207がシステムメモリ1205を含む種々のシステムコンポーネンツを処理ユニット1203に結合する。システムバス1207は多様なバスアーキテクチャのいずれかを用いるメモリバスもしくはメモリコントローラ,周辺バスおよびローカルバスを含むいくつかのタイプのバス構造の任意のものである。システムメモリ1207はROM1252およびRAM1254を含む。起動中においてのようにパソコンシステム1201中のエレメント(要素)間に情報を伝送する手助けをする基本ルーチンを含む基本入力/出力システム(BIOS)1256がROM1252中にストアされる。システム1201はさらに種々のドライブおよび関連のコンピュータ読出可能な媒体を含む。ハードディスクドライブ1209が(典型的には固定の)磁気ハードディスク1211から読み出しそれへ書き込む。付加的な(たぶんオプションとしての)磁気ディスクドライブ1213が着脱可能な「フロッピィ」または他の磁気ディスク1251から読み出しかつそれへ書き込む。光ディスクドライブ1217はCD−ROMあるいは他の光学媒体のような着脱自在な光ディスク1219から読み出しかつそれへ書き込む。ハードディスクドライブ1209および光ディスクドライブ1217は、ハードディスクドライブインタフェース1221および光ディスクドライブインタフェース1225によって、システムバス1207にそれぞれ接続される。これらのドライブおよびその関連するコンピュータ読出可能な媒体は、パソコンシステム1201のためのコンピュータ読出可能な命令,データ構造,プログラムモジュール,ゲームプログラムおよび他のデータの不揮発性の記憶媒体を提供する。他の構成では、コンピュータによってアクセス可能なデータをストアすることができる他のタイプのコンピュータ読出可能な媒体(たとえば磁気カセット,フラッシュメモリカード,ディジタルビデオディスク,ベルヌーイカートリッジ,RAM,ROMあるいはその他のもの)がまた使用できる。
【0052】
エミュレータ1303を含む多数のプログラムモジュールがハードディスク1211,着脱可能な磁気ディスク1215,光ディスク1219および/またはシステムメモリ1205のROM1252および/またはRAM1254にストアされ得る。このようなプログラムモジュールはグラフィクス/音声APIs,1つ以上のアプリケーションプログラム,他のプログラムモジュール,プログラムデータおよびゲームデータを提供するオペレーティングシステム(OS)を含む。ユーザは、キーボード1227,ポインティングデバイス1229,マイクロフォン,ジョイスティック,ゲームコントローラ,衛星アンテナ(satellite dish),スキャナあるいはその他のもののような入力デバイスを通して、パソコンシステム1201にコマンドおよび情報を入力することができる。これらのそして他の入力デバイスは、システムバス1207に結合されたシリアルポートインタフェース1231を通して処理ユニット1203に接続され得るが、パラレルポート,ゲームポートファイヤワイヤバス(Fire Wire)もしくはユニバーサルシリアルバス(USB)のような他のインタフェースによって接続されてもよい。モニタまたは他のタイプの表示デバイスがまたビデオアダプタ1235のようなインタフェースを介してシステムバス1207に接続される。
【0053】
システム1201はモデム1154またはインターネットのようなネットワーク1152を通しての通信を確立するための他のネットワークインタフェース手段を含む。内部もしくは外付けであってよいモデム1154はシリアルポートインタフェース1231を介してシステムバス123に接続される。システム1201がローカルエリアネットワーク1158を介して遠隔コンピュータ装置1150(たとえば他のシステム1201)と通信するのを許容するために、ネットワークインタフェース1156がまた設けられてもよい(もしくはそのような通信はダイヤルアップもしくは他の通信手段のようなワイドエリアネットワーク1152もしくは他の通信経路を介してもよい)。システム1201はプリンタのような周辺出力装置および他の標準的な周辺装置を含む。
【0054】
一例では、ビデオアダプタ1235は、マイクロソフト(Microsoft)のダイレクトX7.0、または他のバージョンのような標準的な3Dグラフィクスアプリケーションプログラマインタフェースに基づいて発行された3Dグラフィクスコマンドに応答して、高速の3Dグラフィクスレンダリングを提供する3Dグラフィクスパイプラインチップセットを含んでもよい。1組のスピーカ1237はまた、バス1207によって与えられる音声コマンドに基づいて高品質ステレオ音声を生成するハードウェアおよび埋め込みソフトウェアを提供する従来の「音声カード」のような音声生成インタフェースを介して、システムバス1207に接続される。これらのハードウェア能力によって記憶媒体1305中にストアされているソフトウェアを再生するためにシステム1201に十分なグラフィクスおよび音声の速度性能を与えることができる。
【0055】
上で言及したすべての書類を、ここで、参照によって取り入れる。
【0056】
最も現実的かつ好ましい実施例であると現在考えられているものに関連してこの発明が説明されたが、この発明は開示された実施例に限定されるものではなく、逆に、特許請求の範囲内に含まれる種々の変形例や等価的な構成をカバーするように意図されていることを理解されたい。
【図面の簡単な説明】
【図1】図1はインタラクティブコンピュータグラフィクスシステムの実施例を示す全体図である。
【図2】図2は図1実施例のコンピュータグラフィクスシステムのブロック図である。
【図3】図3は図2に示す実施例のグラフィクス/オーディオプロセサのブロック図である。
【図4】図4は図3に示す実施例の3Dグラフィクスプロセサのブロック図である。
【図5】図4のグラフィクス/オーディオプロセサの例示的な論理フロー図である。
【図6】図6は同期化トークンを用いたグラフィクスパイプラインの同期化の例のフロー図である。
【図7】図7は別の互換性のある実施例を示す。
【図8】図8は別の互換性のある実施例を示す。
【符号の説明】
50 …インタラクティブ3Dコンピュータグラフィクスシステム
110 …主プロセサ
112 …主メモリ
114 …グラフィクス/オーディオプロセサ
180 …グラフィクスパイプライン
500 …テクスチャユニット
700 …ピクセルエンジン
704 …トークンレジスタ
706 …割込ライン
Claims (17)
- グラフィックスパイプラインに対する少なくとも1つの外部処理装置をグラフィクスパイプラインと同期化する方法であって、
外部処理装置によってグラフィクスパイプラインの始端へプログラマブルコンテンツ同期化トークンを送信するステップ、および
グラフィクスパイプライン内の所定点に同期化トークンが到達したタイミングを検出するステップ、および
グラフィックスパイプライン内の前記所定点に同期化トークンが到達したことが検出されたとき外部処理装置に信号を送るステップを含む、同期化方法。 - 同期化トークンは、グラフィクスパイプラインが変更しない可変コンテンツデータメッセージを含む、請求項1記載の方法。
- 前記所定点から返送された値と送信した同期化トークンの値とを比較するステップをさらに含む、請求項1または2記載の方法。
- さらに、グラフィクスパイプラインへ送信する可変トークン値を前記外部処理装置上で動作しているアプリケーションプログラムによって特定するステップを含む、請求項1ないし3のいずれかに記載の方法。
- 同期化トークンは16ビット可変値を含む、請求項1ないし4のいずれかに記載の方法。
- 前記所定点からの割込に応答して前記外部処理装置がグラフィックスパイプラインの前記所定点をポーリングするステップをさらに含む、請求項1ないし5のいずれかに記載の方法。
- グラフィックスパイプラインに対する少なくとも1つの外部処理装置をグラフィクスパイプラインと同期化する方法であって、前記グラフィックスパイプラインは、変換ユニット,ライティングユニット,テクスチャ座標発生器,テクスチャマッパ,ラスタライザ,ブレンダ,ピクセルエンジンおよびフレームバッファを含む形式のものであり、
前記外部処理装置からグラフィクスパイプラインの始端へ可変コンテンツ同期化メッセージを挿入するステップ、
グラフィクスパイプライン中の所定位置に到達した可変コンテンツ同期化メッセージを捕捉するステップ、
グラフィクスパイプライン中の前記所定位置に可変コンテンツ同期化メッセージが到達したときに外部処理装置に信号を伝達するステップ、および
捕捉した可変コンテンツ同期化メッセージが挿入した可変コンテンツ同期化メッセージに対応するかどうか前記外部処理装置で判断するステップを含み、同期化方法。 - 信号伝達ステップは、グラフィクスパイプラインの前記所定位置に可変コンテンツ同期化メッセージが到達したときに前記外部所定装置に割込を発生するステップを含む、請求項7記載の方法。
- 捕捉ステップは可変コンテンツ同期化メッセージをレジスタにストアするステップを含み、そして判断ステップはそのレジスタの内容を読み出すステップを含み、レジスタから読み出した可変コンテンツ同期化メッセージと挿入した可変コンテンツ同期化メッセージとが対応するかどうか判断する、請求項7または8記載の方法。
- ピクセルエンジンが信号伝達ステップを実行する、請求項7ないし9のいずれかに記載の方法。
- グラフィクスパイプラインは可変コンテンツ同期化メッセージを変更しない、請求項7ないし10のいずれかに記載の方法。
- コマンドプロセサに結合され、変換ユニット,ライティングユニット,テクスチャ座標発生器,テクスチャマッパ,ラスタライザ,ブレンダ,ピクセルエンジン,およびフレームバッファを含むグラフィクスパイプラインにおいて、
コマンドプロセサは外部処理装置から可変コンテンツ同期化メッセージを受けてその可変コンテンツ同期化メッセージをグラフィクスパイプラインを通してピクセルエンジンへパスし、ピクセルエンジンは、可変コンテンツ同期化メッセージが到達したときそれを捕捉するレジスタを含み、その可変コンテンツ同期化メッセージがレジスタに到達したときに信号を前記外部処理装置へ伝達するようにしたことを特徴とする、グラフィクスパイプライン。 - 可変コンテンツ同期化メッセージを変更しない、請求項12記載のグラフィクスパイプライン。
- グラフィクスコマンドストリームを受信しかつそのグラフィクスコマンドストリームに基づいてイメージを発生する形式のグラフィクスシステムであって、
可変コンテンツ同期化メッセージを含む同期化トークンをそのグラフィクスコマンドストリーム中で受信するようにされ、さらに
グラフィクスコマンドシーケンス中で同期化トークンに対してより早いグラフィクスストリームの部分が処理されたかどうかについての問い合わせに対して応答を与え、それによってグラフィクスシステムのイベントのグラフィックスコマンドストリーム処理に対する少なくとも1つの外部処理装置との同期化を許容するようにした、グラフィクスシステム。 - アプリケーションに特定した集積回路を含む、請求項14記載のグラフィクスシステム。
- 3Dグラフィクスパイプラインを含む、請求項14または15記載のグラフィクスシステム。
- 3Dグラフィックスパイプラインに対する少なくとも1つの外部処理装置を3Dグラフィクスパイプラインと同期化する方法であって、前記3Dグラフィックスパイプラインは、変換,ライティング,テクスチャ座標発生,テクスチャマッピング,ラスタライジング,およびブレンドを含む形式のものであり、
外部処理装置によってグラフィクスパイプラインの始端へ可変コンテンツ同期化トークンを挿入するステップ、および
トークンがグラフィクスパイプライン中の所定点に到達したことに応答して外部処理装置に信号を送るステップを含む、方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22688900P | 2000-08-23 | 2000-08-23 | |
US60/226889 | 2000-08-23 | ||
US09/722419 | 2000-11-28 | ||
US09/722,419 US6867781B1 (en) | 2000-08-23 | 2000-11-28 | Graphics pipeline token synchronization |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002063570A JP2002063570A (ja) | 2002-02-28 |
JP4808858B2 true JP4808858B2 (ja) | 2011-11-02 |
Family
ID=26920958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001128570A Expired - Lifetime JP4808858B2 (ja) | 2000-08-23 | 2001-04-26 | グラフィクスパイプラインおよびそれの同期化方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6867781B1 (ja) |
JP (1) | JP4808858B2 (ja) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7538772B1 (en) | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US6867781B1 (en) * | 2000-08-23 | 2005-03-15 | Nintendo Co., Ltd. | Graphics pipeline token synchronization |
US6809736B1 (en) * | 2002-01-08 | 2004-10-26 | Apple Computer, Inc. | Virtualization of graphics resources |
US7768522B2 (en) * | 2002-01-08 | 2010-08-03 | Apple Inc. | Virtualization of graphics resources and thread blocking |
US7015919B1 (en) * | 2002-01-08 | 2006-03-21 | Apple Computer, Inc. | Virtualization of graphics resources |
US6809735B1 (en) * | 2002-01-08 | 2004-10-26 | Apple Computer, Inc. | Virtualization of graphics resources |
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
KR101019346B1 (ko) | 2003-01-31 | 2011-03-07 | 파나소닉 주식회사 | 재생장치, 기록방법, 재생방법 |
JP3878650B2 (ja) | 2003-02-28 | 2007-02-07 | 松下電器産業株式会社 | 記録媒体、再生装置、記録方法、プログラム、再生方法。 |
TWI263925B (en) * | 2003-12-16 | 2006-10-11 | Via Tech Inc | Graphics card for smoothing the playing of video |
US7324112B1 (en) | 2004-04-12 | 2008-01-29 | Nvidia Corporation | System and method for processing divergent samples in a programmable graphics processing unit |
US7477255B1 (en) * | 2004-04-12 | 2009-01-13 | Nvidia Corporation | System and method for synchronizing divergent samples in a programmable graphics processing unit |
US20060017743A1 (en) * | 2004-07-23 | 2006-01-26 | Chan Victor G | Display intensity filter |
US7852342B2 (en) | 2004-10-14 | 2010-12-14 | Microsoft Corporation | Remote client graphics rendering |
US20060082581A1 (en) * | 2004-10-14 | 2006-04-20 | Microsoft Corporation | Encoding for remoting graphics to decoder device |
JP4425177B2 (ja) * | 2005-05-20 | 2010-03-03 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックプロセッサ、情報処理装置 |
US7609280B2 (en) * | 2005-09-07 | 2009-10-27 | Microsoft Corporation | High level graphics stream |
US8527563B2 (en) * | 2005-09-12 | 2013-09-03 | Microsoft Corporation | Remoting redirection layer for graphics device interface |
US8817029B2 (en) * | 2005-10-26 | 2014-08-26 | Via Technologies, Inc. | GPU pipeline synchronization and control system and method |
US7707334B2 (en) | 2005-11-18 | 2010-04-27 | Mobilic Technology (Cayman) Corp. | Self-synchronizing hardware/software interface for multimedia SOC design |
US8525842B1 (en) * | 2006-06-16 | 2013-09-03 | Nvidia Corporation | System and method for utilizing semaphores in a graphics pipeline |
US8094997B2 (en) * | 2006-06-28 | 2012-01-10 | Cyberlink Corp. | Systems and method for embedding scene processing information in a multimedia source using an importance value |
KR100713220B1 (ko) * | 2006-07-28 | 2007-05-02 | (주)블루비스 | 입체 영상 편집 장치 및 방법 |
CN101647044B (zh) | 2007-04-11 | 2011-10-19 | 松下电器产业株式会社 | 图像生成装置以及图像生成方法 |
US8134551B2 (en) * | 2008-02-29 | 2012-03-13 | Autodesk, Inc. | Frontend for universal rendering framework |
US9471996B2 (en) * | 2008-02-29 | 2016-10-18 | Autodesk, Inc. | Method for creating graphical materials for universal rendering framework |
US8521478B2 (en) * | 2008-04-01 | 2013-08-27 | Autodesk, Inc. | Automatic coloring of rigid groups of parts |
US8212806B2 (en) * | 2008-04-08 | 2012-07-03 | Autodesk, Inc. | File format extensibility for universal rendering framework |
US8667404B2 (en) | 2008-08-06 | 2014-03-04 | Autodesk, Inc. | Predictive material editor |
US8601398B2 (en) * | 2008-10-13 | 2013-12-03 | Autodesk, Inc. | Data-driven interface for managing materials |
US8560957B2 (en) * | 2008-10-13 | 2013-10-15 | Autodesk, Inc. | Data-driven interface for managing materials |
US9342901B2 (en) * | 2008-10-27 | 2016-05-17 | Autodesk, Inc. | Material data processing pipeline |
US8584084B2 (en) * | 2008-11-12 | 2013-11-12 | Autodesk, Inc. | System for library content creation |
KR20110011000A (ko) * | 2009-07-27 | 2011-02-08 | 삼성전자주식회사 | 3차원 영상 재생을 위한 부가 정보가 삽입된 3차원 영상 데이터스트림 생성 방법 및 그 장치, 3차원 영상 재생을 위한 부가 정보가 삽입된 3차원 영상 데이터스트림 수신 방법 및 그 장치 |
US8520010B2 (en) * | 2009-08-01 | 2013-08-27 | Sixense Entertainment, Inc. | Latency solutions |
US9190012B2 (en) * | 2009-12-23 | 2015-11-17 | Ati Technologies Ulc | Method and system for improving display underflow using variable HBLANK |
US9460546B1 (en) | 2011-03-30 | 2016-10-04 | Nvidia Corporation | Hierarchical structure for accelerating ray tracing operations in scene rendering |
US8970584B1 (en) | 2011-06-24 | 2015-03-03 | Nvidia Corporation | Bounding box-based techniques for improved sample test efficiency in image rendering |
US9142043B1 (en) | 2011-06-24 | 2015-09-22 | Nvidia Corporation | System and method for improved sample test efficiency in image rendering |
US9147270B1 (en) | 2011-06-24 | 2015-09-29 | Nvidia Corporation | Bounding plane-based techniques for improved sample test efficiency in image rendering |
US9269183B1 (en) | 2011-07-31 | 2016-02-23 | Nvidia Corporation | Combined clipless time and lens bounds for improved sample test efficiency in image rendering |
US9305394B2 (en) | 2012-01-27 | 2016-04-05 | Nvidia Corporation | System and process for improved sampling for parallel light transport simulation |
US9159158B2 (en) | 2012-07-19 | 2015-10-13 | Nvidia Corporation | Surface classification for point-based rendering within graphics display system |
US9171394B2 (en) | 2012-07-19 | 2015-10-27 | Nvidia Corporation | Light transport consistent scene simplification within graphics display system |
US9501112B2 (en) | 2013-08-10 | 2016-11-22 | Intel Corporation | Thermal energy storage, dissipation and EMI suppression for integrated circuits using porous graphite sheets and phase change material |
US9626732B2 (en) * | 2013-10-10 | 2017-04-18 | Intel Corporation | Supporting atomic operations as post-synchronization operations in graphics processing architectures |
US9760968B2 (en) | 2014-05-09 | 2017-09-12 | Samsung Electronics Co., Ltd. | Reduction of graphical processing through coverage testing |
US9842428B2 (en) | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US10021161B2 (en) | 2014-11-05 | 2018-07-10 | Qualcomm Incorporated | Compression of graphical commands for remote display |
CN112579411A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种图形流水同步控制评价方法 |
Family Cites Families (106)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4275413A (en) | 1978-03-30 | 1981-06-23 | Takashi Sakamoto | Linear interpolator for color correction |
US4357624A (en) | 1979-05-15 | 1982-11-02 | Combined Logic Company | Interactive video production system |
US4491836A (en) | 1980-02-29 | 1985-01-01 | Calma Company | Graphics display system and method including two-dimensional cache |
US4425559A (en) | 1980-06-02 | 1984-01-10 | Atari, Inc. | Method and apparatus for generating line segments and polygonal areas on a raster-type display |
US4388620A (en) | 1981-01-05 | 1983-06-14 | Atari, Inc. | Method and apparatus for generating elliptical images on a raster-type video display |
US4463380A (en) | 1981-09-25 | 1984-07-31 | Vought Corporation | Image processing system |
US4570233A (en) | 1982-07-01 | 1986-02-11 | The Singer Company | Modular digital image generator |
US4600919A (en) | 1982-08-03 | 1986-07-15 | New York Institute Of Technology | Three dimensional animation |
US4615013A (en) | 1983-08-02 | 1986-09-30 | The Singer Company | Method and apparatus for texture generation |
GB8322438D0 (en) | 1983-08-19 | 1983-10-12 | Marconi Avionics | Display systems |
US4586038A (en) | 1983-12-12 | 1986-04-29 | General Electric Company | True-perspective texture/shading processor |
US4808988A (en) | 1984-04-13 | 1989-02-28 | Megatek Corporation | Digital vector generator for a graphic display system |
US4725831A (en) | 1984-04-27 | 1988-02-16 | Xtar Corporation | High-speed video graphics system and method for generating solid polygons on a raster display |
US4829452A (en) | 1984-07-05 | 1989-05-09 | Xerox Corporation | Small angle image rotation using block transfers |
US4658247A (en) | 1984-07-30 | 1987-04-14 | Cornell Research Foundation, Inc. | Pipelined, line buffered real-time color graphics display system |
US4695943A (en) | 1984-09-27 | 1987-09-22 | Honeywell Information Systems Inc. | Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization |
EP0184547B1 (en) | 1984-12-07 | 1991-11-21 | Dainippon Screen Mfg. Co., Ltd. | Processing method of image data and system therefor |
US4625289A (en) | 1985-01-09 | 1986-11-25 | Evans & Sutherland Computer Corp. | Computer graphics system of general surface rendering by exhaustive sampling |
US4710876A (en) | 1985-06-05 | 1987-12-01 | General Electric Company | System and method for the display of surface structures contained within the interior region of a solid body |
US4897806A (en) | 1985-06-19 | 1990-01-30 | Pixar | Pseudo-random point sampling techniques in computer graphics |
US5239624A (en) | 1985-06-19 | 1993-08-24 | Pixar | Pseudo-random point sampling techniques in computer graphics |
FR2586838B1 (fr) | 1985-08-30 | 1989-07-28 | Labo Electronique Physique | Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions |
US4974177A (en) | 1985-10-04 | 1990-11-27 | Daikin Industries Ltd. | Mapping circuit of a CRT display device |
US4692880A (en) | 1985-11-15 | 1987-09-08 | General Electric Company | Memory efficient cell texturing for advanced video object generator |
JPS62192878A (ja) | 1986-02-20 | 1987-08-24 | Nippon Gakki Seizo Kk | 多角形の塗りつぶし方法 |
US4862392A (en) | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
JPS62231380A (ja) | 1986-03-31 | 1987-10-09 | Namuko:Kk | 画像合成装置 |
US5504917A (en) | 1986-04-14 | 1996-04-02 | National Instruments Corporation | Method and apparatus for providing picture generation and control features in a graphical data flow environment |
US4785395A (en) | 1986-06-27 | 1988-11-15 | Honeywell Bull Inc. | Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement |
US4768148A (en) | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
US4817175A (en) | 1986-08-26 | 1989-03-28 | Schlumberger Systems And Services, Inc. | Video stream processing system |
US4855934A (en) | 1986-10-03 | 1989-08-08 | Evans & Sutherland Computer Corporation | System for texturing computer graphics images |
US4918625A (en) | 1986-12-19 | 1990-04-17 | Cae-Link Corporation | Method and apparatus for processing translucent objects |
US4965750A (en) | 1987-03-31 | 1990-10-23 | Hitachi, Ltd. | Graphic processor suitable for graphic data transfer and conversion processes |
US4833601A (en) | 1987-05-28 | 1989-05-23 | Bull Hn Information Systems Inc. | Cache resiliency in processing a variety of address faults |
US4935879A (en) | 1987-08-05 | 1990-06-19 | Daikin Industries, Ltd. | Texture mapping apparatus and method |
US4965751A (en) | 1987-08-18 | 1990-10-23 | Hewlett-Packard Company | Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size |
US5170468A (en) | 1987-08-18 | 1992-12-08 | Hewlett-Packard Company | Graphics system with shadow ram update to the color map |
US4866637A (en) | 1987-10-30 | 1989-09-12 | International Business Machines Corporation | Pipelined lighting model processing system for a graphics workstation's shading function |
US5144291A (en) | 1987-11-02 | 1992-09-01 | Matsushita Electric Industrial Co., Ltd. | Means for eliminating hidden surface |
US4945500A (en) | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
US4901064A (en) | 1987-11-04 | 1990-02-13 | Schlumberger Technologies, Inc. | Normal vector shading for 3-D graphics display system |
US4888712A (en) | 1987-11-04 | 1989-12-19 | Schlumberger Systems, Inc. | Guardband clipping method and apparatus for 3-D graphics display system |
US5361386A (en) | 1987-12-04 | 1994-11-01 | Evans & Sutherland Computer Corp. | System for polygon interpolation using instantaneous values in a variable |
CA1309198C (en) | 1987-12-10 | 1992-10-20 | Carlo J. Evangelisti | Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display |
GB2214037A (en) | 1987-12-18 | 1989-08-23 | Ibm | Solid modelling system |
US4974176A (en) | 1987-12-18 | 1990-11-27 | General Electric Company | Microtexture for close-in detail |
US5136664A (en) | 1988-02-23 | 1992-08-04 | Bersack Bret B | Pixel rendering |
JPH0693181B2 (ja) | 1988-03-18 | 1994-11-16 | 株式会社日立製作所 | 表示装置 |
DE68918886T2 (de) | 1988-04-08 | 1995-06-01 | Dainippon Screen Mfg | Verfahren zur Gewinnung der Aussenlinie eines Objektes in einem Bild. |
US4907174A (en) | 1988-06-02 | 1990-03-06 | Sun Microsystems, Inc. | Z-buffer allocated for window identification |
US5097427A (en) | 1988-07-06 | 1992-03-17 | Hewlett-Packard Company | Texture mapping for computer graphics display controller system |
US5315692A (en) | 1988-07-22 | 1994-05-24 | Hughes Training, Inc. | Multiple object pipeline display system |
US5003496A (en) | 1988-08-26 | 1991-03-26 | Eastman Kodak Company | Page memory control in a raster image processor |
US4989138A (en) | 1988-09-02 | 1991-01-29 | Tektronix, Inc. | Single bus graphics data processing pipeline with decentralized bus arbitration |
JPH0727581B2 (ja) | 1988-09-09 | 1995-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 図形処理装置 |
US5016183A (en) | 1988-09-13 | 1991-05-14 | Computer Design, Inc. | Textile design system and method |
US5018076A (en) | 1988-09-16 | 1991-05-21 | Chips And Technologies, Inc. | Method and circuitry for dual panel displays |
JP2685548B2 (ja) | 1988-11-28 | 1997-12-03 | 株式会社日立製作所 | ディジタル画像データの回転方法およびその装置 |
GB8828342D0 (en) | 1988-12-05 | 1989-01-05 | Rediffusion Simulation Ltd | Image generator |
US5062057A (en) | 1988-12-09 | 1991-10-29 | E-Machines Incorporated | Computer display controller with reconfigurable frame buffer memory |
US5255353A (en) | 1989-02-28 | 1993-10-19 | Ricoh Company, Ltd. | Three-dimensional shadow processor for an image forming apparatus |
US5204944A (en) | 1989-07-28 | 1993-04-20 | The Trustees Of Columbia University In The City Of New York | Separable image warping methods and systems using spatial lookup tables |
EP0423653B1 (en) | 1989-10-13 | 1997-08-06 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for compensating for color in color images |
JPH0776991B2 (ja) | 1989-10-24 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Nurbsデータ変換方法及び装置 |
US5056044A (en) | 1989-12-21 | 1991-10-08 | Hewlett-Packard Company | Graphics frame buffer with programmable tile size |
JP3005007B2 (ja) | 1989-12-21 | 2000-01-31 | キヤノン株式会社 | 画像符号化装置 |
GB2240015A (en) | 1990-01-15 | 1991-07-17 | Philips Electronic Associated | Texture memory addressing |
US5224208A (en) | 1990-03-16 | 1993-06-29 | Hewlett-Packard Company | Gradient calculation for texture mapping |
US5179638A (en) | 1990-04-26 | 1993-01-12 | Honeywell Inc. | Method and apparatus for generating a texture mapped perspective view |
US5163126A (en) | 1990-05-10 | 1992-11-10 | International Business Machines Corporation | Method for adaptively providing near phong grade shading for patterns in a graphics display system |
JPH05507166A (ja) | 1990-05-12 | 1993-10-14 | レディフュージョン・シミュレーション・リミテッド | イメージ発生装置 |
DE69122557T2 (de) | 1990-06-29 | 1997-04-24 | Philips Electronics Nv | Bilderzeugung |
US5241658A (en) | 1990-08-21 | 1993-08-31 | Apple Computer, Inc. | Apparatus for storing information in and deriving information from a frame buffer |
JP2725915B2 (ja) | 1990-11-15 | 1998-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 三角形描画装置及び方法 |
US5268995A (en) | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data 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 |
US5307450A (en) | 1991-02-19 | 1994-04-26 | Silicon Graphics, Inc. | Z-subdivision for improved texture mapping |
JPH07122908B2 (ja) | 1991-03-12 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3次元のソリッド物体を表す表示可能情報を生成する装置と方法 |
US5421028A (en) | 1991-03-15 | 1995-05-30 | Hewlett-Packard Company | Processing commands and data in a common pipeline path in a high-speed computer graphics system |
US5415549A (en) | 1991-03-21 | 1995-05-16 | Atari Games Corporation | Method for coloring a polygon on a video display |
EP0739513B1 (en) | 1991-08-13 | 1999-10-27 | The Board Of Regents Of The University Of Washington | Method of transmitting of data |
TW225595B (ja) | 1991-09-03 | 1994-06-21 | Gen Electric | |
US5404445A (en) | 1991-10-31 | 1995-04-04 | Toshiba America Information Systems, Inc. | External interface for a high performance graphics adapter allowing for graphics compatibility |
US5353424A (en) | 1991-11-19 | 1994-10-04 | Digital Equipment Corporation | Fast tag compare and bank select in set associative cache |
US5345541A (en) | 1991-12-20 | 1994-09-06 | Apple Computer, Inc. | Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device |
US5377313A (en) | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
JP2760731B2 (ja) | 1992-04-30 | 1998-06-04 | 株式会社東芝 | グラフィックス互換性を可能にする高性能グラフィックスアダプタ用外部インターフェース回路 |
US5469535A (en) | 1992-05-04 | 1995-11-21 | Midway Manufacturing Company | Three-dimensional, texture mapping display system |
US5473736A (en) | 1992-06-08 | 1995-12-05 | Chroma Graphics | Method and apparatus for ordering and remapping colors in images of real two- and three-dimensional objects |
US5432900A (en) | 1992-06-19 | 1995-07-11 | Intel Corporation | Integrated graphics and video computer display system |
JPH0628485A (ja) | 1992-07-09 | 1994-02-04 | Toshiba Corp | テクスチャーアドレス生成器、テクスチャーパターン生成器、テクスチャー描画装置及びテクスチャーアドレス生成方法 |
US5475803A (en) | 1992-07-10 | 1995-12-12 | Lsi Logic Corporation | Method for 2-D affine transformation of images |
US5432895A (en) | 1992-10-01 | 1995-07-11 | University Corporation For Atmospheric Research | Virtual reality imaging system |
US5392393A (en) | 1993-06-04 | 1995-02-21 | Sun Microsystems, Inc. | Architecture for a high performance three dimensional graphics accelerator |
US5829007A (en) * | 1993-06-24 | 1998-10-27 | Discovision Associates | Technique for implementing a swing buffer in a memory array |
US5408650A (en) | 1993-06-29 | 1995-04-18 | Digital Equipment Corporation | Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program |
US5490240A (en) | 1993-07-09 | 1996-02-06 | Silicon Graphics, Inc. | System and method of generating interactive computer graphic images incorporating three dimensional textures |
US5487146A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Plural memory access address generation employing guide table entries forming linked list |
US5461712A (en) | 1994-04-18 | 1995-10-24 | International Business Machines Corporation | Quadrant-based two-dimensional memory manager |
JPH11232247A (ja) * | 1998-02-10 | 1999-08-27 | Hitachi Ltd | データフロー計算機およびデータフロー制御方法 |
US6104415A (en) * | 1998-03-26 | 2000-08-15 | Silicon Graphics, Inc. | Method for accelerating minified textured cache access |
US6252610B1 (en) * | 1998-05-29 | 2001-06-26 | Silicon Graphics, Inc. | Method and apparatus for efficiently switching state in a graphics pipeline |
US6329996B1 (en) * | 1999-01-08 | 2001-12-11 | Silicon Graphics, Inc. | Method and apparatus for synchronizing graphics pipelines |
US6476808B1 (en) * | 1999-10-14 | 2002-11-05 | S3 Graphics Co., Ltd. | Token-based buffer system and method for a geometry pipeline in three-dimensional graphics |
US6867781B1 (en) * | 2000-08-23 | 2005-03-15 | Nintendo Co., Ltd. | Graphics pipeline token synchronization |
-
2000
- 2000-11-28 US US09/722,419 patent/US6867781B1/en not_active Expired - Lifetime
-
2001
- 2001-04-26 JP JP2001128570A patent/JP4808858B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2002063570A (ja) | 2002-02-28 |
US6867781B1 (en) | 2005-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4808858B2 (ja) | グラフィクスパイプラインおよびそれの同期化方法 | |
JP4691273B2 (ja) | グラフィクス処理システムおよびエンボス型バンプマッピングを行う方法 | |
JP4698893B2 (ja) | 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム | |
JP4757406B2 (ja) | グラフィクスシステム | |
JP4890638B2 (ja) | グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置 | |
JP4658378B2 (ja) | グラフィクスシステムにおいて環境を写し込んだバンプマッピングのための方法および装置 | |
JP4719363B2 (ja) | 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム | |
JP4680412B2 (ja) | 描画モードに基づいて隠面処理の順番を動的に再構成する方法および装置 | |
JP4863574B2 (ja) | Zテクスチャリングを用いるイメージ生成方法 | |
JP4846120B2 (ja) | スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置 | |
US6811489B1 (en) | Controller interface for a graphics system | |
JP4790150B2 (ja) | 低価格のグラフィックスシステムにおけるシャドウマッピング | |
JP4731028B2 (ja) | グラフィクスシステム用再循環シェードツリーブレンダ | |
JP5149985B2 (ja) | 機能拡張型メモリコントローラを備えるグラフィックス処理システム | |
JP4672072B2 (ja) | 三次元ビデオグラフィックスシステムにおける非写実的な漫画的な輪郭線提供方法およびその装置 | |
JP4570766B2 (ja) | 音声信号をミキシングするための方法および装置 | |
JP4740490B2 (ja) | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング | |
JP4740476B2 (ja) | グラフィックスシステム内におけるn個のアルファ演算の論理結合を提供する方法および装置 | |
JP5142419B2 (ja) | 共有リソースへのアクセス方法及び装置 | |
JP4658397B2 (ja) | オーディオメモリ内のデータを予めキャッシュする方法及び装置 | |
JP4698894B2 (ja) | グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080411 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110525 |
|
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: 20110816 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110818 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140826 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4808858 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |