JP4383853B2 - 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム - Google Patents

時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム Download PDF

Info

Publication number
JP4383853B2
JP4383853B2 JP2003509407A JP2003509407A JP4383853B2 JP 4383853 B2 JP4383853 B2 JP 4383853B2 JP 2003509407 A JP2003509407 A JP 2003509407A JP 2003509407 A JP2003509407 A JP 2003509407A JP 4383853 B2 JP4383853 B2 JP 4383853B2
Authority
JP
Japan
Prior art keywords
rendering engine
instructions
instruction
graphics
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.)
Expired - Fee Related
Application number
JP2003509407A
Other languages
English (en)
Other versions
JP2004531841A (ja
Inventor
ドイル,ピーター
スリーニヴァス,アディトヤ
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2004531841A publication Critical patent/JP2004531841A/ja
Application granted granted Critical
Publication of JP4383853B2 publication Critical patent/JP4383853B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Description

本発明は、一般に、複数の画像のレンダリングに関する。本発明は、更に詳細には、1つ又はそれ以上の表示装置への複数の画像のレンダリングに関する。
画像レンダリングとは、ハイレベルの対象物ベースの表示をある表示装置における表示のためのグラフィック画像に変換することである。例えば、画像レンダリングは、3次元対象物又はシーンの数学的モデルをビットマップ画像に変換する間に現れる。画像レンダリングの他の例は、HTML文書をコンピュータモニタにおける表示のための画像に変換することである。一般に、グラフィックレンダリングエンジンと呼ばれるハードウェア装置により、これらのグラフィック処理タスクを加速することができる。
インターネットをサーフィンするとき、通常、複数の画像がコンピュータモニタ上に表示される。例えば、インターネットをサーフィンするとき、ウェブページとウェブページ上に重ね合わされる2つのバナー広告とがコンピュータモニタ上に表示される。グラフィックレンダリングエンジンは、代表的には、ウェブページのような第1画像に関連する命令全てをレンダリングする。第1画像のための命令を完全に処理した後、グラフィックレンダリングエンジンは、バナー広告の1つのような第2画像に関連する命令の処理を開始する。しかしながら、一般に、グラフィックレンダリングエンジンは、第2画像に関連する命令の処理を開始する前に、第1画像に関連する命令のレンダリングを終了しなければならない。このように、グラフィックグラフィックレンダリングエンジンが、グラフィックアプリケーションプログラムが命令を生成するより速く命令を処理する場合、グラフィックグラフィックレンダリングエンジンは、その時間の間、アイドルの状態のまま保たれる。又、次の命令を実行する前に現れる現実の世界のイベントを画像命令が呼び出す場合、グラフィックグラフィックレンダリングエンジンは、その時間の間、アイドルの状態のまま保たれる。代表的には、グラフィックグラフィックレンダリングエンジンは、連続して命令ストリームをサービスする。このようにして、グラフィックレンダリングエンジンが第2命令ストリームに関連する命令の処理を開始する前に、第1命令ストリームに関連する命令は処理された。
他の例は、3次元環境において2つの独立した画像をレンダリングすることである。1つの表示スクリーンは、3次元画像を含む第1ウィンドウと、制御2Dグラフィックユーザインタフェースの表示画像を含む第2ウィンドウとを表示する。上で述べたように、先行技術においては、グラフィックレンダリングエンジンが第2ウィンドウにおける画像に関連する命令の処理を開始する前に、第1ウィンドウにおける画像のための命令は処理された。
従来の技術は、複数の表示装置上に複数の画像を表示した。代表的には、2つ又はそれ以上のグラフィックレンダリングエンジンが、複数の画像に関連する命令を処理するために存在する。各々のグラフィックレンダリングエンジンは1つの表示装置にサービスする。しかしながら、実際には、複数のグラフィックレンダリングエンジンはより大きい物理的空間を占め、より大きい電力を消費し、1つのグラフィックレンダリングエンジンを生成することに比べてより大きいコストが掛かる。従って、グラフィックレンダリングエンジンの数を減少させる古都は有益である。更に、2つ又はそれ以上のグラフィックレンダリングエンジンをもつ同じ表示スクリーン上の異なる画像をレンダリングすることを試みる従来の技術は重大なアービトレーションの競合に直面する。
各々のグラフィックレンダリングエンジンは、レンダリング状態変数のセットにより制御される。これらの状態変数はレンダリングコンテキストとして集合的に呼びならわされている。レンダリング状態関数は、対象物の色、テクスチャ、テクスチャ適用モード等のグラフィックレンダリングプロセスの特定の側面を制御する。
特定のレンダリングコンテキストは、各々の画像と共に、その画像がレンダリングされるときに存在する。従来の技術は、画像に関連するレンダリングコンテキストのセットに役にたたない方法を用いている。グラフィックドライバプログラムはアプリケーションプログラムからの命令を受信し、グラフィックレンダリングエンジンに画像に現関連状態変数の設定を含んだその命令を含む命令ストリームを送信する。グラフィックレンダリングエンジンは、他のレンダリング命令の実行の前にこれらのレンダリングコンテキストの命令を処理する。グラフィックレンダリングエンジンが第1画像に関連する処理命令と第2画像に関連する命令との間をスイッチングするとき、グラフィックアプリケーションプログラムはレンダリングコンテキスト命令を送信する必要があり、グラフィックレンダリングエンジンはそれらレンダリングコンテキスト命令を処理することが必要である。
従来、グラフィックレンダリングエンジンに関連するレンダリングコンテキストはソフトウェア生成命令ストリームによってのみ修正され、ホストCPUから直接アクセス可能ではなかった。現レンダリングコンテキストのような第1レンダリングコンテキストから、新しいレンダリングコンテキストのような第2レンダリングコンテキストへの変更は、それ故、第2レンダリングコンテキストを設定する状態変数を指定するために命令を生成する応用ソフトウェアを必要とした。第1レンダリングコンテキストが読み込まれる場合、応用ソフトウェアは、後のある時点にその第1レンダリングテキストを回復するために、第1レンダリングコンテキストのシャドーコピーを保つことが必要とされた。
本発明は種々の修正及び変更形態を必要とする一方、本発明の特定の実施形態は図面を例として示し、以下に詳述する。本発明は、開示された特定の形態に限定されるものではないことを理解する必要があり、それと対照的に、本発明は、本発明の主旨及び発明の適用範囲内に含まれる修正、同等のもの及び代替のもの全てをカバーするものである。
以下、本発明の全体的な理解を提供するために、特定命令、指定構成要素、コネクション等について数々の特定な内容により詳述する。しかしながら、本発明はそれらの詳細説明がなくても実行可能であることが明らかであることは、当業者には理解されるであろう。他の例として、本発明を不必要に分かりにくくすることを回避するために、周知の構成要素又は方法については詳細に説明せずに、ブロックダイアグラムを用いて説明する。それ故、詳述する特定の内容は単なる例である。その特定の内容について、本発明の主旨と適用範囲から逸脱することなく、変更すること及び更に検討を加えることが可能である。結合された用語は、直接的に又は非直接的に結合された意味として定義される。
一般に、グラフィックレンダリングエンジンは、複数の表示装置上における表示のために独立した画像を、同時にレンダリングする。命令搬送部は、グラフィックレンダリングエンジンに2つ又はそれ以上の独立した画像のための命令を提供する。時間アロケータは、レンダリングされた各々の独立した画像間のグラフィックレンダリングエンジンの同時使用の調停を行う。グラフィックコンテキストマネージャは、確立されたメモリ位置からグラフィックレンダリングエンジンに第1独立画像に関連するレンダリングコンテキストを戻す。
図1は、複数の表示装置上の1つ又はそれ以上の画像を表示するためにグラフィックレンダリングエンジンを用いる1つ又はそれ以上の画像をレンダリングするグラフィック装置の実施形態を示すブロック図である。図1を参照するに、グラフィック装置100はグラフィックレンダリングエンジン102、1つ又はそれ以上の命令搬送部104、コンテキストマネージャ106、時間アロケータ108、及び、第1表示装置110と第2表示装置112のような1つ又はそれ以上の表示装置を備える。一実施形態において、グラフィック装置100は、1つのグラフィックレンダリングエンジン102を備える。
グラフィックレンダリングエンジン102は、1つの表示装置又は複数の表示装置のどちらかに表示されるために独立画像を生成する。それ故、例えば、2つの独立画像は同じ表示装置上に表示されることが可能であり、又は2つの独立画像は別々の表示装置上に各々表示されることが可能である。各々の独立画像のための命令は、複数のグラフィックアプリケーションプログラムからの命令を含む1つの命令ストリーム114又は別々の命令ストリームによりもたらされる。
各々の独立画像は、ブラウザアプリケーションによるバナー広告をもつウェブページを表示する、又は2次元画像に関連する第1命令ストリームを連続してレンダリングし、次いで3次元画像に関連する第2命令ストリームをレンダリングする従来技術に比較して、同時にレンダリングされることが可能である。一般に、従来技術は、バナー広告等の第1ウィンドウに含まれる第1画像に関連する画像命令を完全にレンダリングし、ウェブページ等の第2ウィンドウに含まれる第2画像についての命令を完全にレンダリングする。代表的には、従来技術、即ちグラフィクスレンダリングエンジンは、各々の独立画像のための命令を同時には実行しない。
時間アロケータ108は、レンダリングされる各々の独立画像間でグラフィックレンダリングエンジン102の使用を裁定する。グラフィックコンテキストマネージャ106は、メモリ装置(図示せず)においてレンダリングされる各々の独立画像に関連するコンテキストを記憶する。種々のグラフィックアプリケーションは、プロセッサにおいて動き、又は命令ストリームに命令をレンダリングするプロセッサ挿入画像において動くブラウザにおいて動く。命令搬送部104は、命令ストリーム114から処理のためのグラフィックレンダリングエンジン102に命令を提供する。
グラフィックレンダリングエンジン102は、グラフィックコンテキストマネージャ106、時間アロケータ108、及びグラフィックレンダリングエンジン102の効率的な使用を行うための1つ又はそれ以上の命令搬送部104を用いて機能する。命令ストリーム114に命令を供給する各々のグラフィックアプリケーションは異なる速度で動作し、画像を生成することが可能である。例えば、ストリーミングライブビデオアップリケーションは、通常、ワードプロセッシングアプリケーションよりかなり速い画像生成速度で動作する。グラフィックレンダリングエンジン102は、グラフィックレンダリングエンジン102がアイドルのまま保たれる時間を最小にするために、2つ又はそれ以上の画像に関する命令を同時にレンダリングすることが可能である。又、従来の技術においては、第1画像のための命令が次の命令を実行する前に生じる実ワードイベントを要求する場合、グラフィックレンダリングエンジン102は、その時間の間、アイドルのまま保たれる。しかしながら、グラフィックレンダリングエンジン102は、グラフィックレンダリングエンジン102のためのアイドル時間を減少させるために、複数の画像から命令を同時にレンダリングすることが可能である。
グラフィックレンダリングエンジン102は、第1画像に関連する現レンダリングコンテキストを保存し、確立されたメモリ位置(図示せず)から第2画像に関連する新しいレンダリングコンテキストをロードすることが可能である。一実施形態において、レンダリングコンテキストを記憶するために用いられる確立されたメモリ位置は、論理コンテキスト(図示せず)と呼ばれる。グラフィックスレンダリング装置100は、レンダリングコンテキストをスイッチングするためにレンダリングされるとき、(1)レンダリング状態変数からメモリにおける第1確立メモリ位置に現レンダリングコンテキストを書き込み、(2)メモリにおける第2確立メモリ位置からその新しいレンダリングコンテキストを読み込み、及び(3)その新しいレンダリングコンテキストからの情報を用いてレンダリング状態変数をロードする。一実施形態において、別々の命令搬送部104は、特定の表示装置110、112のために処理される画像レンダリング命令の独立したセットを記憶するために、各々の表示装置110、112に関連している。
図2は、中央演算処理装置(CPU),キャッシュ、メモリ、表示装置及びグラフィックコンテキストマネージャの実施形態及び命令搬送部の実施形態を有するグラフィック装置を含むコンピュータシステムの実施形態のブロック図を示している。グラフィック装置200は、複数のリングバッファレジスタ204,206、リングバッファ直接メモリアクセスエンジン(RB DMA ENG)212、グラフィックレンダリングエンジン214及びコンテキスト識別レジスタ(CID)222、224を備えている。複数のリングバッファメモリ領域208、210、複数の確立メモリ位置216,218,220及び複数の表示装置228、230はグラフィック装置200に関連している。一実施形態において、命令搬送部は、複数のリングバッファレジスタ204、206、複数のリングバッファメモリ領域208、210及び直接メモリアクセスエンジン212を含む。一実施形態において、コンテキストマネージャは、コンテキスト識別マネージャ(CID)222、224、アクティブコンテキスト識別レジスタ(Active CID)226及び複数の確立メモリ位置216、218、220からなる。
図3は、リングバッファメモリ領域の一実施形態のブロック図を示している。上述のように、命令搬送部の実施形態は、1つ又はそれ以上のリングバッファレジスタ310、及びソフトウェア生成命令がグラフィックレンダリングエンジン(図示せず)に移動されることができる1つ又はそれ以上のリングバッファメモリ領域300を備えている。リングバッファメモリ領域300は、グラフィックアプリケーション(図示せず)からの実際の画像レンダリング命令を維持する。リングバッファレジスタ310は、リングバッファメモリ領域300の開始と長さを規定し、リングバッファメモリ領域300への2つの“オフセット”、ヘッド304及びテール302を備えている。テールオフセット302は、実行されなければならない有効な命令の存在をグラフィックレンダリングエンジンに知らせる。ヘッドオフセット304は、それらの命令が解析されて実行されるとき、グラフィックレンダリングエンジンにより増加される。命令は、リングバッファメモリ領域300の底部からリングバッファメモリ領域300の最上部に戻してラップアラウンドされることができる。一実施形態において、リングバッファメモリ領域300は、バッチバッファ(図示せず)の位置を指し示すために命令を記憶する。バッチバッファは、余分な命令記憶容量を提供するために離散したメモリ領域に記憶されることが可能である画像レンダリング命令の離散リストを備えている。一実施形態において、バッチバッファは、命令ストリームから呼び出されることができる独立した一連の命令を記憶する。
図2を再び参照するに、各々のリングバッファレジスタ204、206は、レジスタ内に複数のフィールドを有することが可能である。第1リングバッファレジスタ204のようなリングバッファレジスタの実施形態において含まれるフィールドは、リングバッファ有効validフィールド(V)232、開始アドレスフィールド(S)234、バッファ長さフィールド(L)235、ヘッドオフセットフィールド(H)236、ヘッドラップカウントフィールド(W)233、テールオフセットフィールド(T)237、自動レポートヘッドイネーブルフィールド(R)238、時間スライスフィールド(TS)239及び他の類似したフィールドであることが可能である。
リングバッファ有効フィールド232は、この特定のリングバッファレジスタがグラフィックレンダリングエンジン214を共有するための裁定プロセスに含まれるかどうかを制御する。開始アドレスフィールド234は、リングバッファメモリ領域208、210から構成される隣接メモリ領域の開始を指し示す。リングバッファメモリ領域208、210は、システムメモリ232又は専用メモリに位置付けられる。バッファ長さフィールド235は、割り当てられたリングバッファメモリ領域208、210のバイトでのるサイズを指定する。一実施形態において、リングバッファ長さフィールド235は、どの時点においても、リングバッファメモリ領域208,210に提出されることができる最大データ量を規定する。一実施形態において、リングバッファメモリ領域208、210は画像レンダリング命令及び1つ又はそれ以上のバッチバッファ240へのポインタを含むことが可能であり、それ故、特定の命令に対して実質的に無制限メモリ領域を生成する。
ヘッドオフセットフィールド236は、グラフィックレンダリングエンジン214が解析する次の命令の開始アドレス234からメモリオフセットを指し示す。例えば、ヘッドオフセット236は、解析された最後の命令が過ぎるまで、1つのメモリを指し示すことが可能である。グラフィックレンダリングエンジン214は、命令が解析されたとき、ヘッドオフセットフィールド236をアップデートする。一旦、ヘッドオフセット236がテールオフセットフィールド237の値に達するとき、即ち両方のオフセットが等しくなったとき、グラフィックレンダリングエンジン214はリングバッファメモリ領域208,210が空であるとみなし、その条件が留まる限り、グラフィックレンダリングエンジン214を共有するために、裁定プロセスから対応するリングバッファレジスタ204、206を取り除く。このようにして、表示には、特定の表示装置のための命令ストリームが中心プロセスから取り除かれることが存在する。又、より効率的なフロー制御アルゴリズムのためのキャッシャブルメモリに、ヘッドポインタ値とヘッドラップカウントフィールド233が書き込まれることを可能にする自動レポートヘッドイネーブルフィールドが、リングバッファレジスタに含まれる。例えば、進行を確認するためにヘッドオフセット236をポーリングする間のフロー制御アルゴリズム。
リングバッファメモリ領域208、210は、メモリ領域の終了からメモリ領域の開始まで、命令をラップすることが可能である。ヘッドラップカウントフィールド233は、ヘッドオフセット236がリングバッファメモリ領域208、210の開始アドレス234にラップアラウンドして戻る度に、グラフィックレンダリングエンジン214により増加される。一実施形態において、ヘッドラップカウントフィールド233は、“レポートヘッド”プロセスに書き込まれたDWordに含まれる。グラフィック装置200は、まるでリングバッファメモリ領域208、210が実際の物理的バッファのサイズよりかなり大きい“仮想的”長さを有しているかのように、命令が解析する進行状況を追跡するためにヘッドラップカウントフィールドを用いることができる。
テールオフセットフィールド237はリングバッファメモリ領域208における位置を指し示す。テールオフセットフィールド237は、グラフィックアプリケーションソフトウェアが後に実行される付加的な画像レンダリング命令を記憶するために用いることができる命令データの次のメモリユニットを指し示す。例えば、テールオフセットフィールド237は、グラフィックレンダリングエンジン214が実行するように提出された最後の命令に合格した1つのメモリユニット232を指し示す。提出された命令は、リングバッファメモリ領域208、210の末端部から先端部に戻るようにラップアラウンドされることができ、この場合、書き込まれたテールオフセット237は前の値より小さくなる。リングバッファメモリ領域208、210の“空”の状態は、“ヘッドオフセットフィールド236がタールオフセットフィールド237に等しい”として定義される。
自動レポートヘッドイネーブルフィールド238は、グラフィックアプリケーションソフトウェア又はオペレーティングソフトウェアが、周期的ベースで特定のCPU詮索システムメモリ位置に書き込まれるヘッドオフセットフィールド236とヘッドラップカウントフィールド233の内容を有するように要求することを可能にする。自動レポートは、ヘッドオフセットフィールド236が進む度に生じるように、プログラムされた量により、プログラムされることができる。自動レポート機構は、リングバッファにおける空き領域の量を決定するために、ソフトウェアがヘッドオフセットフィールド236とヘッドラップカウントフィールド233を用いることを可能にする。このようにして、ヘッドオフセットフィールド236は、命令によりヘッドポインタ値を明白に得る必要がないようにして、適正な最新のヘッドオフセットフィールド236を提供するために、システムメモリに周期的に報告されることが可能である。
各々の表示装置228、230は、その個々の表示装置に関連する別々の命令搬送部を有することが可能である。図2に示したように、第1リングバッファレジスタ204と第1リングバッファメモリ領域208は、第1表示装置228に関連している。第2リングバッファレジスタ206と第2リングバッファメモリ領域210は、第2表示装置230に関連している。このようにして、この例においては、第1リングバッファレジスタ204と第1リングバッファメモリ208領域は、第1表示装置228に表示される独立した画像のレンダリングのための命令を提供する。一実施形態において、第1リングバッファレジスタ204と第1リングバッファメモリ領域208は、第2表示装置230に関連している。
複数の命令搬送部は、異なる優先順位を各々の命令搬送部に関連させることを可能にする。例えば、低い優先順位の命令搬送部は、割り込みバックグラウンドレンダリングタスクのために用いられることができる。同様に、高い優先順位の命令搬送部は、ビデオフレーム捕捉のような非同期のイベントをサービスするために用いられることができる。また、サービスするための第1命令搬送部に第1表示装置228のような1つの表示装置を、そしてサービスするための第2命令搬送部に第2表示装置230のような1つの表示装置を割り当てることにより、グラフィック装置200は、表示装置毎に別々の命令ストリームをサポートすることができる。更に、グラフィック装置200は、表示装置毎に分離して制御される命令ストリームをサポートすることができる。
上述のように、各々の命令搬送部は直接メモリアクセスエンジン212を含むことが可能である。直接メモリアクセスエンジン212は、特定の命令搬送部から命令をもってきて、グラフィックレンダリングエンジン214にそれらの命令を提供する。グラフィクレンダリングエンジン214は、直接メモリアクセスエンジン212により命令搬送部から画像命令を読み込み、それらの画像命令を実行する。グラフィックレンダリングエンジン214は、ヘッドオフセットフィールド236とテールオフセットフィールド237との間の違いにより、リングバッファメモリ領域208、210内の命令の存在を検出する。グラフィックレンダリングエンジン214は、どのような情報を命令が含み、それ故、どのようにその命令を更に実行するかを決定するために、命令の共通の“ヘッダ”フィールドに割り込み、それを復号化する。このような命令の割り込み及び復号化は、一般に、パーシング(parsing)と呼ばれる。
一実施形態において、グラフィックレンダリングエンジン214は、どのような情報(例えば、適用される状態変数変化246又はレンダリングされるプリミティブ248)を命令が含むかを調べるために、命令ストリーム242から特定の命令を復号化する。グラフィックレンダリングエンジン214は、次いで、適宜にその命令を実行する。状態変数変化命令246の実行は、源レンダリングコンテキストに特定の変化をもたらす。プリミティブ命令248の実行は、メモリ256、258における適切な画像情報の修正をもたらす(即ち、画像はレンダリングされる)。グラフィックレンダリングエンジン214は、次いで、第1表示画像256と第2表示画像258のような、各々の表示装置228、230に対応するメモリ位置における画像情報を記憶する。一実施形態において、第1表示画像256のための情報と第2表示画像のための情報は、第1表示装置228と第2表示装置230の両方に専用のローカルメモリに記憶される。一実施形態において、第1表示画像256のための命令と第2表示画像258のための命令はシステムメモリ232に記憶される。グラフィックレンダリングエンジン214は、メモリからレンダリングされた画像情報を読み出し、周期的ベースで関連する表示装置にレンダリングされた画像情報を提供する。第1表示装置228のような表示装置は、次いで、この情報に基づいて表示装置に実際の画像を表示する。
一実施形態において、グラフィックアプリケーションは命令ストリーム242に命令を供給する。上述のように、これらの命令は、通常、特定の表示装置228、230に関連するリングバッファメモリ領域208、210に記憶されることが可能である。一実施形態において、命令ストリーム242において見つけられた一部の命令のタイプは、状態変数変化命令246、プリミティブ248及びセットコンテキストコマンド250、252とすることが可能である。プリミティブ命令248は、描かれる形状とそれら形状に帰する位置と寸法に関するグラフィックレンダリングエンジン214を命令する。状態変数変化命令246は、画像をレンダリングするときに、ハードウェアグラフィックコンテキスト回路244に記憶されたレンダリング状態変数のセットの現値を修正するためにグラフィックレンダリングエンジン214を命令する。一実施形態において、セットコンテキストコマンド(Set CXT #)250、252は、グラフィックレンダリングエンジン214が、第1確立メモリ位置16のような確立メモリ位置に現レンダリングコンテキストを保存すること、及び第2確立メモリ位置218のような新しい確立メモリ位置から新しいレンダリングコンテキストを回復させることをもたらす。
第1確立メモリ位置のような各々の確立メモリ位置は、グラフィックレンダリングエンジン214により、レンダリングされた画像のレンダリングコンテキストを記憶する。同様に、各々の確立メモリ位置216、218、220は、関連する独立画像をレンダリングするとき、用いられるレンダリング状態変数の設定を記憶することが可能である。一実施形態において、複数の確立メモリ位置216、218、220は、グラフィックレンダリングエンジン214がレンダリングされた各々の画像に関連するレンダリングコンテキストのトラックを維持することを可能にする。コンテキストマネージャの実施形態は、複数の画像の現レンダリングを管理するために、複数の確立メモリ位置216、218、220とコンテキスト識別レジスタ222、224、226を含む。コンテキストマネージャの実施系形態は、複数の表示装置228、230に画像を表示すること及び第1表示装置228のような同じ表示装置に複数の画像を表示することをサポートするグラフィック表示制御器回路(GDC)270に合わせる。
ハードウェアグラフィックコンテキスト回路244における数多くのハードウェア状態変数の設定は、グラフィック装置200におけるレンダリングのようなグラフィック操作を制御する。状態変数は、全体的状態変数とコンテキスト状態変数を含むことが可能である。全体的状態変数は、全てのコンテキスト(例えば、論理アドレスマッピング資源等)に共通であり、それ故、任意の特定のレンダリングコンテキストの範囲の外側にあるとみなされる。しかしながら、特定のグラフィックアプリケーションに関連する各々のレンダリングコンテキストは分離したコンテキスト状態変数のセットを含む。一実施形態において、特定のグラフィックアプリケーションに関するこれらのレンダリングコンテキストは、アクティブなオンチップメモリにおける確立メモリ位置又はシステムメモリ232における複数の確立メモリ位置216、218、220に記憶されることが可能である。
上述のように、複数の確立メモリ位置216、218、220は、グラフィックレンダリング画像によりレンダリングされる独立画像に関連するレンダリングコンテキストをメモリ232において記憶すること及びメモリ232から回復することにより、グラフィックレンダリングエンジン214をサポートする。一実施形態において、セットコンテキストA0(250)のような命令ストリーム242からの第2セットコンテキスト命令は、記憶のために第1確立メモリ位置216のような確立メモリ位置にレンダリングされた画像のための現レンダリングコンテキストを送信するようにグラフィックレンダリングエンジン214に命令する。同時に、第2画像を生成するグラフィックアプリケーションに関連する第2確立メモリ位置18は、グラフィクレンダリングエンジン214により同時にレンダリングされる第2画像に関連するレンダリングコンテキストを回復するためにグラフィックレンダリングエンジン214から信号を受信する。一実施形態において、その装置に位置された付加的なコンテキストキャッシュは、メモリバンド幅とスワップコンテキストに必要な時間を減少させる。
コンテキストマネージャは又、コンテキスト識別レジスタ(CID)222、224とアクティブコンテキスト識別レジスタ226とからなる。コンテキスト識別レジスタ222、224は、特定のリングバッファレジスタ204,206と、それ故、特定の画像メモリ位置256、258に関連する。
一実施形態において、アクティブコンテキスト識別レジスタ226は、現アクティブリングバッファレジスタ204、206に含まれるコンテキスト識別レジスタ222、224値を追跡する。第1コンテキスト識別レジスタ222のような追跡コンテキスト識別レジスタは、特定の確立メモリ位置216、218、220がグラフィックレンダリングエンジンによりレンダリングされている現画像に関連する。
一実施形態において、各々のコンテキストと識別レジスタ222、224は、確立メモリ位置アドレスとコンテキストクオリファイアビットとを含む。コンテキストクオリファイアビットは、レンダリングコンテキストの位置がコンテキストスイッチに関して保存/回復されなければならないか、そうではないかを制御する。一実施形態において、各々のコンテキスト識別レジスタ222、224は、“テクスチャパレット保存ディセーブル”コンテキストクオリファイアビット及び““テクスチャパレット回復ディセーブル”コンテキストクオリファイアビットのようなコンテキストクオリファイアビットを実行する。一実施形態において、これらのコンテキストクオリファイアビットは、3次元画像が維持されるべき(即ち、レンダリングコンテキストの一部として保存され回復される)現テクスチャパレットを必要とすることが可能である一方、2次元画像はそうではない2次元と3次元画像との間のコンテキストを交換することの役に立つ。
確立メモリ位置216、218、220は、対応するコンテキスト識別レジスタ222、224の確立メモリ位置アドレスにより参照される。確立メモリ位置216、218、220の実際のサイズは、コンテキストスイッチの間に記憶/回復されたデータ量であり、レンダリングコンテキストがテクスチャパレットを含むかどうかに依存する。一実施形態において、コンテキスト識別レジスタ222、224は、メモリ232におけるそれぞれの確立メモリ位置216、218,220サイズを特定するために2つの付加的なレジスタを含むことが可能である。一実施形態において、特定のコンテキスト識別レジスタ222、224は、対応するリングバッファメモリ領域208、210に記憶される命令ストリーム242から“set_context”命令250、252の処理の間に、アクティブなレジスタを生成する。一実施形態において、set_context命令250、252は、コンテキスト識別レジスタ222、224にロードされるように新しいコンテキスト識別値(局所コンテキストアドレス+パレット保存ディセーブルビット)を提供する。set_context命令250、252は又、新しいコンテキストの回復を随意的に抑制するために用いられる回復抑制ビットを含む。一実施形態において、回復抑制ビットは、メモリ232から非識別コンテキストデータのローディングを回避するためにコンテキスト識別の間に、用いられることが可能である。
アクティブコンテキスト識別レジスタ226は、第1リングバッファレジスタ204のようなアクティブなリングバッファレジスタのコンテキスト識別値を含む。set_context命令250、252の実行の一部として、アクティブなコンテキスト識別レジスタ226からの確立メモリ位置アドレスフィールドとset_context命令が比較される。それらが異なるか又はアクティブなコンテキスト識別レジスタ226が初期化されない場合、コンテキストスイッチ操作は生じない。
一実施形態において、コンテキストスイッチ操作の間に、回復抑制命令フィールドが設定されない場合、コンテキスト回復操作は実行されることが可能である。ここで、第1確立メモリ位置216のような確立メモリ位置のためのアドレス値は、アクティブなコンテキスト識別レジスタ226をロードするために用いられる。命令のコンテキストクオリファイアフィールドは、レンダリングコンテキストの一部の回復を更に調整することが可能であることことに留意されたい。例えば、テクスチャパレットは回復されることも、そうでないことも可能である。
HW GFX CXT244は、適切な確立メモリ位置からの新しいコンテキストのロードと共に、セットコンテキスト命令250、252からの値をもつアクティブなコンテキスト識別レジスタをもたらす。この時点で、対応するリングバッファレジスタ204、206とリングバッファメモリ領域208、210は、新しい確立メモリ位置216、218、220にアクティブなコンテキストをスイッチングした。
上述のように、各々のグラフィックアプリケーションは異なる速度において画像命令を生成することが可能である。同様に、各々の表示装置228、230は、異なる速度で、表示及びその関連する画像を一新することが可能である。一実施形態において、コンテンツマネージャと命令搬送部は、異なる命令ストリーム間の継ぎ目のないスイッチング、異なる表示装置228、252間の継ぎ目のないスイッチング、及び同じ命令ストリーム242における異なるグラフィックアプリケーションに関連するレンダリングコンテキスト間の継ぎ目のないスイッチングをサポートする。
図4は、レンダリングされる各々の独立画像間のグラフィックレンダリングエンジンの使用を割り当てるために時間アロケータの実施形態のブロック図を示している。一実施形態において、時間アロケータ400は、裁定及びスイッチングモジュール410、タイマーレジスタ412、ユニットレジスタ414、ユニット時間カウンタ416及び時間スライスカウンタ418を含む。一実施形態において、時間アロケータ400は、1つのグラフィックレンダリングエンジンの使用を割り当てるために、経過時間の基準と公平使用の基準を提供する。一実施形態において、時間アロケータ400は、複数の表示装置(図示せず)、各々がそれ自身の命令ストリーム413を有する複数のグラフィックアプリケーションプログラム、及び1つの命令ストリーム413における複数のグラフィックアプリケーションプログラムの間の独立画像をレンダリングするためにグラフィックレンダリングエンジン411を割り当てることが可能である。
第1リングバッファレジスタ402及び第2リングバッファレジスタ404のような各々のリングバッファレジスタはタイムスライシングされることが可能であるか、又は、リングバッファレジスタは第3リングバッファレジスタ206のようにタイムスライシングされない。後に説明するように、各々の非タイムスライスレジスタは、グラフィックレンダリングエンジン411の使用を一時的に独占するライブビデオのような優先度の高いグラフィック画像のために用いられることが可能である。
各々のタイムスライスリングバッファレジスタ402、404は、他のタイムスライスリングバッファへのスイッチングがチェックされるべきであることが示される前に実行される命令実行の所望の持続時間を特定するTIME_SLICEレジスタ420、422をそれに関連させる。一実施形態において、リングバッファレジスタ402、404におけるタイムスライスフィールド420、422は、この特定のリングバッファレジスタ402,404に一致する必要があるグラフィックレンダリングエンジン411を使用する割合を特定するために存在する。タイムスライスフィールド420、422は又、この特定のリングバッファレジスタ402,404に一致する必要があるグラフィックレンダリングエンジン411を使用する最小の絶対時間を特定することが可能である。一実施形態において、命令実行の好適な持続時間は、タイムユニットにおいてプログラムされることが可能である。一実施形態において、ドライバソフトウェア424は、各々のタイムスライスフィールド420、422にこれらのタイムユニット値を書き込むことが可能である。このようにして、ドライバソフトウェア424は、各々のタイムスライスリングバッファレジスタ420、422に当てられる絶対時間と相対時間の両方を制御することが可能である。CPU440は、メモリ442のようなメモリからドライバソフトウェア424にアクセスする。
ユニットレジスタ414は、ドライバソフトウェア424により用いられるタイムクアンタムを前方互換ユニットタイムに提供する。ユニットタイムクアンタムの確立は、実際の装置の時間基準が設定及び/又は実行の間で変化することとなる。一実施形態において、ユニットレジスタ414は、実際の時間基準としてグラフィックドライバ400のコアクロック周期を用いている。ユニットレジスタ414は、グラフィック装置400のためのBIOSファームウェア426によりプログラムされることが可能である。他のタイムスライスパラメータは、ユニットレジスタ414により確立されたこのユニットタイムクアンタムに関連して定義される。ユニットレジスタ414により規定された各々のユニットタイムクアンタムは、例えば、1ユニット時間が50マイクロ秒に等しい又は1ユニット時間が40クロックサイクルに等しいとすることが可能である。
ユニットレジスタ414は又、リングバッファタイムスライシングをオン又はオフにするために、タイムスライスイネーブルビット(T)428を含む。一実施形態において、ユニットレジスタ414のタイムスライスイネーブルビット428が明確であるとき、固定リングバッファの優先度は効力がある。一実施形態において、タイムスライスイネーブルビットが設定されるとき、タイムスライスリングバッファレジスタ間の裁定はタイムスライスフィールド420、422により制御される。
タイマーレジスタ412はタイムスライスのタイミング制御を実行する。タイムスライスイネーブルビット428が設定されるとき、タイムレジスタ412は、各々のリングバッファレジスタ402、404のタイムスライスフィールド420、422位置に書き込まれたユニットの値を読み込む。このモードにおいて、第1リングバッファメモリ領域430のような特定のリングバッファメモリ領域に命令を供給する命令ストリーム413の起動又は再起動は、タイマーカウントダウンフィールド(TC)434が第1リングバッファレジスタ420のような特定のリングバッファのタイムスライスレジスタ420、422位置に内容値と共に初期化されるようにする。タイマーカウントダウンフィールド434は、全てのタイムユニットを減少させる一方、リングバッファメモリ領域からの命令の実行は継続する。
タイムスライスカウンタ418は、タイマーカウントダウンフィールド434に全てのタイムユニットを減少させる。ユニットタイムカウンタ416は、全てのコアクロックサイクルをモニタし且つカウントする。ユニットタイムカウンタ416は、ユニットレジスタ414により規定される確立ユニットタイムクアンタムに基づくタイマーカウントダウンフィールド434を減少させるために、タイムスライスカウンタ418に信号を送信する。
一実施形態において、次のような2つの条件が存在する場合、グラフィクレンダリングエンジン411は、リングバッファメモリ領域からの命令のレンダリングを止め、他のリングバッファメモリ領域からの命令のレンダリングを開始するために、裁定及びスイッチングモジュールから命令を受信する。2つの条件において、タイマーカウントダウンフィールド434が0になる場合、保留中の命令が他のリングバッファメモリ領域に存在する。グラフィックレンダリングエンジン411は、次いで、第2リングバッファメモリ領域432のような他のリングバッファメモリ領域の実行に向けてスイッチングし、これにより、タイマーカウントダウンフィールド434が第2リングバッファレジスタ404のタイムスライスフィールド422におけるコンテンツと共に再初期化されるようにする。このスイッチングは、次の命令の裁定ポイントにおいて生じる。
しかしながら、タイマーカウントダウンフィールド434が0になるとき、第1リングバッファメモリ領域430のような他のリングバッファメモリ領域における保留中の命令がない場合、現リングバッファメモリ領域における命令の実行が継続される。位置実施形態において、現リングバッファメモリ領域における命令の実行は、他のリングバッファレジスタが命令の存在を通信するときまで、いつまでも続く。一実施形態において、第1リングバッファレジスタ402のようなリングバッファレジスタは、ヘッドオフセットフィールド415における値がテールオフセット値417と異なるとき、実行する命令の存在を示す。位置実施形態において、新しい命令の存在は、裁定及びスイッチングモジュール410に通信される。裁定及びスイッチングモジュールは、タイムスライスフィールド402、422において指定された値について現リングバッファメモリ領域において命令の実行を継続し、次いで、新しい命令の実行に向けてスイッチングする。
アクティブなコンテキスト識別レジスタは、裁定及びスイッチングモジュール410によりグラフィックレンダリングエンジン411に、アクティブなリングバッファレジスタ(図示せず)のコンテキスト識別レジスタ値を通信する。
幾つかの機構は、それぞれのリングバッファメモリ領域に記憶された保留中の命令を有する2つのリングバッファレジスタ間のグラフィックレンダリングエンジン411の使用のための裁定プロセスを中断させることができる。上述のように、第3リングバッファレジスタ406のような非タイムスライシングの優先度の高いリングバッファは、タイマーカウントダウン434を中断するために裁定及びスイッチングモジュール410に通信し、現アクティブタイムスライスリングバッファレジスタのための命令をレンダリングすることが可能である。このような中断は、グラフィックレンダリングエンジン411が非タイムスライスリングバッファに関連する現命令のレンダリングを終了するまでの、一時的なものである。
グラフィックアプリケーションソフトウェアからの命令ストリーム413は、グラフィックレンダリングエンジン411の裁定使用を一時的に中断させるための命令を含むことが可能である。例えば、“レジスタをロードせよ”命令423は、それぞれのリングバッファメモリ領域430、432に記憶された保留中の命令を有する2つのタイムスライスリングバッファレジスタ402、422間のグラフィックレンダリングエンジン411の裁定使用を中断することが可能である。ソフトウェアは、タイマーカウントダウンフィールド434をクリアするために“レジスタをロードせよ”命令423を用いることができ、それ故、保留中の命令が他のリングバッファメモリ領域に存在する場合、アクティブなリングバッファレジスタがそのタイムスライスの期間の残りを放棄するように効果的にする。例えば、実行される命令のための時間が、リングバッファレジスタ402、422に一致する絶対最小時間又は特定の使用割合のどちらかを上回ることを予測されないとき、“レジスタをロードせよ”命令423が用いられることが可能である。一実施形態において、第1ストリームに関連する命令が全体のタイムスライス期間を取らない場合、裁定及びスイッチングモジュール410は、保留中の命令を含んでいる他のリングバッファメモリ領域にスイッチングされる。又、例えば、“レジスタをロードせよ”命令423は、グラフィックレンダリングエンジン411が特定の命令シーケンスに関して機能する前に、第2アプリケーションのための保留中の命令が処理されることが可能であるように、きわめて時間を消費する命令又は中断されない命令シーケンスに先立って使用されることが可能である。
上述のように、実行する準備ができている命令をもつ他のリングバッファメモリ領域430、432がない場合、命令の実行は合格した“レジスタをロードせよ”命令423を継続する。他のリングバッファ命令の実行の後、他のリングバッファメモリ領域430、432が実行される命令を有しない場合、グラフィックレンダリングエンジン411は、タイマーカウントダウン434による待ち時間なしにオリジナルのリングバッファの命令に戻るように即座にスイッチングされる。
命令ストリーム413は又、“イベントを待て”命令425を含むことが可能である。“イベントを待て”命令425は、特定の条件が存在するか特定のイベントが生じるまで、この特定の命令ストリーム413からの命令の実行を休止するために用いられることが可能である。“イベントを待て”命令425の実行が休止を結果的にもたらす場合、他のタイムスライスリングバッファレジスタ402、404は、中断中のリングバッファのタイムスライス期間の残りが切れる前であったとしても、グラフィックレンダリングエンジンはそれらの関連する命令を処理することを可能にする。例えば、“イベントを待て”命令425は、ビデオ捕捉イベントを待つために用いられることが可能である。表示装置は、表示装置の表示スクリーンの垂直最上部からスクリーンの垂直下部までいくとき、画像を表示するためにそれらの命令を用いる必要がある。このように、グラフィックレンダリングエンジン411は、表示スクリーン上の完全な画像のための命令全てをレンダリングし、移行期間が垂直最上部から垂直下部までの間に切れるまで、表示装置のためにそれ以上命令をレンダリングすることはない。グラフィック装置400がそのようなイベントが生じることを待っている間に、“イベントを待て”命令425は、グラフィクレンダリングエンジン411が現表示装置のために生じる非同期性イベントを待っている間に異なる表示装置に関連する他のタイムスライスリングバッファメモリ領域の処理を再度可能にするようにする。非同期性イベントは、ビデオ捕捉イベントのように、規則的なインターバル又は時間と調和するようにして起こらないイベントである。一実施形態において、非同期性イベントは、ランダムに又は命令ストリームの実行に関係ないインターバルで起こる。例えば、表示装置の垂直のブランクイベント、非同期イベントは、実際には、現実世界の時間における規則的なインターバル(即ち60Hz)で起こるが、命令ストリーム413の実行に関する不規則なサービス時間に対して非同期である。
図5及び図6は、1つのグラフィックレンダリングエンジンを用いる複数の表示装置上の複数の画像をレンダリングするためのプロセスの実施形態のフロー図を示している。命令ストリームは、1つ又はそれ以上のグラフィックアプリケーションから命令搬送部に命令ストリームが命令を運ぶとき、そのプロセスを始める。
ブロック505において、リングバッファレジスタにより規定される第1リングバッファメモリ領域は、複数のグラフィックアップリケーションプログラムか又は1つのグラフィックアプリケーションプログラムにより、命令を受信する。第1リングバッファメモリ領域の位置及びサイズは、第1リングバッファレジスタに含まれるプログラマブルコンテンツにより規定されることが可能である。命令搬送部は、1つ又はそれ以上のリングバッファレジスタ又は類似した装置を含むことが可能である。
ブロック510においては、ドライバは、第1リングバッファメモリ領域に画像を表示する命令を記憶する。一実施形態において、対応するリングバッファレジスタにおけるテールオフセットフィールドは、第1リングバッファメモリ領域に含まれる保留中の命令の存在を示すためにドライバにより変化される。第1リングバッファレジスタは、グラフィックレンダリングエンジンと裁定及びスイッチングモジュールに、実行される命令の存在を知らせる。
ブロック515においては、命令搬送部は、グラフィックレンダリングエンジンのために第1リングバッファメモリから命令を持ってくるようにDMAエンジンを用いる。裁定及びスイッチングモジュールは、グラフィックレンダリングエンジンが命令を処理するメモリとして、第1リングバッファメモリを設定する。
ブロック520においては、グラフィックコンテキストマネージャが第1リングバッファレジスタに関連する現レンダリングを設定する。
ブロック525においては、一実施形態において、グラフィックレンダリングエンジンにより処理される第1(現)画像が、次に処理される第2(次の)画像と異なるレンダリングコンテキストを有する場合、次のようなことが生じる。グラフィックコンテキストマネージャは第1画像に関連するレンダリングコンテキストを記憶し、グラフィックレンダリングエンジンに第2画像に関連するコンテキストを回復させる。グラフィックコンテキストマネージャは、確立メモリ位置のような第2メモリ領域における特定のグラフィックアプリケーションからの画像に関連するレンダリングコンテキストを表す状態変数値を記憶し且つ回復させる。第2メモリ領域は、コンテキスト識別レジスタのような第2レジスタに含まれるプログラマブルコンテンツにより規定されることが可能である。
ブロック530において、グラフィックレンダリングエンジンは、第1リングバッファメモリ領域のような打アイ1表示装置に関連するリングバッファメモリ領域からの命令を実行し、第1画像表示メモリ領域に適切な修正を行う。時間アロケータに基づいて、グラフィックレンダリングエンジンは、次いで、第2表示装置に関連する第2リングバッファメモリ領域からの命令の実行を開始することが可能である。一実施形態において、グラフィックレンダリングエンジンは、第1リングバッファメモリ領域を供給する同じ命令ストリーム内に含まれる第2グラフィックアプリケーションからの命令の実行を開始する。このようにして、グラフィックレンダリングエンジンは、第1独立画像に関連する命令と第2独立画像に関連する命令との処理の間に、スイッチングにより交互に変わる。グラフィックレンダリングエンジンは、同じ命令ストリーム内の2つの異なるグラフィックアプリケーションからの命令を処理することにより、又は異なるリングバッファメモリ領域からの処理命令間で、スイッチングすることが可能である。グラフィックレンダリングエンジンは、第2独立画像に関連する命令を処理することを開始する前に、第1独立画像に関連する全ての命令を完全に処理することを待つ必要はないことに留意されたい。
ブロック535において、時間アロケータは、第1独立画像と第2独立画像に関連する命令の間のグラフィックレンダリングエンジンのバランス使用をロードすることが可能である。一実施形態において、時間アロケータは、2つ又はそれ以上の独立画像に関連する命令の間でグラフィックレンダリングエンジンのバランス使用をロードすることが可能である。一実施形態において、時間アロケータは、各々の画像について決定されるグラフィックレンダリングエンジンの絶対最小使用時間と各々の画像について決定される割合とに基づくグラフィックレンダリングエンジンの使用のバランスをとる。時間アロケータは又、グラフィックレンダリングエンジンの即座の使用を要求する優先度の高い画像、並びに、グラフィックレンダリングエンジンの使用割合と絶対最小時間使用とを共有する画像との間でグラフィックレンダリングエンジンの使用のバランスをとることが可能である。
ブロック540において、時間アロケータは、異なるコア周波数で機能する装置と互換性があるタイミング回路においてユニットタイムクアンタムを確立することが可能である。これらのブロックは、任意のセットのシーケンシャル順序の実行を示すことが可能という訳ではないことに留意されたい。例えば、ブロック540は、ブロック505の前に置くことが可能である。
ブロック545において、時間アロケータは、グラフィック装置ドライバからのソフトウェア命令により第2画像に関連する命令に対してグラフィックレンダリングエンジンを用いるために、第1画像に関連する命令のために指定される時間を生成することが可能である。
ブロック550において、時間アロケータは、グラフィックアプリケーションからのソフトウェア命令により第1画像に生じる画像レンダリングイベントを待つ間に、グラフィックレンダリングエンジンが、第2画像に関連する命令を処理するようにすることが可能である。
ブロック555において、グラフィック装置は、1つ又はそれ以上の表示装置上に複数の画像を同時に表示する。
ブロック570において、グラフィック装置は、ブロック505において開始されたプロセスを継続する。
複数の表示装置に1つ又はそれ以上の画像を表示するために1つのグラフィックレンダリングエンジンを用いて1つ又はそれ以上の画像をレンダリングするグラフィック装置の実施形態を示すブロック図である。 中央演算処理装置(CPU)、キャッシュ、メモリ、表示装置及び命令搬送部の実施形態とグラフィックコンテキストマネージャに実施形態を有するグラフィック装置を含むコンピュータシステムの実施形態を示すブロック図である。 リングバッファメモリ領域の実施形態を示すブロック図である。 レンダリングされた各々の独立画像間においてグラフィックレンダリングエンジンの使用を割り当てるための時間アロケータの実施形態を示すブロック図である。 1つのグラフィックレンダリングエンジンを用いて複数の表示装置において複数の画像をレンダリングするための実施形態を示すフロー図である。 1つのグラフィックレンダリングエンジンを用いて複数の表示装置において複数の画像をレンダリングするための実施形態を示すフロー図である。

Claims (27)

  1. 複数の表示装置における表示のために2つ又はそれ以上の独立画像を同時にレンダリングするためのグラフィックレンダリングエンジン;並びに
    前記2つ又はそれ以上の独立画像間で前記グラフィックレンダリングエンジンの使用を裁定するための時間アロケータであって、該時間アロケータは複数のレジスタを有する第1回路を有する、時間アロケータ、第1モジュール及び信号生成回路が、グラフィックアプリケーションからのグラフィック装置命令が第1独立画像について生じる非同期イベントを待つ間に第2独立画像と関連する命令を処理するように前記グラフィックレンダリングエンジンに命令するようにする、時間アロケータ、第1モジュール及び信号生成回路;
    を有する装置であって、
    前記時間アロケータは:
    第1レジスタを有する複数のレジスタであって、該第1レジスタは、前記第1レジスタが前記グラフィックレンダリングエンジンを用いるように裁定プロセスに加わるかどうかを判定するための第1フィールドと、第1命令ストリームからの命令を有するメモリ位置を指し示すための第2フィールドとを有する複数のフィールドを有する、複数のレジスタ;及び
    前記グラフィックレンダリングエンジンを用いるプログラマブル経過期間を設定するための第1モジュール;
    を更に有する、ことを特徴とする装置。
  2. 請求項1に記載の装置であって、前記時間アロケータは:
    前記第1レジスタがプログラマブル経過期間の間に前記グラフィックレンダリングエンジンを用いた後に、第2レジスタが前記グラフィックレンダリングエンジンを用いるようにされる必要があるかどうかをチェックするための信号を生成する第1回路;
    を更に有する、ことを特徴とする装置。
  3. 請求項1に記載の装置であって、前記時間アロケータは:
    第1独立画像に関連する命令を処理するように前記グラフィックレンダリングエンジンに命令する第2モジュールであって、前記命令は第1メモリ領域に記憶され、該第1メモリ領域は複数のフィールドに含まれる情報により規定されるアドレスを有する、第2モジュール;
    を更に有する、ことを特徴とする装置。
  4. 請求項3に記載の装置であって、前記第1メモリ領域は開始と終了を有し、前記第1メモリ領域は前記第1メモリ領域の前記終了から前記第1メモリ領域の前記開始に命令をラップアラウンドすることが可能である、ことを特徴とする装置。
  5. 請求項3に記載の装置であって、前記第1モジュールは:
    前記複数のレジスタにおいてどのレジスタが前記グラフィックレンダリングエンジンにより現在サービスされているかを追跡するための第2回路;並びに
    前記裁定プロセスに加わらない第2レジスタと前記裁定プロセスに加わる前記第1レジスタ及び第3レジスタとの間における前記グラフィックレンダリングエンジンの使用を管理するための第3回路;
    を有する、ことを特徴とする装置。
  6. 請求項1に記載の装置であって、前記第1モジュールは:
    特定のレジスタが前記グラフィックレンダリングエンジンを用いる経過期間を追跡するための第1回路;及び
    前記プログラマブル経過期間を同等のクロックサイクル数に変換するための第2回路;
    を有する、ことを特徴とする装置。
  7. 請求項1に記載の装置であって、前記時間アロケータは:
    グラフィックアプリケーションからのソフトウェア命令を実行するために第1回路であって、前記ソフトウェア命令は第2独立画像に関連する命令に前記グラフィックレンダリングエンジンを用いるように第1独立画像に関連する命令を割り当てられる時間を生成する、第1回路;
    を有する、ことを特徴とする装置。
  8. 請求項1に記載の装置であって
    前記複数の表示装置における第1表示装置及び第2表示装置;
    を更に有する、ことを特徴とする装置。
  9. 請求項1に記載の装置であって
    メモリから前記グラフィックレンダリングエンジンに情報を回復するためのグラフィックコンテキストであって、前記情報は前記グラフィックレンダリングエンジンによりレンダリングされる第1独立画像に関連するレンダリングコンテキストを記述し、前記第1独立画像は前記2つ又はそれ以上の独立画像に含まれる、グラフィックコンテキスト;
    を更に有する、ことを特徴とする装置。
  10. 請求項1に記載の装置であって:
    前記2つ又はそれ以上の独立画像に含まれる1つ又はそれ以上の独立画像のために命令を受信する第1メモリ領域;及び
    前記2つ又はそれ以上の独立画像に含まれる1つ又はそれ以上の独立画像のための命令を受信する第2メモリ領域;
    を更に有する、ことを特徴とする装置。
  11. 請求項1に記載の装置であって:
    前記グラフィックレンダリングエンジンに前記2つ又はそれ以上の画像のための命令を供給するための1つ又はそれ以上の命令搬送部であって、該1つ又はそれ以上の命令搬送部は第1命令搬送部を有する、命令搬送部;
    を更に有する、ことを特徴とする装置。
  12. 請求項11に記載の装置であって、各々の命令搬送部は特定の表示装置に関連している、ことを特徴とする装置。
  13. 請求項11に記載の装置であって、前記第1命令搬送部は:
    命令メモリ領域;
    該命令メモリ領域に対して開始と終了を規定する第1レジスタ;及び
    前記命令メモリ領域から前記グラフィックレンダリングエンジンに前記命令を持っていき且つ供給するためのメモリアクセスエンジン;
    を有する、ことを特徴とする装置。
  14. 請求項11に記載の装置であって、前記命令搬送部は:
    命令ストリームから呼び出すことができる独立した一連の命令を記憶するための第3メモリ;
    を更に有する、ことを特徴とする装置。
  15. 請求項13に記載の装置であって、前記第1レジスタは、前記命令メモリ領域において利用可能である空き領域の量を自動的にレポートするように、周期ベースで詮索メモリ位置に第2フィールドに含まれるコンテンツを書き込むようにグラフィックレンダリングエンジンに命令するための第1フィールドを有する、ことを特徴とする装置。
  16. 第1命令ストリームに関連する命令を実行するために単独のグラフィックレンダリングエンジンを用いる段階;
    記第1命令ストリームに関連する命令による第1独立画像と第2命令ストリームに関連する命令による第2独立画像とを前記単独のグラフィックレンダリングエンジンにより同時にレンダリングする段階;
    前記第1命令ストリームに関連する命令と前記第2命令ストリームに関連する命令との間における前記グラフィックレンダリングエンジンの割り当てを命令するようにグラフィックアプリケーションにより生成されるソフトウェア命令により、前記第1命令ストリームに関連する命令と前記第2命令ストリームに関連する命令との間において前記単独のグラフィックレンダリングエンジンの使用を裁定する段階;並びに
    タイミング機構を用いることにより前記第1命令ストリームに関連する命令と前記第2命令ストリームに関連する命令との間において前記単独のグラフィックレンダリングエンジンの同時使用を割り当てる段階であって、前記タイミング機構は、第1レジスタを有する複数のレジスタを有し、前記第1レジスタは、前記第1レジスタが前記グラフィックレンダリングエンジンを用いるように裁定プロセスに加わるかどうかを判定するための第1フィールド及び第1命令ストリームからの命令を有するメモリ位置を指し示すための第2フィールドを有する複数のフィールドと、前記グラフィックレンダリングエンジンを用いるプログラマブル経過期間を設定するための第1モジュールと、を有する、段階;
    を有することを特徴とする方法。
  17. 請求項16に記載の方法であって:
    第1メモリアドレスから前記グラフィックレンダリングエンジンに情報を回復する段階であって、前記情報は1つの前記グラフィックレンダリングエンジンによりレンダリングされる前記第1独立画像に関連する第1レンダリングコンテキストを記述し、そして第2メモリアドレスに前記第2独立画像に関連する第2レンダリングコンテキストを記述する情報を記憶する段階であって、前記第2独立画像は前記単独のグラフィックレンダリングエンジンによりレンダリングされる、段階;
    を更に有する、ことを特徴とする方法。
  18. 請求項16に記載の方法であって:
    複数の表示装置に1つ又はそれ以上の画像を表示する段階;
    を更に有する、ことを特徴とする方法。
  19. グラフィックレンダリングエンジンにより複数の表示装置における表示のために独立画像を同時にレンダリングする段階;
    レンダリングされた各々の独立画像の間に前記グラフィックレンダリングエンジンの時間使用を割り当てる段階;
    グラフィックアプリケーションからのソフトウェア命令により、第1画像に生じる非同期イベントを待っている間に、前記グラフィックレンダリングエンジンが第2画像に関連する命令を処理するようにする段階;
    第1独立画像に関連する第1レンダリングコンテキストをメモリ領域に記憶し且つ前記メモリ領域から回復する段階;
    を有することを特徴とする方法。
  20. 請求項19に記載の方法であって:
    第1独立画像に関連する第1レジスタが前記グラフィックレンダリングエンジンを用いるように裁定処理に加わるかどうかを判定する段階;
    を更に有する、ことを特徴とする方法。
  21. 請求項19に記載の方法であって:
    グラフィックアプリケーションからのソフトウェア命令により第2独立画像に関連する命令に前記第1独立画像に関連する命令を、前記グラフィックレンダリングエンジンを用いるように割り当てられる時間を生成する段階;
    を更に有する、ことを特徴とする方法。
  22. 請求項19に記載の方法であって:
    第1レジスタに含まれるプログラマブルコンテンツにより前記メモリ領域を規定する段階であって、前記メモリ領域は第1命令ストリームに関連する命令の記憶に対して専用化されている、段階;
    を更に有する、ことを特徴とする方法。
  23. 請求項19に記載の方法であって:
    第1コア周波数で動作する第1装置と適合し、第2コア周波数で動作する第2装置と適合するするタイミング回路においてタイムユニットクアンタムを設定する段階であって、前記第1コア周波数は前記第1コア周波数と異なる、段階;
    を更に有する、ことを特徴とする方法。
  24. 請求項19に記載の方法であって:
    第1周波数において動作する第1装置と互換性があり、そして第2周波数において動作する第1装置と互換性があるタイミング回路においてタイムユニットクアンタムを設定する段階;
    を更に有する、ことを特徴とする方法。
  25. 中央演算処理装置;
    グラフィック装置であって、前記中央演算処理装置は前記グラフィック装置に結合され、前記グラフィック装置は複数の表示装置における表示のために2つ又はそれ以上の独立画像を同時にレンダリングするようにグラフィックレンダリングエンジンを有する、グラフィック装置;及び
    2つ又はそれ以上の独立画像の間の前記グラフィックレンダリングエンジンの使用を裁定するように、複数のレジスタを有する第1回路と、第1モジュールと、信号生成回路とを有する時間アロケータであって、前記第1モジュールは、特定のレジスタが前記グラフィックレンダリングエンジンを用いる経過した時間の期間を追跡し、第2回路は、プログラマブル経過期間を同等のクロックサイクル数に変換する、時間アロケータ;
    を有することを特徴とするシステム。
  26. 請求項25に記載のシステムであって、前記時間アロケータは:
    第1レジスタを有する複数のレジスタであって、該第1レジスタは複数のフィールドを有し、第1フィールドは、前記第1レジスタが前記グラフィックレンダリングエンジンを用いるように裁定プロセスに加わるかどうかを判定し、第2フィールドは、第1命令ストリームからの命令を有するメモリ位置を指し示す、複数のレジスタ;
    を有する、ことを特徴とするシステム。
  27. 請求項26に記載のシステムであって、前記時間アロケータは:
    記グラフィックレンダリングエンジンの使用するプログラマブル経過期間を設定するように前記時間アロケータを有する第1モジュール;
    を更に有する、ことを特徴とするシステム。
JP2003509407A 2001-06-29 2002-06-28 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム Expired - Fee Related JP4383853B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/895,529 US6885374B2 (en) 2001-06-29 2001-06-29 Apparatus, method and system with a graphics-rendering engine having a time allocator
PCT/US2002/020781 WO2003003313A2 (en) 2001-06-29 2002-06-28 Apparatus, method and system with a graphics-rendering engine having a time allocator

Publications (2)

Publication Number Publication Date
JP2004531841A JP2004531841A (ja) 2004-10-14
JP4383853B2 true JP4383853B2 (ja) 2009-12-16

Family

ID=25404642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003509407A Expired - Fee Related JP4383853B2 (ja) 2001-06-29 2002-06-28 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム

Country Status (9)

Country Link
US (2) US6885374B2 (ja)
EP (1) EP1399893A2 (ja)
JP (1) JP4383853B2 (ja)
KR (1) KR100617998B1 (ja)
CN (1) CN100336075C (ja)
AU (1) AU2002322363A1 (ja)
HK (1) HK1066619A1 (ja)
TW (1) TWI242139B (ja)
WO (1) WO2003003313A2 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7219352B2 (en) * 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
US7451457B2 (en) * 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
JP2004171411A (ja) * 2002-11-21 2004-06-17 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びバッファメモリの管理方法
US7643675B2 (en) 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
US7158668B2 (en) * 2003-08-01 2007-01-02 Microsoft Corporation Image processing using linear light values and other image processing improvements
US7436535B2 (en) * 2003-10-24 2008-10-14 Microsoft Corporation Real-time inking
US8060743B2 (en) * 2003-11-14 2011-11-15 Certicom Corp. Cryptographic method and apparatus
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8687008B2 (en) 2004-11-15 2014-04-01 Nvidia Corporation Latency tolerant system for executing video processing operations
US7586492B2 (en) * 2004-12-20 2009-09-08 Nvidia Corporation Real-time display post-processing using programmable hardware
US20060277126A1 (en) * 2005-06-06 2006-12-07 Intel Corporation Ring credit management
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US8817035B2 (en) * 2005-12-21 2014-08-26 Nvidia Corporation Texture pipeline context switch
US8626874B2 (en) * 2006-07-26 2014-01-07 Richard Kaplan Four dimensional (4D) information distribution system and method
JP2008293484A (ja) * 2007-04-27 2008-12-04 Panasonic Corp バッファメモリ共有装置
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
CN101483724B (zh) * 2008-01-11 2012-03-28 新奥特(北京)视频技术有限公司 一种无人值守的分布式多线程字幕渲染和播出方法
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US9736368B2 (en) 2013-03-15 2017-08-15 Spatial Cam Llc Camera in a headframe for object tracking
US10896327B1 (en) 2013-03-15 2021-01-19 Spatial Cam Llc Device with a camera for locating hidden object
US10585344B1 (en) 2008-05-19 2020-03-10 Spatial Cam Llc Camera system with a plurality of image sensors
US20100097444A1 (en) * 2008-10-16 2010-04-22 Peter Lablans Camera System for Creating an Image From a Plurality of Images
US8164655B2 (en) 2008-05-19 2012-04-24 Spatial Cam Llc Systems and methods for concurrently playing multiple images from a storage medium
US10354407B2 (en) 2013-03-15 2019-07-16 Spatial Cam Llc Camera for locating hidden objects
US20110098083A1 (en) * 2008-05-19 2011-04-28 Peter Lablans Large, Ultra-Thin And Ultra-Light Connectable Display For A Computing Device
US9171221B2 (en) 2010-07-18 2015-10-27 Spatial Cam Llc Camera to track an object
US8355042B2 (en) 2008-10-16 2013-01-15 Spatial Cam Llc Controller in a camera for creating a panoramic image
US11119396B1 (en) 2008-05-19 2021-09-14 Spatial Cam Llc Camera system with a plurality of image sensors
US20100023942A1 (en) * 2008-07-23 2010-01-28 Philip Sheu Accelerating virtual machine resume time using a pre-cached working set
US8416282B2 (en) * 2008-10-16 2013-04-09 Spatial Cam Llc Camera for creating a panoramic image
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
KR101108078B1 (ko) * 2010-01-22 2012-01-31 주식회사 에이팩 멀티 유저 컴퓨터의 망 전환 시스템
TWI533286B (zh) 2010-09-06 2016-05-11 元太科技工業股份有限公司 平面顯示裝置
US9075631B2 (en) 2011-10-18 2015-07-07 Blackberry Limited Method of rendering a user interface
EP2584464B1 (en) * 2011-10-18 2020-02-19 BlackBerry Limited Method of rendering a user interface
CN102520937B (zh) * 2011-11-29 2014-10-29 广东威创视讯科技股份有限公司 优化进程间图像渲染的方法
US9384711B2 (en) * 2012-02-15 2016-07-05 Microsoft Technology Licensing, Llc Speculative render ahead and caching in multiple passes
US9286122B2 (en) 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9235925B2 (en) 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
JP5977147B2 (ja) 2012-11-05 2016-08-24 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および入力装置
US9547356B2 (en) 2013-02-28 2017-01-17 Intel Corporation Context aware power management for graphics devices
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
KR102124395B1 (ko) 2013-08-12 2020-06-18 삼성전자주식회사 그래픽스 처리 장치 및 방법
GB2537910B (en) * 2015-04-30 2018-05-23 Displaylink Uk Ltd Managing display data
US10165071B2 (en) * 2016-01-15 2018-12-25 Google Llc Client-side activity monitoring
US9799089B1 (en) 2016-05-23 2017-10-24 Qualcomm Incorporated Per-shader preamble for graphics processing
US9799094B1 (en) 2016-05-23 2017-10-24 Qualcomm Incorporated Per-instance preamble for graphics processing
CN111359220B (zh) * 2020-03-04 2023-06-13 深圳市腾讯网域计算机网络有限公司 游戏广告生成方法、装置和计算机设备
CN115445191A (zh) * 2021-06-08 2022-12-09 宏正自动科技股份有限公司 图像控制装置及图像控制方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0786839B2 (ja) * 1990-02-13 1995-09-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチタスク式データ処理システム
US5644407A (en) * 1990-12-20 1997-07-01 Canon Kabushiki Kaisha Image processing apparatus having a remote communication function
DE69230462T2 (de) * 1991-11-19 2000-08-03 Sun Microsystems Inc Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
FR2705804B1 (fr) * 1993-05-27 1995-08-11 Sgs Thomson Microelectronics Architecture de processeur multi-tâches.
US6396504B1 (en) 1994-04-29 2002-05-28 Sun Microsystems, Inc. Graphical image data reformatting method and apparatus
JPH10502181A (ja) * 1994-06-20 1998-02-24 ネオマジック・コーポレイション メモリインタフェースのないグラフィックスコントローラ集積回路
US5880737A (en) * 1995-08-04 1999-03-09 Microsoft Corporation Method and system for accessing texture data in environments with high latency in a graphics rendering system
US5740343A (en) * 1995-11-03 1998-04-14 3Dfx Interactive, Incorporated Texture compositing apparatus and method
US6311204B1 (en) * 1996-10-11 2001-10-30 C-Cube Semiconductor Ii Inc. Processing system with register-based process sharing
JP3763136B2 (ja) * 1996-12-27 2006-04-05 ソニー株式会社 描画方法および描画装置
US5940086A (en) * 1997-01-10 1999-08-17 Hewlett Packard Company System and method for dynamically allocating data among geometry accelerators in a computer graphics system
US5969726A (en) * 1997-05-30 1999-10-19 Hewlett-Packard Co. Caching and coherency control of multiple geometry accelerators in a computer graphics system
US6188381B1 (en) * 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
US6124868A (en) * 1998-03-24 2000-09-26 Ati Technologies, Inc. Method and apparatus for multiple co-processor utilization of a ring buffer
US6092124A (en) * 1998-04-17 2000-07-18 Nvidia Corporation Method and apparatus for accelerating the rendering of images
US6252610B1 (en) * 1998-05-29 2001-06-26 Silicon Graphics, Inc. Method and apparatus for efficiently switching state in a graphics pipeline
US6157393A (en) * 1998-07-17 2000-12-05 Intergraph Corporation Apparatus and method of directing graphical data to a display device
US6252600B1 (en) * 1998-10-02 2001-06-26 International Business Machines Corporation Computer graphics system with dual FIFO interface
US6339427B1 (en) * 1998-12-15 2002-01-15 Ati International Srl Graphics display list handler and method
US6392655B1 (en) * 1999-05-07 2002-05-21 Microsoft Corporation Fine grain multi-pass for multiple texture rendering
US6289421B1 (en) * 1999-05-21 2001-09-11 Lucent Technologies, Inc. Intelligent memory devices for transferring data between electronic devices
US6362828B1 (en) * 1999-06-24 2002-03-26 Microsoft Corporation Method and system for dynamic texture replication on a distributed memory graphics architecture
US6353439B1 (en) 1999-12-06 2002-03-05 Nvidia Corporation System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline

Also Published As

Publication number Publication date
TWI242139B (en) 2005-10-21
US7164427B2 (en) 2007-01-16
EP1399893A2 (en) 2004-03-24
HK1066619A1 (en) 2005-04-22
CN1520579A (zh) 2004-08-11
AU2002322363A1 (en) 2003-03-03
US20050174354A1 (en) 2005-08-11
WO2003003313A2 (en) 2003-01-09
KR100617998B1 (ko) 2006-09-12
US6885374B2 (en) 2005-04-26
CN100336075C (zh) 2007-09-05
WO2003003313A3 (en) 2003-10-30
KR20040015757A (ko) 2004-02-19
JP2004531841A (ja) 2004-10-14
US20030001847A1 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
JP4383853B2 (ja) 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
US7173627B2 (en) Apparatus, method and system with a graphics-rendering engine having a graphics context manager
US6470376B1 (en) Processor capable of efficiently executing many asynchronous event tasks
JP3681026B2 (ja) 情報処理装置および方法
US11164357B2 (en) In-flight adaptive foveated rendering
US6252600B1 (en) Computer graphics system with dual FIFO interface
US20090160867A1 (en) Autonomous Context Scheduler For Graphics Processing Units
US7369134B2 (en) Methods and systems for multimedia memory management
JP2010050970A (ja) 中央処理装置と画像処理装置との間で通信するための機器および方法
KR20230109663A (ko) 선택적 우선순위 기반 2-레벨 비닝에 의한 처리 시스템
JP4011082B2 (ja) 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
WO2002071218A2 (en) Method of and system for withdrawing budget from a blocking task
JP4318664B2 (ja) 情報処理装置およびタスク実行方法
US7577762B1 (en) Cooperative scheduling for multiple consumers
EP4039345A1 (en) Data processing system, data processing method, and computer program
WO1999040518A1 (en) Method and apparatus to synchronize graphics rendering and display
US10423424B2 (en) Replicated stateless copy engine
US20220261952A1 (en) Data processing system, data processing method, and computer program
JP2001337912A (ja) 描画プロセッサおよび描画処理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070613

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071009

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071119

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071207

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: 20090924

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

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

LAPS Cancellation because of no payment of annual fees