JPH0877365A - 多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置 - Google Patents

多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置

Info

Publication number
JPH0877365A
JPH0877365A JP7168732A JP16873295A JPH0877365A JP H0877365 A JPH0877365 A JP H0877365A JP 7168732 A JP7168732 A JP 7168732A JP 16873295 A JP16873295 A JP 16873295A JP H0877365 A JPH0877365 A JP H0877365A
Authority
JP
Japan
Prior art keywords
processor
assigned
processors
pixel
graphical
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.)
Pending
Application number
JP7168732A
Other languages
English (en)
Inventor
Chandrasekhar Narayanaswami
チャンドラセカル・ナラヤナスワーミ
Avijit Saha
アヴィジット・サハ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0877365A publication Critical patent/JPH0877365A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 多重プロセッサ・グラフィカル作業負荷分配
を管理する。 【構成】 複数のプロセッサが割り当てられた画素位置
のリストをメモリに記憶するための装置、及び受け取っ
たグラフィック・オブジェクトのそれぞれを画素にスキ
ャン変換するための装置及び割り当てられた画素位置に
グラフィカル・オブジェクト画素をレンダリングする装
置を有し、複数のプロセッサを利用して、表示のためグ
ラフィカル・オブジェクトをレンダリングする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全般的にはコンピュー
タ・グラフィックス・システムに関し、具体的には、複
数のプロセッサにまたがってグラフィック作業負荷を管
理する方法および装置に関する。
【0002】
【従来の技術】コンピュータ・グラフィックス・システ
ムでは、表示用のフレーム・バッファに複数のオブジェ
クトをできる限りすばやくレンダリングすることが望ま
しい。
【0003】複数のプロセッサを利用するための多数の
技法が、フォレイ(Foley)、バン−ダム(Van Dam)、
ファイナ(Feiner)およびヒューズ(Hughes)著、"Com
puter Graphics Principles and Practice", second ed
ition、1990年の855ページから922ページに
記載されている。たとえば、超高性能システムでの1オ
ブジェクトあたり1プロセッサの使用を含めて、レンダ
リングしようとするオブジェクトのそれぞれを、処理の
ために特定のプロセッサに割り当てることができる。
【0004】
【発明が解決しようとする課題】しかし、ユーザが、カ
ラー、テクスチャ、照明、透明度その他のレンダリング
技法などのより計算集中型の処理を使用すると同時に、
リアルタイム・モーションの提供を含む、よりすばやく
レンダリングされるより多くのオブジェクトを使用する
より詳細な結果を要求するので、レンダリング処理はま
すます複雑で計算集中型になってきた。その結果、この
ますます増加するグラフィック作業負荷を処理するため
に、多重処理が使用されている。
【0005】
【課題を解決するための手段】本発明の1態様は、プロ
セッサのそれぞれに割り当てられた画素位置のリストを
メモリに記憶するための装置と、受け取ったグラフィッ
ク・オブジェクトのそれぞれを画素にスキャン変換する
ための装置と、該プロセッサに割り当てられた画素位置
にグラフィカル・オブジェクト画素をレンダリングする
ための装置を含む各プロセッサとを含む、複数のプロセ
ッサを利用して表示のためグラフィカル・オブジェクト
をレンダリングするための装置である。本発明のもう1
つの態様は、プロセッサのそれぞれに割り当てられた画
素位置のリストをメモリに記憶するステップと、受け取
ったグラフィカル・オブジェクトのそれぞれを画素にス
キャン変換するステップと、各プロセッサが、該プロセ
ッサに割り当てられた画素位置にグラフィカル・オブジ
ェクト画素をレンダリングするステップとを含む、複数
のプロセッサを利用して表示のためにグラフィカル・オ
ブジェクトをレンダリングする方法である。
【0006】本発明の性質および長所のさらなる理解
は、本明細書の残りの部分および図面を参照することに
よって得られる。
【0007】
【実施例】この開示では、画素位置または表示領域によ
る、複数のプロセッサにまたがって、レンダリングなど
のグラフィカル作業負荷を管理するための改良された方
法および装置を説明する。すなわち、プロセッサは、さ
まざまな割振り技法に基づいて、特定の表示領域または
ウィンドウに関して画素のレンダリングを処理すること
ができる。これらの割振り技法は、特定の画素または表
示領域がある時間期間の間は第1プロセッサによって処
理され、別の時間期間の間は第2プロセッサによってレ
ンダリングされるといった、動的なものとすることがで
きる。これによって、複数のプロセッサにまたがるグラ
フィカル作業負荷の管理に高い柔軟性がもたらされる。
【0008】図1は、本発明の好ましい実施例によって
使用される典型的なディジタル・コンピュータ100の
ブロック図である。このコンピュータには、入力装置1
30および出力装置140を接続されたコンピュータ・
ボックス105内の、主記憶120およびハード・ディ
スク125に結合された主プロセッサ110が含まれ
る。主プロセッサ110には、単一のプロセッサまたは
複数のプロセッサを含めることができる。入力装置13
0には、キーボード、マウス、タブレットまたは他のタ
イプの入力装置を含めることができる。出力装置140
には、テキスト・モニタ、プロッタまたは他のタイプの
出力装置を含めることができる。磁気ディスケットやコ
ンパクト・ディスクなどのコンピュータ可読の取外し可
能媒体190を、ディスク駆動装置やCD−ROM(コ
ンパクト・ディスク読取専用メモリ)駆動装置などの入
出力装置180に挿入することができる。データは、入
出力装置コントローラ170の制御の下で、入出力装置
によって取外し可能媒体から読み取られ、書き込まれ
る。入出力装置コントローラは、バス160を介して主
プロセッサと通信する。主記憶120、ハード・ディス
ク125および取外し可能媒体190のすべてを、主プ
ロセッサ110による処理のためのデータの記憶に関し
てメモリと称する。
【0009】主プロセッサは、グラフィックス・アダプ
タ200を介して、グラフィックス・ディスプレイなど
のグラフィックス出力装置150に結合することもでき
る。グラフィックス・アダプタ200は、バス160を
介して主プロセッサ110からグラフィックスに関する
命令を受け取る。その後、グラフィックス・アダプタ
は、グラフィックス・アダプタ・メモリ230に結合さ
れたグラフィックス・アダプタ・プロセッサ220を用
いてこれらの命令を実行する。グラフィックス・アダプ
タ内のグラフィックス・プロセッサは、これらの命令を
実行し、これらの命令に基づいてフレーム・バッファ2
40を更新する。グラフィックス・アダプタ・プロセッ
サ220は、直列のプロセッサのパイプライン、1組の
並列プロセッサ、またはその組合せとすることができ、
この各プロセッサは、完了すべきタスクの一部を処理す
ることができる。グラフィックス・アダプタ・プロセッ
サ220には、特定のタイプのプリミティブのレンダリ
ング専用のレンダリング・ハードウェアを含めることも
できる。グラフィックス・アダプタ・メモリ230は、
グラフィックス・プロセッサによって、受け取ったオブ
ジェクト・データ、中間計算データ(ステンシル・バッ
ファや部分的にレンダリングされたオブジェクトのデー
タなど)およびフレーム・バッファ240にロードされ
る完了したデータなど、処理される情報の記憶に使用さ
れる。フレーム・バッファ240には、グラフィックス
出力装置に表示されるすべての画素のデータが含まれ
る。RAMDAC(ランダム・アクセス・メモリ・ディ
ジタル・アナログ変換器)250は、フレーム・バッフ
ァに記憶されたディジタル・データをRGB信号に変換
してグラフィックス出力装置150に供給し、これによ
って、主プロセッサから所望されたグラフィックス出力
をレンダリングする。
【0010】図2は、通常はグラフィックス機能を実行
するためホスト・コンピュータおよびグラフィックス・
アダプタによって利用されるコードの層を示すブロック
図である。UNIXなどのオペレーティング・システム
300が、ホスト・コンピュータの基本制御を提供す
る。オペレーティング・システムに結合されているの
が、オペレーティング・システムにハードウェア集中型
タスクを提供するオペレーティング・システム・カーネ
ル310である。オペレーティング・システム・カーネ
ルは、ホスト・コンピュータ・マイクロコード320と
直接に通信する。ホスト・コンピュータ・マイクロコー
ドは、ホスト・コンピュータ・プロセッサによって実行
される基本命令セットである。オペレーティング・シス
テム300に結合されているのが、グラフィックス・ア
プリケーション330および332である。このグラフ
ィックス・アプリケーション・ソフトウェアには、シリ
コン・グラフィック(Silicon Graphic)社のGL、I
BM社のgraPHIGS、MIT(マサチューセッツ
工科大学)のPEXなどのソフトウェア・パッケージを
含めることができる。このソフトウェアは、2次元グラ
フィックスまたは3次元グラフィックスの主要な機能を
提供する。グラフィックス・アプリケーション330は
グラフィックス・アプリケーションのAPI(アプリケ
ーション・プログラム・インターフェース)340に、
グラフィックス・アプリケーション332はAPI34
2に結合される。APIは、グラフィックス・アプリケ
ーションに計算集中型タスクの多くを提供し、グラフィ
ックス・アダプタ用のデバイス/ドライバなど、グラフ
ィックス・ハードウェアに近いソフトウェアとアプリケ
ーション・ソフトウェアの間のインターフェースを提供
する。たとえば、API340はGAI(グラフィック
ス・アプリケーション・インターフェース)350と、
API342はGAI352と、通信することができ
る。GAIは、アプリケーションAPIとグラフィック
ス・アダプタのデバイス・ドライバ370の間のインタ
ーフェースを提供する。一部のグラフィックス・システ
ムでは、APIがGAIの機能も実行する。
【0011】グラフィックス・アプリケーション、AP
IおよびGAIは、オペレーティング・システムとデバ
イス・ドライバによって、単一のプロセスであるとみな
される。すなわち、オペレーティング・システム300
とデバイス・ドライバ370からは、グラフィックス・
アプリケーション330、API340およびGAI3
50がプロセス360とみなされ、グラフィックス・ア
プリケーション332、API342およびGAI35
2がプロセス362とみなされる。プロセスは、オペレ
ーティング・システムとデバイス・ドライバからは、オ
ペレーティング・システム・カーネルによってそのプロ
セスに割り当てられるプロセス識別子(PID)によっ
て識別される。プロセス360および362は、2つの
別々のウィンドウ内での1プログラムの2つの実行な
ど、2回同時に実行される同一のコードを使用すること
ができる。PIDは、同一のコードの別々の実行を区別
するのに使用される。
【0012】このデバイス・ドライバは、オペレーティ
ング・システム・カーネル310の拡張であるグラフィ
ックス・カーネルである。グラフィックス・カーネル
は、グラフィックス・アダプタ・マイクロコード380
と直接に通信する。多くのグラフィックス・システムで
は、GAIまたは、GAI層を使用しない場合にはAP
Iが、デバイス・ドライバに初期要求命令を送ることに
よって、GAIまたはAPIからアダプタ・マイクロコ
ードへの直接アクセスを要求することができる。さら
に、多くのグラフィックス・システムでは、アダプタ・
マイクロコードが、デバイス・ドライバに初期要求命令
を送ることによって、アダプタ・マイクロコードからG
AIまたはGAIを使用しない場合にはAPIへの直接
アクセスを要求することもできる。以下、この両方の処
理を、直接メモリ・アクセス(DMA)と称する。DM
A、通常は、データの大きなブロックを転送する時に使
用される。DMAは、DMAをセットアップするための
デバイス・ドライバに対する初期要求以外にディスプレ
イ・ドライバを通る必要をなくすことによって、ホスト
・コンピュータとアダプタの間のより高速のデータ伝送
をもたらす。場合によっては、アダプタ・マイクロコー
ドがコンテキスト切換えを利用する。これによって、ア
ダプタ・マイクロコードは、アダプタ・マイクロコード
によって利用される現在の属性を置換できるようにな
る。コンテキスト切換えが使用されるのは、アダプタ・
マイクロコードが、そのアダプタ・マイクロコードが現
在使用しているものと異なる属性を使用するグラフィッ
クス・アプリケーションから命令を受け取ろうとしてい
る時である。コンテキスト切換えは、通常は、属性変化
を認識するデバイス・ドライバによって開始される。
【0013】ブロック300ないしブロック340は、
通常は、使用されるグラフィックス・アダプタのタイプ
から独立したソフトウェア・コード層である。ブロック
350ないしブロック380は、通常は、使用されるグ
ラフィックス・アダプタのタイプに依存するソフトウェ
ア・コード層である。たとえば、グラフィックス・アプ
リケーション・ソフトウェアが異なるグラフィックス・
アダプタを使用しなければならない場合、新しいGAI
とグラフィックス・カーネルとアダプタ・マイクロコー
ドが必要になるはずである。さらに、ブロック300な
いしブロック370は、通常はホスト・コンピュータに
常駐し、ホスト・コンピュータによって実行される。し
かし、グラフィックス・アダプタ・マイクロコード38
0は、通常は、グラフィックス・アダプタに常駐し、グ
ラフィックス・アダプタによって実行される。しかし、
一部の場合では、アダプタ・マイクロコードが、グラフ
ィックス・アダプタの初期設定中にホスト・コンピュー
タによってグラフィックス・アダプタにロードされる。
【0014】通常のグラフィックス・システムでは、ユ
ーザが、グラフィックス・アプリケーションに、2次元
モデルまたは3次元モデルから画像を構築するように指
令する。ユーザはまず、光源の位置とタイプを選択す
る。次に、ユーザは、定義済みのオブジェクトやユーザ
定義オブジェクトの組から所望のモデルを作るようにア
プリケーション・ソフトウェアに指令する。各オブジェ
クトには、そのオブジェクトを記述する1つまたは複数
の同平面描画プリミティブを含めることができる。たと
えば、多数の三角形などの描画プリミティブの組を使用
して、オブジェクトの表面を定義することができる。そ
の後、ユーザは、モデルを眺めるためのウィンドウ内の
パースを提供し、これによって所望の画像を定義する。
その後、アプリケーション・ソフトウェアが、API、
GAI、およびDMAを使用しない場合にはデバイス・
ドライバを介して、アダプタ・マイクロコードにオブジ
ェクトを記述した描画プリミティブを送ることによっ
て、モデルからの画像のレンダリングを開始する。その
後、アダプタ・マイクロコードは、ウィンドウ内で可視
でない描画プリミティブをクリッピングし(すなわち使
用しない)、残りの描画プリミティブのそれぞれをユー
ザによって与えられたパースから可視の画素に分解する
ことによって、グラフィックス・ディスプレイ上の画像
をレンダリングする。その後、これらの画素をフレーム
・バッファにロードするが、3次元モデルの場合にはデ
プス・バッファを併用することがしばしばである。この
ステップは、関連する描画プリミティブ、変数および画
素の数が原因で、非常に計算集中型である。フレーム・
バッファに格納され、グラフィックス・ディスプレイに
表示される結果の画像は、通常は、画素がどの描画プリ
ミティブまたはオブジェクトから導出されたかなどのオ
リジナルの情報を含まない。その結果、ウィンドウ、ユ
ーザのパース、モデル、照明などが変更された場合に
は、画像の一部または全体をレンダリングし直す必要が
生じる可能性がある。
【0015】本発明の技法は、アダプタ・フレーム・バ
ッファに近いアダプタ・マイクロコードなど、多くの位
置で利用できるはずである。また、この手法は、比較的
高速であり、実施がかなり簡単である。さらに、本発明
は、像をレンダリングする前またはその後のいずれか
に、グラフィックス・アダプタがデータをグラフィック
ス・アプリケーション・ソフトウェアまで返すことによ
って、レンダリングされた画像がシステム・メモリにも
記憶されるグラフィックス・アプリケーション・ソフト
ウェアで適用することもできる。この手法は、おそらく
はより低速であるが、これによって、既存のグラフィッ
クス・アダプタにこの技法を使用できるようになるはず
である。本発明は、グラフィックス・アダプタ・プロセ
ッサ内のハードウェアで実施することもできる。この手
法は、非常に高速であるが、特殊なハードウェアを必要
とする可能性がある。当業者には明白なとおり、本発明
は、ホスト・コンピュータ内またはグラフィックス・ア
ダプタ内の多くの他の位置で適用できる。
【0016】図3ないし図5は、本発明の好ましい実施
例による、グラフィカル作業負荷を画素位置によって分
配できるさまざまな方法を示す図である。各図は、特定
の領域がその領域内の画素のレンダリングのためにさま
ざまなプロセッサに割り振られるウィンドウまたはディ
スプレイを示す図である。
【0017】図3は、グラフィカル作業負荷を分配する
ためのラウンド・ロビン手法を示す図である。ディスプ
レイまたはウィンドウ400を、ラウンド・ロビン式に
複数のプロセッサにまたがって分配される複数の画素領
域に分割することができる。この例では、16個の領域
と3つのプロセッサP0、P1およびP2がある。
【0018】図4は、画素の領域によってグラフィカル
作業負荷を分配するためのストライプ割振り手法を示す
図である。ディスプレイまたはウィンドウ400を、複
数のストライプに分割することができ、各プロセッサ
は、1つのストライプを割り当てられる。この例では、
6つのストライプと6つのプロセッサP0、P1、P
2、P3、P4およびP5がある。
【0019】図5は、さまざまな技法を使用してプロセ
ッサに画素の領域を割り当てることができる混合割振り
手順を示す図である。この例では、3つのプロセッサP
0、P1およびP2に割り振られる多数の領域がある。
混合割振り手法を用いると、さまざまなパラメータに基
づいて割振りを最適化することが可能になる。たとえ
ば、画素または画素の領域の分割と割振りを、ディスプ
レイの特定の区域内のオブジェクトの個数に基づいて行
うことができる。分割と割振りは、各プロセッサが既に
有している作業負荷の量にも基づくようにすることがで
きる。画素または画素の領域の分割と割振りは、動的に
することもでき、これによって、さまざまな要因に基づ
いて時間の上で画素を異なるプロセッサに割り振ること
ができる。どの手法でも、本発明を用いると、作業負荷
の分配に高い柔軟性がもたらされる。
【0020】図6は、本発明の好ましい実施例でグラフ
ィックス・アダプタ・メモリ230内で使用できるデー
タ構造を示すブロック図である。
【0021】画素オーナーシップ・バッファ231は、
各画素を所有するプロセッサの識別子(ID)を記憶す
るのに使用される。すなわち、フレーム・バッファ内
に、すべての画素に対応する1つの項目があり、その項
目に、レンダリングを含むその画素に関する処理を扱う
プロセッサの識別子が格納される。これらの項目を時間
の上で修正して、プロセッサ作業負荷を動的に管理する
ことができる。
【0022】領域オーナーシップ・リスト235を、上
で説明した画素オーナーシップ・バッファ231の代替
として使用することができる。この代替案では、領域オ
ーナーシップ・リストに、領域ごとに1つの項目が含ま
れ、領域オーナーシップ・リストは、固定長または可変
長とすることができる。可変長を用いると、領域割振り
の柔軟性が高まるが、管理が困難になる可能性がある。
各項目には、最小X値(X1)、最大X値(X2)、最
小Y値(Y1)、最大Y値(Y2)およびその領域を所
有するプロセッサの識別子を記述する5つの要素が含ま
れる。その結果、領域のサイズと位置が定義され、その
領域に関してオーナーシップが確立される。もう1つの
代替実施例では、領域のサイズと位置を固定し、その領
域を所有するプロセッサの識別子だけが表示されるよう
にすることができる。
【0023】図7は、画素オーナーシップ・バッファま
たは領域オーナーシップ・リストを生成するのに好まし
い方法を示す流れ図である。この処理は、領域または画
素のプロセッサ・オーナーシップを確立するためにいつ
でも実行できる。さらに、この処理を繰返し実行して、
グラフィカル作業負荷の割振りを常に最適化することが
できる。
【0024】最初のステップ500で、画素のブロック
割振りを実行できるかどうかを判定する。このタイプの
割振りには、単純で高速という長所がある。可能な場合
には、ステップ505で、図3に示される好ましい実施
例に従って、プロセッサ・オーナーシップをラウンド・
ロビン式に画素または領域の均一なブロックに割り振
る。この処理中に、図6に示されたデータ構造またはそ
れと同等の、どのプロセッサがどの画素または領域を所
有するかを示すデータ構造を生成することができる。し
かし、代替実施例では、領域が均一である必要はなく、
ラウンド・ロビン以外の方法で割り振ることができる。
ステップ505の完了時に、この処理に関する処理が、
再実行されない限り終了する。上のステップ500の回
答が否定の場合、処理はステップ510に進む。
【0025】ステップ510では、画素のストライプ割
振りを実行できるかどうかを判定する。このタイプの割
振りにも、単純で高速という長所がある。可能な場合に
は、ステップ515で、図4に示される好ましい実施例
に従って、プロセッサ・オーナーシップをラウンド・ロ
ビン式に画素または領域の均一なストライプに割り振
る。この処理中に、図6に示されたデータ構造またはそ
れと同等の、どのプロセッサがどの画素または領域を所
有するかを示すデータ構造を生成することができる。し
かし、代替実施例では、領域が均一である必要はなく、
ラウンド・ロビン以外の方法で割り振ることができる。
ステップ515の完了時に、この処理に関する処理が、
再実行されない限り終了する。上のステップ510の回
答が否定の場合、処理はステップ520に進む。
【0026】ステップ520では、ユーザ(またはアプ
リケーション・プログラム)が、画素または領域の割振
りを希望できるかどうかを判定する。このタイプの割振
りには、ユーザまたはアプリケーション・プログラム
が、やがて現れるグラフィカル作業負荷を想定した最適
のオーナーシップ・パターンを生成できるという長所が
ある。可能な場合には、ステップ525で、バッファま
たはリストをユーザまたはアプリケーション・プログラ
ムから得て、グラフィックス・アダプタ・メモリに記憶
する。ステップ525の完了時に、この処理に関する処
理が、再実行されない限り終了する。上のステップ52
0の回答が否定の場合、処理はステップ530に進む。
【0027】ステップ530では、画素の混合割振りを
実行できるかどうかを判定する。このタイプの割振りに
は、画素オーナーシップの割振りの最適化に関して極端
に柔軟であるという長所がある。ステップ530でこれ
が不可能な場合、この処理に関する処理が、再実行され
ない限り終了する。しかし、割振りが行われていないの
で、省略時割振りまたは前の割振りが継続して、どのプ
ロセッサがどの画素または領域を所有するかを制御す
る。ステップ530で可能な場合、処理はステップ53
5に進む。
【0028】ステップ535で、処理するオブジェクト
を取り出す。ステップ540で、サブオブジェクトの頂
点を生成するか検索することによって、このオブジェク
トをサブオブジェクトに分割し、サブオブジェクトのう
ちの最初の1つを抽出することができる。この分割処理
は、多数の面を有する3次元オブジェクト(各面が1つ
のサブオブジェクト)を扱うのに特に有用である。ステ
ップ545で、処理のために、サブオブジェクトのウィ
ンドウ座標を計算する。ステップ550で、サブオブジ
ェクトを含む境界ボックスを計算し、記憶する。境界ボ
ックスとは、そのサブオブジェクトを含む領域であり、
その境界にX、YおよびZ座標の最大値と最小値を有す
る。境界ボックスは、オブジェクトを記述する他のパラ
メータと共に記憶されることが好ましい。ステップ55
5で、所与のオブジェクトに関する最後のオブジェクト
を処理したかどうかを判定する。そうでない場合、ステ
ップ540に戻って、次のサブオブジェクトを処理す
る。そうである場合、ステップ560に進んで、最後の
オブジェクトを処理したかどうかを判定する。そうでな
い場合、ステップ535に戻って次のオブジェクトを処
理する。そうである場合、ステップ565に進む。
【0029】ステップ565で、画素オーナーシップ・
バッファまたは領域オーナーシップ・リストを、前に計
算された境界ボックスのすべてから生成することができ
る。好ましい実施例では、K−D木法を使用して、ディ
スプレイまたはウィンドウ内のオブジェクト境界ボック
スの分布に基づいて画素または領域を割り振る。K−D
法は、限られた資源を割り振るための周知の技法であ
り、エーデルスブルナ(H. Edelsbrunner)著、"Algori
thm in Combinatorial Geometry", Springer-Verlag pu
blisher、1987年に記載されている。もちろん、他
の最適化技法を使用することができる。
【0030】上で説明したステップ500、510、5
20および530は、動的に制御することができる。す
なわち、これらのステップを、ユーザまたはアプリケー
ション・プログラムが制御できる。さらに、これらのス
テップは、所与の状況に対して使用すべき最適の手法が
どれであるかを判定する最適化処理によって制御するこ
とができる。
【0031】図8は、各プロセッサが、画素または領域
のオーナーシップを判定しながらグラフィカル作業負荷
を処理するのに好ましい方法を示す流れ図である。この
処理は、すべてのプロセッサによって同時に並列に実行
することができる。
【0032】最初のステップ600で、処理のためにオ
ブジェクトを取り出す。領域オーナーシップ・リストを
使用する場合、オブジェクトの取出に、そのプロセッサ
が所有する領域に対するそのオブジェクトの境界ボック
ス(上で説明したステップ500で前にオブジェクトに
関して判定され記憶される)の比較を含めることができ
る。もちろん、他の通常のクリッピング技法を使用する
ことができる。
【0033】オブジェクトを取り出したならば、ステッ
プ605で、ステップ540に関して上で説明したよう
に、そのオブジェクトをサブオブジェクトに分割するこ
とができる。もちろん、そのプロセッサが処理している
グラフィック処置のタイプに基づいて、このステップで
他の分割技法を使用することができる。
【0034】サブオブジェクトを取り出したならば、ス
テップ610で、カラー、シェーディング、テクスチ
ャ、照明、透明度、ディザリングおよび他の可能な変数
の計算に使用されるさまざまな変数を計算することがで
きる。計算される変数のタイプは、そのプロセッサによ
って実行されるグラフィック処置のタイプに応じて変化
する可能性がある。
【0035】ステップ615で、サブオブジェクトを画
素にスキャン変換する。ステップ620で、各画素を検
査して、プロセッサの識別子と、画素オーナーシップ・
バッファまたは領域オーナーシップ・リストに記憶され
たその画素に関する識別子とを比較することによって、
その画素をそのプロセッサが所有するかどうかを調べ
る。
【0036】ステップ620の結果が肯定であり、プロ
セッサがこの画素を所有すると示される場合、そのプロ
セッサがこの画素を処理する。この処理には、ステップ
610からの変数や他の既知の変数を使用した、その画
素のカラー、照明、透明度などの計算を含めることがで
きる。計算された画素値は、表示のためフレーム・バッ
ファに格納される。この処理を、通常はレンダリングと
称する。明らかに、プロセッサが画素を所有しない場合
には、多くの計算集中型計算が回避され、そのため、レ
ンダリング処理が高速になる。
【0037】ステップ620の結果が否定である場合、
または、ステップ625が完了した場合、処理はステッ
プ630に進む。ステップ630では、サブオブジェク
トの最後の画素をレンダリングしたかどうかを判定す
る。そうでない場合、ステップ615に戻って、次に処
理する画素を生成する。ステップ630の結果が肯定の
場合、処理はステップ635に進む。ステップ635で
は、オブジェクトの最後のサブオブジェクトを処理した
かどうかを判定する。そうでない場合、ステップ605
に戻って、次のサブオブジェクトを生成する。ステップ
635の結果が肯定の場合、処理はステップ640に進
む。ステップ640では、最後のオブジェクトを処理し
たかどうかを判定する。そうでない場合、ステップ60
0に戻って、次のオブジェクトを取り出す。ステップ6
40の結果が肯定の場合、処理のために別のオブジェク
トが使用可能にならない限り、このプロセッサに関する
処理は終了する。プロセッサが上の図7で説明した割振
り処理を再実行して、現在遊休状態のプロセッサに作業
負荷の一部を再割振りできるのは、この時である。
【0038】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0039】(1)複数のプロセッサのそれぞれに割り
当てられた画素のリストをメモリに記憶する手段と、受
け取ったグラフィカル・オブジェクトを画素にスキャン
変換する手段とを含み、各プロセッサが、前記プロセッ
サに割り当てられた画素位置でグラフィカル・オブジェ
クト画素をレンダリングする手段を含む表示のためグラ
フィカル・オブジェクトをレンダリングするのに前記複
数のプロセッサを使用する装置。 (2)前記記憶する手段が、前記プロセッサのそれぞれ
にどの画素位置が割り当てられるかを動的に判定する手
段を含むことを特徴とする、上記(1)の装置。 (3)各プロセッサに、前記プロセッサに割り当てられ
た画素位置のいずれかと交差するグラフィカル・オブジ
ェクトのすべてを供給する手段をさらに含む、上記
(2)の装置。 (4)スキャン変換する手段が、各プロセッサによって
受け取られたグラフィカル・オブジェクトを画素にスキ
ャン変換する手段を含む前記プロセッサを含むことを特
徴とする、上記(3)の装置。 (5)記憶する手段が、前記プロセッサのそれぞれにど
の画素位置が割り当てられるかを動的に決定するために
ユーザ入力を使用する手段を含むことを特徴とする、上
記(4)の装置。 (6)記憶する手段が、前記プロセッサのそれぞれにど
の画素位置が割り当てられるかを動的に決定するために
最適化技法を使用する手段を含むことを特徴とする、上
記(4)の装置。 (7)複数のプロセッサのそれぞれに割り当てられる画
素位置のリストをメモリに記憶するステップと、受け取
ったグラフィカル・オブジェクトのそれぞれを画素にス
キャン変換するステップと、各プロセッサが前記プロセ
ッサに割り当てられた画素位置にグラフィカル・オブジ
ェクトをレンダリングするステップとを含む、表示のた
めグラフィカル・オブジェクトをレンダリングするのに
前記複数のプロセッサを使用する方法。 (8)前記記憶するステップが、前記プロセッサのそれ
ぞれにどの画素位置が割り当てられるかを動的に判定す
るステップを含むことを特徴とする、上記(7)の方
法。 (9)各プロセッサに、前記プロセッサに割り当てられ
た画素位置のいずれかと交差するグラフィカル・オブジ
ェクトのすべてを供給するステップをさらに含む、上記
(8)の方法。 (10)スキャン変換するステップが、各プロセッサが
前記プロセッサによって受け取られたグラフィカル・オ
ブジェクトを画素にスキャン変換するステップを含むこ
とを特徴とする、上記(9)の方法。 (11)記憶するステップが、前記プロセッサのそれぞ
れにどの画素位置が割り当てられるかを動的に決定する
ためにユーザ入力を使用するステップを含むことを特徴
とする、上記(10)の方法。 (12)記憶するステップが、前記プロセッサのそれぞ
れにどの画素位置が割り当てられるかを動的に決定する
ために最適化技法を使用するステップを含むことを特徴
とする、上記(10)の方法。 (13)処理しようとするデータを記憶するためのメモ
リと、メモリに記憶されたデータを処理するための処理
手段と、前記処理手段から受け取ったグラフィカル・オ
ブジェクトをレンダリングするのに複数のプロセッサを
使用するグラフィカル処理システムであって、前記プロ
セッサのそれぞれに割り当てられる画素位置のリストを
メモリに記憶する手段と、受け取ったグラフィカル・オ
ブジェクトのそれぞれを画素にスキャン変換する手段と
を含む前記グラフィカル処理システムとを含み、各プロ
セッサが、前記プロセッサに割り当てられた画素位置で
グラフィカル・オブジェクトをレンダリングする手段を
含むデータ処理システム。 (14)前記記憶する手段が、前記プロセッサのそれぞ
れにどの画素位置が割り当てられるかを動的に判定する
手段を含むことを特徴とする、上記(13)のデータ処
理システム。 (15)前記グラフィックス処理システムが、各プロセ
ッサに、前記プロセッサに割り当てられた画素位置のい
ずれかと交差するグラフィカル・オブジェクトのすべて
を供給する手段をさらに含むことを特徴とする、上記
(14)のデータ処理システム。 (16)スキャン変換する手段が、各プロセッサによっ
て受け取られたグラフィカル・オブジェクトを画素にス
キャン変換する手段を含む前記プロセッサを含むことを
特徴とする、上記(15)のデータ処理システム。 (17)記憶する手段が、前記プロセッサのそれぞれに
どの画素位置が割り当てられるかを動的に決定するため
にユーザ入力を使用する手段を含むことを特徴とする、
上記(16)のデータ処理システム。 (18)記憶する手段が、前記プロセッサのそれぞれに
どの画素位置が割り当てられるかを動的に決定するため
に最適化技法を使用する手段を含むことを特徴とする、
上記(16)のデータ処理システム。
【0040】
【発明の効果】本発明は、従来技術に対して多くの長所
を有する。本発明は、非常に柔軟で動的であり、最適化
技法を使用してレンダリングの動作を最適化することが
できる。これらの最適化技法は、所定の形で適用するこ
とができ、もしくは、走行時に動的に適用することがで
きる。本発明は、各プロセッサの現在の作業負荷、計画
された作業負荷、プロセッサ数、ディスプレイ上のオブ
ジェクトの数と位置、ならびに最適化の他の尺度に基づ
いて最適化することができる。
【0041】上では具体的な実施例を参照して本発明を
完全に説明してきたが、他の代替実施例は当業者には明
白であろう。したがって、上の説明は、請求の範囲で定
義される本発明の範囲を制限するものと解釈してはなら
ない。
【図面の簡単な説明】
【図1】本発明の好ましい実施例によって使用される典
型的なディジタル・コンピュータを示す図である。
【図2】通常はグラフィックス機能を実行するためホス
ト・コンピュータおよびグラフィックス・アダプタによ
って利用されるコードの層を示すブロック図である。
【図3】本発明の好ましい実施例による、グラフィカル
作業負荷を画素位置によって分配できるさまざまな方法
を示す図である。
【図4】本発明の好ましい実施例による、グラフィカル
作業負荷を画素位置によって分配できるさまざまな方法
を示す図である。
【図5】本発明の好ましい実施例による、グラフィカル
作業負荷を画素位置によって分配できるさまざまな方法
を示す図である。
【図6】本発明の好ましい実施例でグラフィックス・ア
ダプタ・メモリ内で使用できるデータ構造を示すブロッ
ク図である。
【図7】画素オーナーシップ・バッファまたは領域オー
ナーシップ・リストを生成するのに好ましい方法を示す
流れ図である。
【図8】各プロセッサが、画素または領域のオーナーシ
ップを判定しながらグラフィカル作業負荷を処理するの
に好ましい方法を示す流れ図である。
【符号の説明】
100 ディジタル・コンピュータ 105 コンピュータ・ボックス 110 主プロセッサ 120 主記憶 125 ハード・ディスク 130 入力装置 140 出力装置 150 グラフィックス出力装置 160 バス 170 入出力装置コントローラ 180 入出力装置 190 取外し可能媒体 200 グラフィックス・アダプタ 220 グラフィックス・アダプタ・プロセッサ 230 グラフィックス・アダプタ・メモリ 231 画素オーナーシップ・バッファ 235 領域オーナーシップ・リスト 240 フレーム・バッファ 250 RAMDAC(ランダム・アクセス・メモリ・
ディジタル・アナログ変換器) 300 オペレーティング・システム 310 オペレーティング・システム・カーネル 320 ホスト・コンピュータ・マイクロコード 330 グラフィックス・アプリケーション 332 グラフィックス・アプリケーション 340 API 342 API 350 GAI 352 GAI 360 プロセス 362 プロセス 370 デバイス・ドライバ 380 グラフィックス・アダプタ・マイクロコード 400 ディスプレイまたはウィンドウ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アヴィジット・サハ アメリカ合衆国78741 テキサス州オース チン ノース・ヒルズ 3456 ナンバー 341

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサのそれぞれに割り当てら
    れた画素のリストをメモリに記憶する手段と、 受け取ったグラフィカル・オブジェクトを画素にスキャ
    ン変換する手段とを含み、 各プロセッサが、前記プロセッサに割り当てられた画素
    位置でグラフィカル・オブジェクト画素をレンダリング
    する手段を含む表示のためグラフィカル・オブジェクト
    をレンダリングするのに前記複数のプロセッサを使用す
    る装置。
  2. 【請求項2】前記記憶する手段が、前記プロセッサのそ
    れぞれにどの画素位置が割り当てられるかを動的に判定
    する手段を含むことを特徴とする、請求項1の装置。
  3. 【請求項3】各プロセッサに、前記プロセッサに割り当
    てられた画素位置のいずれかと交差するグラフィカル・
    オブジェクトのすべてを供給する手段をさらに含む、請
    求項2の装置。
  4. 【請求項4】スキャン変換する手段が、各プロセッサに
    よって受け取られたグラフィカル・オブジェクトを画素
    にスキャン変換する手段を含む前記プロセッサを含むこ
    とを特徴とする、請求項3の装置。
  5. 【請求項5】記憶する手段が、前記プロセッサのそれぞ
    れにどの画素位置が割り当てられるかを動的に決定する
    ためにユーザ入力を使用する手段を含むことを特徴とす
    る、請求項4の装置。
  6. 【請求項6】記憶する手段が、前記プロセッサのそれぞ
    れにどの画素位置が割り当てられるかを動的に決定する
    ために最適化技法を使用する手段を含むことを特徴とす
    る、請求項4の装置。
  7. 【請求項7】複数のプロセッサのそれぞれに割り当てら
    れる画素位置のリストをメモリに記憶するステップと、 受け取ったグラフィカル・オブジェクトのそれぞれを画
    素にスキャン変換するステップと、 各プロセッサが前記プロセッサに割り当てられた画素位
    置にグラフィカル・オブジェクトをレンダリングするス
    テップとを含む、表示のためグラフィカル・オブジェク
    トをレンダリングするのに前記複数のプロセッサを使用
    する方法。
  8. 【請求項8】前記記憶するステップが、前記プロセッサ
    のそれぞれにどの画素位置が割り当てられるかを動的に
    判定するステップを含むことを特徴とする、請求項7の
    方法。
  9. 【請求項9】各プロセッサに、前記プロセッサに割り当
    てられた画素位置のいずれかと交差するグラフィカル・
    オブジェクトのすべてを供給するステップをさらに含
    む、請求項8の方法。
  10. 【請求項10】スキャン変換するステップが、各プロセ
    ッサが前記プロセッサによって受け取られたグラフィカ
    ル・オブジェクトを画素にスキャン変換するステップを
    含むことを特徴とする、請求項9の方法。
  11. 【請求項11】記憶するステップが、前記プロセッサの
    それぞれにどの画素位置が割り当てられるかを動的に決
    定するためにユーザ入力を使用するステップを含むこと
    を特徴とする、請求項10の方法。
  12. 【請求項12】記憶するステップが、前記プロセッサの
    それぞれにどの画素位置が割り当てられるかを動的に決
    定するために最適化技法を使用するステップを含むこと
    を特徴とする、請求項10の方法。
  13. 【請求項13】処理しようとするデータを記憶するため
    のメモリと、 メモリに記憶されたデータを処理するための処理手段
    と、 前記処理手段から受け取ったグラフィカル・オブジェク
    トをレンダリングするのに複数のプロセッサを使用する
    グラフィカル処理システムであって、 前記プロセッサのそれぞれに割り当てられる画素位置の
    リストをメモリに記憶する手段と、 受け取ったグラフィカル・オブジェクトのそれぞれを画
    素にスキャン変換する手段とを含む前記グラフィカル処
    理システムとを含み、 各プロセッサが、前記プロセッサに割り当てられた画素
    位置でグラフィカル・オブジェクトをレンダリングする
    手段を含むデータ処理システム。
  14. 【請求項14】前記記憶する手段が、前記プロセッサの
    それぞれにどの画素位置が割り当てられるかを動的に判
    定する手段を含むことを特徴とする、請求項13のデー
    タ処理システム。
  15. 【請求項15】前記グラフィックス処理システムが、各
    プロセッサに、前記プロセッサに割り当てられた画素位
    置のいずれかと交差するグラフィカル・オブジェクトの
    すべてを供給する手段をさらに含むことを特徴とする、
    請求項14のデータ処理システム。
  16. 【請求項16】スキャン変換する手段が、各プロセッサ
    によって受け取られたグラフィカル・オブジェクトを画
    素にスキャン変換する手段を含む前記プロセッサを含む
    ことを特徴とする、請求項15のデータ処理システム。
  17. 【請求項17】記憶する手段が、前記プロセッサのそれ
    ぞれにどの画素位置が割り当てられるかを動的に決定す
    るためにユーザ入力を使用する手段を含むことを特徴と
    する、請求項16のデータ処理システム。
  18. 【請求項18】記憶する手段が、前記プロセッサのそれ
    ぞれにどの画素位置が割り当てられるかを動的に決定す
    るために最適化技法を使用する手段を含むことを特徴と
    する、請求項16のデータ処理システム。
JP7168732A 1994-07-21 1995-07-04 多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置 Pending JPH0877365A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28671194A 1994-07-21 1994-07-21
US286711 1994-07-21

Publications (1)

Publication Number Publication Date
JPH0877365A true JPH0877365A (ja) 1996-03-22

Family

ID=23099837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7168732A Pending JPH0877365A (ja) 1994-07-21 1995-07-04 多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置

Country Status (3)

Country Link
US (1) US5757385A (ja)
EP (1) EP0693737A3 (ja)
JP (1) JPH0877365A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100436183B1 (ko) * 2002-10-09 2004-06-12 한국과학기술원 개인용 컴퓨터를 이용한 3차원 그래픽 처리용 후-정렬시스템
JP2007503059A (ja) * 2003-08-18 2007-02-15 エヌビディア・コーポレーション マルチプロセッサ・グラフィックス処理システムの適応型負荷分散
JP2021119453A (ja) * 2019-12-30 2021-08-12 ティーエムアールダブリュー ファウンデーション アイピー エスエーアールエル 仮想世界または現実世界の多次元3dエンジンコンピューティングおよび仮想化ベースの動的負荷分散

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962586A (ja) * 1995-08-25 1997-03-07 Fujitsu Ltd 情報処理装置及び情報処理装置におけるデータ処理方法
DE19625869C2 (de) * 1996-06-27 2001-01-04 Fraunhofer Ges Forschung Verfahren zum parallelen Zusammenfassen von N Datensätzen
US5974310A (en) * 1997-03-20 1999-10-26 Omnipoint Corporation Communication control for a user of a central communication center
US5969726A (en) * 1997-05-30 1999-10-19 Hewlett-Packard Co. Caching and coherency control of multiple geometry accelerators in a computer graphics system
US5920326A (en) * 1997-05-30 1999-07-06 Hewlett Packard Company Caching and coherency control of multiple geometry accelerators in a computer graphics system
US7616200B1 (en) 1998-06-12 2009-11-10 3Dlabs Inc. Ltd. System for reducing aliasing on a display device
US6157393A (en) * 1998-07-17 2000-12-05 Intergraph Corporation Apparatus and method of directing graphical data to a display device
WO2000004494A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation Graphics processing system with multiple strip breakers
US7518616B1 (en) 1998-07-17 2009-04-14 3Dlabs, Inc. Ltd. Graphics processor with texture memory allocation system
WO2000004443A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation Byte reordering apparatus and method
WO2000004436A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation Graphics processing with transcendental function generator
WO2000004484A2 (en) 1998-07-17 2000-01-27 Intergraph Corporation Wide instruction word graphics processor
WO2000004495A1 (en) 1998-07-17 2000-01-27 Intergraph Corporation System for processing vertices from a graphics request stream
US6476816B1 (en) 1998-07-17 2002-11-05 3Dlabs Inc. Ltd. Multi-processor graphics accelerator
US6459453B1 (en) 1998-07-17 2002-10-01 3Dlabs Inc. Ltd. System for displaying a television signal on a computer monitor
US6191800B1 (en) * 1998-08-11 2001-02-20 International Business Machines Corporation Dynamic balancing of graphics workloads using a tiling strategy
JP3169933B2 (ja) * 1999-03-16 2001-05-28 四国日本電気ソフトウェア株式会社 並列描画装置
US6349378B1 (en) * 1999-03-31 2002-02-19 U.S. Philips Corporation Data processing using various data processors
US6674440B1 (en) 1999-04-05 2004-01-06 3Dlabs, Inc., Inc. Ltd. Graphics processor for stereoscopically displaying a graphical image
US6424320B1 (en) * 1999-06-15 2002-07-23 Ati International Srl Method and apparatus for rendering video
GB2352154B (en) * 1999-07-16 2003-08-27 Ibm Automatic target enlargement for simplified selection
US6816561B1 (en) 1999-08-06 2004-11-09 3Dlabs, Inc., Ltd Phase correction for multiple processors
US6867779B1 (en) * 1999-12-22 2005-03-15 Intel Corporation Image rendering
US7233331B2 (en) * 2000-03-16 2007-06-19 Square Enix Co., Ltd. Parallel object task engine and processing method
US7783695B1 (en) * 2000-04-19 2010-08-24 Graphics Properties Holdings, Inc. Method and system for distributed rendering
US7092983B1 (en) 2000-04-19 2006-08-15 Silicon Graphics, Inc. Method and system for secure remote distributed rendering
US6747654B1 (en) * 2000-04-20 2004-06-08 Ati International Srl Multiple device frame synchronization method and apparatus
US7405734B2 (en) * 2000-07-18 2008-07-29 Silicon Graphics, Inc. Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units
US6597157B1 (en) 2001-07-25 2003-07-22 3Dlabs, Inc., Ltd Parallel phased switch control
US6683614B2 (en) * 2001-12-21 2004-01-27 Hewlett-Packard Development Company, L.P. System and method for automatically configuring graphics pipelines by tracking a region of interest in a computer graphical display system
US6920618B2 (en) * 2001-12-21 2005-07-19 Hewlett-Packard Development Company, L.P. System and method for configuring graphics pipelines in a computer graphical display system
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
US6909432B2 (en) * 2002-02-27 2005-06-21 Hewlett-Packard Development Company, L.P. Centralized scalable resource architecture and system
US6933943B2 (en) * 2002-02-27 2005-08-23 Hewlett-Packard Development Company, L.P. Distributed resource architecture and system
US20040003022A1 (en) * 2002-06-27 2004-01-01 International Business Machines Corporation Method and system for using modulo arithmetic to distribute processing over multiple processors
JP4467267B2 (ja) * 2002-09-06 2010-05-26 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、および画像処理システム
US6885376B2 (en) * 2002-12-30 2005-04-26 Silicon Graphics, Inc. System, method, and computer program product for near-real time load balancing across multiple rendering pipelines
US6985150B2 (en) * 2003-03-31 2006-01-10 Sun Microsystems, Inc. Accelerator control unit configured to manage multiple hardware contexts
US20080211816A1 (en) * 2003-07-15 2008-09-04 Alienware Labs. Corp. Multiple parallel processor computer graphics system
US7119808B2 (en) * 2003-07-15 2006-10-10 Alienware Labs Corp. Multiple parallel processor computer graphics system
CA2546427A1 (en) * 2003-11-19 2005-06-02 Reuven Bakalash Method and system for multiple 3-d graphic pipeline over a pc bus
US20080074431A1 (en) * 2003-11-19 2008-03-27 Reuven Bakalash Computing system capable of parallelizing the operation of multiple graphics processing units (GPUS) supported on external graphics cards
US8497865B2 (en) * 2006-12-31 2013-07-30 Lucid Information Technology, Ltd. Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US7961194B2 (en) 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
US20090027383A1 (en) * 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US7755629B2 (en) * 2004-06-30 2010-07-13 Canon Kabushiki Kaisha Method of rendering graphic objects
US7460126B2 (en) * 2004-08-24 2008-12-02 Silicon Graphics, Inc. Scalable method and system for streaming high-resolution media
JP4244028B2 (ja) * 2004-09-22 2009-03-25 株式会社ソニー・コンピュータエンタテインメント グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
US7633505B1 (en) * 2004-11-17 2009-12-15 Nvidia Corporation Apparatus, system, and method for joint processing in graphics processing units
US7598958B1 (en) 2004-11-17 2009-10-06 Nvidia Corporation Multi-chip graphics processing unit apparatus, system, and method
JP2008538620A (ja) * 2005-01-25 2008-10-30 ルーシッド インフォメイション テクノロジー リミテッド モノリシック構成のシリコン・チップ上に多数のグラフィックス・コアを用いるグラフィック処理及び表示システム
US20090096798A1 (en) * 2005-01-25 2009-04-16 Reuven Bakalash Graphics Processing and Display System Employing Multiple Graphics Cores on a Silicon Chip of Monolithic Construction
US9213519B2 (en) * 2005-02-28 2015-12-15 Hewlett-Packard Development Company L.P. Systems and methods for evaluating the operation of a multi-node graphics system
US20060267997A1 (en) * 2005-05-24 2006-11-30 Walls Jeffrey J Systems and methods for rendering graphics in a multi-node rendering system
US20080079715A1 (en) * 2006-09-28 2008-04-03 Shearer Robert A Updating Spatial Index Partitions Based on Ray Tracing Image Processing System Performance
US8384711B2 (en) * 2006-11-29 2013-02-26 The University Of Utah Research Foundation Ray tracing a three dimensional scene using a grid
US8861591B2 (en) * 2007-05-11 2014-10-14 Advanced Micro Devices, Inc. Software video encoder with GPU acceleration
US8233527B2 (en) 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
US8072460B2 (en) * 2007-10-17 2011-12-06 Nvidia Corporation System, method, and computer program product for generating a ray tracing data structure utilizing a parallel processor architecture
US8056086B2 (en) * 2008-05-19 2011-11-08 International Business Machines Corporation Load balancing for image processing using multiple processors
AU2008258132B2 (en) * 2008-12-15 2011-11-10 Canon Kabushiki Kaisha Load balancing in multiple processor rendering systems
CN102270354A (zh) * 2010-06-03 2011-12-07 苏州浩辰软件股份有限公司 基于对等运算集群的分布式渲染方法及其渲染系统
US9092267B2 (en) * 2011-06-20 2015-07-28 Qualcomm Incorporated Memory sharing in graphics processing unit

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967392A (en) * 1988-07-27 1990-10-30 Alliant Computer Systems Corporation Drawing processor for computer graphic system using a plurality of parallel processors which each handle a group of display screen scanlines
DE69032932T2 (de) * 1989-11-17 1999-09-16 Digital Equipment Corp., Maynard System und Verfahren zum unverfälschten Polygonenzeichnen
JPH03177961A (ja) * 1989-12-07 1991-08-01 Mitsubishi Electric Corp マルチプロセッサ制御装置
US5220650A (en) * 1991-01-22 1993-06-15 Hewlett-Packard Company High speed method for rendering antialiased vectors
US5343558A (en) * 1991-02-19 1994-08-30 Silicon Graphics, Inc. Method for scan converting shaded triangular polygons
US5408606A (en) * 1993-01-07 1995-04-18 Evans & Sutherland Computer Corp. Computer graphics system with parallel processing using a switch structure
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100436183B1 (ko) * 2002-10-09 2004-06-12 한국과학기술원 개인용 컴퓨터를 이용한 3차원 그래픽 처리용 후-정렬시스템
JP2007503059A (ja) * 2003-08-18 2007-02-15 エヌビディア・コーポレーション マルチプロセッサ・グラフィックス処理システムの適応型負荷分散
JP2021119453A (ja) * 2019-12-30 2021-08-12 ティーエムアールダブリュー ファウンデーション アイピー エスエーアールエル 仮想世界または現実世界の多次元3dエンジンコンピューティングおよび仮想化ベースの動的負荷分散
US11798119B2 (en) 2019-12-30 2023-10-24 Tmrw Foundation Ip S. À R.L. Multi-dimensional 3D engine computing and virtualization-based dynamic load balancing of virtual or real worlds

Also Published As

Publication number Publication date
EP0693737A2 (en) 1996-01-24
US5757385A (en) 1998-05-26
EP0693737A3 (en) 1997-01-08

Similar Documents

Publication Publication Date Title
JPH0877365A (ja) 多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置
US5734806A (en) Method and apparatus for determining graphical object visibility
JP3030206B2 (ja) グラフィック多角形をクリップ領域にクリップする方法および装置
JP5956770B2 (ja) タイルベースのグラフィックスシステム及びこのようなシステムの動作方法
US6437788B1 (en) Synchronizing graphics texture management in a computer system using threads
US5097411A (en) Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs
EP0329771B1 (en) High performance graphics workstation and method of operating therefor
JP4981162B2 (ja) 画像データの記憶・検索技法
US5251322A (en) Method of operating a computer graphics system including asynchronously traversing its nodes
US6288722B1 (en) Frame buffer reconfiguration during graphics processing based upon image attributes
KR19980702804A (ko) 영상 생성 및 조작을 위한 하드웨어 아키텍처
US6177944B1 (en) Two phase rendering for computer graphics
KR0150832B1 (ko) 그래픽 대상을 인터로크하기 위한 방법 및 장치
US8907979B2 (en) Fast rendering of knockout groups using a depth buffer of a graphics processing unit
US20240257435A1 (en) Hybrid binning
US5579461A (en) Method and apparatus for filling polygons
US12067640B2 (en) Dynamically reconfigurable register file
JPH08249502A (ja) 補助バッファ情報を用いる改良型グラフィクス・ピッキング方法及び装置
JP3086426B2 (ja) オブジェクトのラスタ化方法及び装置
EP0600204A2 (en) Method and apparatus for rendering primitives with multiple processors
EP0486194A2 (en) Memory system
US10832465B2 (en) Use of workgroups in pixel shader
JP2667949B2 (ja) ピック事象の処理方法及び処理装置
WO2022266851A1 (zh) 一种图形处理方法及装置
JP2000099761A (ja) グラフィックス処理装置及び方法