JP5670723B2 - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP5670723B2
JP5670723B2 JP2010290646A JP2010290646A JP5670723B2 JP 5670723 B2 JP5670723 B2 JP 5670723B2 JP 2010290646 A JP2010290646 A JP 2010290646A JP 2010290646 A JP2010290646 A JP 2010290646A JP 5670723 B2 JP5670723 B2 JP 5670723B2
Authority
JP
Japan
Prior art keywords
buffer
data
address
index
input
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.)
Active
Application number
JP2010290646A
Other languages
English (en)
Other versions
JP2012137984A (ja
Inventor
カザコフ マキシム
カザコフ マキシム
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.)
Digital Media Professionals Inc
Original Assignee
Digital Media Professionals Inc
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 Digital Media Professionals Inc filed Critical Digital Media Professionals Inc
Priority to JP2010290646A priority Critical patent/JP5670723B2/ja
Publication of JP2012137984A publication Critical patent/JP2012137984A/ja
Application granted granted Critical
Publication of JP5670723B2 publication Critical patent/JP5670723B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は,複数のシェーダステージを通じて3D画像の処理を行う画像処理装置に関する。
近年,ゲームやカーナビゲーションなどにおいては,立体的に描画を行う三次元の画像表示が普及している。三次元の画像表示は,例えばプログラマが画像生成アルゴリズムを定義するシェーダステージが組み込まれた画像処理に特化したプロセッサを搭載したグラフィック処理チップなどにより実現されている。
グラフィック処理チップで三次元の画像表示を行う方法としては,CPU側で処理を行うほか,グラフィック処理チップにおいて実装されたシェーダステージをプログラム可能に構成し,各シェーダステージを通じて最終的にレンダリングされるオブジェクトに対して処理を行うようになっている。シェーダの具体的な例としては,頂点に対して処理を行う頂点シェーダや,プリミティブを構成する頂点数を増減する処理を行うジオメトリシェーダなどを含みこのような画像処理装置の例としては例えば,特許文献1に開示されている。
特開2009−288990号公報
しかしながら,上述のように複数のシェーダステージを通じて処理が行なわれる画像処理装置の場合,各シェーダステージにおいて入力,及び出力されるデータの形式が異なることから,同時に異なるシェーダステージからデータを利用したい場合などは各シェーダ毎にデータを最適化する処理が必要であった。また,ジオメトリシェーダにおいては,プリミティブの頂点数の増減が行なわれ,出力される頂点数がいくつになるのかは,処理が開始されるまでは把握することができないため,共通のバッファでの記録を行う場合は,ジオメトリシェーダでの処理が完了するまで他のシェーダからの書き込みをできなくするなどの処理が必要であり,処理の複雑化の原因となっていた。
そこで,本発明は,複数種類のシェーダステージを含んだ画像処理装置において,シェーダプロラムにおける入出力データをより簡易な形で管理することを目的とする。
上記課題を解決するために本発明は,オブジェクトを構成する頂点又はプリミティブに対して幾何学的な画像処理を行うパイプラインが,複数種類のシェーダステージから構成されている画像処理装置にあって,シェーダステージに入力される頂点データの物理メモリにおけるアドレスが記憶される入力アドレスバッファと,入力アドレスバッファ上のアドレスを記録し,当該アドレスの並びがプリミティブに属する頂点データの順列を維持した態様となる入力インデックスバッファと,シェーダステージにおいて処理がなされて出力された頂点データの物理メモリにおけるアドレス,及び当該頂点データに対する処理が完了しているか否かを示すライフタイム情報が記録される出力アドレスバッファと,出力アドレスバッファ上のアドレスを記録し,当該アドレスの並びがプリミティブに属する頂点データの順列を維持した態様となる出力インデックスバッファと,シェーダステージにおいて処理が行われる頂点データの入力インデックスバッファ及び出力インデックスバッファにおけるアドレス同士の対応関係が記録されるタスクキューと,出力データのための記録領域の割り当てを行うインデックストランスレータとを備えている。
このインデックストランスレータは入力インデックスバッファの解析を行い,同インデックスバッファ上の入力データが既にシェーダステージにおいて処理が実行されたか否かの判定を実施し,当該判定により,処理がまだ実行されていない場合には,入力データのシェーダステージにおける処理結果である出力データが記録される記憶領域を,出力アドレスバッファ,及び出力インデックスバッファに割り当てる工程と,入力データの入力インデックスバッファ上のアドレスと,これに対応する出力データが記憶されるために割り当てられた出力インデックスバッファ上のアドレスとの対応関係をタスクキュー上に記憶させる工程と,を実行し,出力インデックスバッファ,及び出力アドレスバッファにおける出力データは,処理が行なわれたシェーダステージの下流工程にある別のシェーダステージへの入力データとしてそれぞれ再利用される
また,シェーダステージにおける処理が終了後に当該タスクキューに記憶された入力インデックスバッファのアドレスを参照して,該当する入力インデックスバッファに記憶された入力データを解放する方式も採用可能である。
更には,入力インデックスバッファ,又は出力インデックスバッファは頂点データから構成されるプリミティブの先頭に同配列のサイズを示すサイズデータが記憶されており,同サイズデータは当該プリミティブ列を構成するインデックス値がフェッチされるごとに,1ずつ減少され同サイズ値が0となった際に同プリミティブ列からのフェッチが完了されるようにしてもよい。
本発明によれば,シェーダプロラムにおける入出力データをより簡易な形で管理することができる。
図1は,本発明のコンピュータグラフィックスシステムの概略構成を示すブロック図である。 図2は,コンピュータグラフィックスシステムに搭載されたグラフィック処理チップの概略構成を示すブロック図である。 図3(a),(b)は,頂点バッファ及びインデックスバッファのデータ構造を示す概略図である。 図4は,記録領域のデータ構造を示すブロック図である。 図5は,インデックストランスレータがデータを処理する手順を示した動作図である。 図6は,インデックストランスレータがデータを処理する手順を示した動作図である。 図7は,インデックストランスレータがデータを処理する手順を示した動作図である。 図8は,インデックストランスレータがデータを処理する手順を示した動作図である。
以下,発明を実施するための形態について説明する。本発明は,以下に説明する実施態様に限定されるものではない。本発明は,以下に説明する実施態様から当業者に自明な範囲で適宜修正される範囲を含む。
図1は,画像処理装置であるコンピュータグラフィックスシステム100の1つの実施形態の模式ブロック図である。図示されているコンピュータグラフィックスシステム100は,DMAユニット130とグラフィックス処理ユニット(GPU)140を含んでいる。コンピュータグラフィックスシステム100はまた,GPU140に結合された表示装置170も含む。更に,DMAユニット130はメモリインタフェース110を介してホストメモリ装置120に結合されている。このGPU140には,チップ上に設けられたオンチップメモリ150と,頂点やプリミティブ,ピクセル等に対して各種のシェーダ処理を行うシェーダパイプライン160とが設けられている。図示されているコンピュータグラフィックスシステム100はある構成要素部品を示しているが,コンピュータグラフィックスシステム100としては構成要素を適宜変更することもできる。
このコンピュータグラフィックスシステム100は対象物をモデル化し,モデル化された対象物を表示装置170上に表示するように構成される。対象物は3つの頂点と,この3つの頂点を接続する3つのエッジまたは辺を有する三角形のような多角形によりモデル化されることがよくある。また,三角形以外にもその他の多頂点形のプリミティブを扱うことも可能である。
対象物はこれらの三角形や多頂点形のプリミティブを1〜数万個組み合わせることによりモデル化できる。対象物をモデル化するために,コンピュータグラフィックスシステム100は各プリミティブの頂点を格納および参照できる。
1つの実施形態において,DMAユニット130は,シェーダパイプライン160に対して供給するコマンドストリームと種々のDMA頂点ストリームの入力トラフィックを制御する。DMAユニット130は,ホストメモリ120に記憶されている頂点情報をフェッチし,これをグラフィック処理チップ140上のオンチップメモリ150に転送する。この転送された頂点データは,シェーダパイプライン160において含まれる頂点シェーダ(図2に示す)において処理されることから,転送の際に頂点シェーダに入力するための要素組み立ても行う。ホストメモリ120には,頂点を記録するデータ領域として頂点バッファ121と,インデックスバッファ122とが設けられている。
図2は,GPU140の詳細の構成を示したブロック図である。シェーダパイプライン160には,頂点シェーダ161,ジオメトリシェーダ162,ラスタライザ163,ピクセルシェーダ164が含まれている。頂点シェーダ161は頂点の集合に対して作用し,位置,色,テクスチャマッピング座標といった頂点の属性を参照・変更可能である。頂点シェーダ161で計算された頂点は通常はジオメトリシェーダ162に渡されるか,そのままピクセルシェーダ164に渡される。
ジオメトリシェーダ162は,ラスタライザ163やピクセルシェーダ164に渡されるオブジェクト内の頂点の集合を加工するために使用される。ジオメトリシェーダ162では実行時に頂点数を増減させることが可能となる。この場合,入力されるプリミティブに属する頂点の数が出力されるプリミティブでは変更されることもありうる。このような頂点数が変わるプリミティブを可変長サイズのプリミティブと称する。また,ジオメトリシェーダ162では,複数のステージを通じて処理が行われる場合も存在する。すなわち,一度ジオメトリシェーダ162にて処理を行われたプリミティブが,キャッシュに保存され,再度ジオメトリシェーダ162に入力されるような処理である。
ラスタライザ163は,頂点によって構成されるプリミティブ情報からフラグメントを生成する。各フラグメントには位置情報だけではなく法線やテクスチャ座標などの情報も付随する。このラスタ化されたフラグメントは次ぐピクセルシェーダ164に入力され,基本的には頂点シェーダ161からの情報を元にテクスチャを合成したり表面色を適用したりする。
これをプログラミングし,グラフィック処理チップ140で実行することにより,バンプマッピング等のより高度なエフェクトを それをCPUですべて実行するよりもはるかに高いパフォーマンスで実現することができるようになる。なお,ラスタライザ163とピクセルシェーダ164は一体に構成することもできる。また,これらの各シェーダステージは個別に構成するのではなく,統合型のユニファイドシェーダとして構成することも可能である。
シェーダパイプライン160には,シェーダスケジューラ165,及びインデックストランスレータ166が設けられている。シェーダスケジューラ165は,各シェーダステージに対して処理タスクの割り当てを行う他,シェーダステージから処理が完了した旨の命令セットを受け,後述するインデックストランスレータ166に対して入力データ用に割り当てられていた記憶容量の割当の解放と,出力データを記録する際に次のシェーダステージにて出力データを利用可能であることを示すフラグのセットとを行う。
インデックストランスレータ166は,各シェーダステージに入力される入力シーケンスを読み取って,これらを組み立ててシェーダステージに入力されるフォーマットへと変換する。また,シェーダステージからの出力データに対して各記憶領域におけるメモリの割り当てを行い,出力データの記録先をあらかじめ確保する。また,シェーダステージにおけるある入力データに対する処理状況をシェーダスケジューラ165と逐次情報をやり取りすることで把握し,その入力データのライフタイム情報を更新する作業も担当する。
オンラインチップ150には,様々なデータ用のバッファが設けられている。例示すると,物理的な記録領域であり頂点データ自体が記録される物理メモリ151の他,アドレスバッファ152,インデックスバッファ153,タスクキュー154などのデータ構造が設けられている。
物理メモリ151は,頂点データの座標データ,オフセット値,属性データ,ベクトルデータ等の情報が,1つの頂点データ毎に1つの物理アドレスが割り当てられる形で記録される。
アドレスバッファ152は,物理メモリ151に記録された頂点データへの参照データとして,物理メモリ151上の物理アドレスが記録される。またこの物理アドレスと関連付けられて,そのデータのライフタイム情報が記録される。ライフタイム情報とは上述したインデックストランスレータ155によって記録・更新されるものであり,そのデータを再利用するか否か,記録領域の割り当てを解除するか否か等を判断するための情報である。
インデックスバッファ153は,シェーダステージへ入力されるデータ項目をシーケンシャルに取り扱う。インデックスバッファ153は,プリミティブを構成する頂点データの配列が記録され,頂点の並び順に沿って頂点のアドレスバッファ152におけるアドレス情報が記録される。このインデックスバッファ153は,ホストメモリ120において設けられたインデックスバッファ122とは異なり,シェーダステージごとに最適化された形でデータが記憶される。
また,タスクキュー154には,各パイプラインにて処理が行われる入力データと出力データのインデックスバッファ153における参照値が記録される。
図3では,ホストメモリ120における頂点バッファ121,及びインデックスバッファ122のデータ構造を示したブロック図である。インデックスバッファ図3(a)の場合では,複数の三角形からなるプリミティブ201が頂点バッファ121とインデックスバッファ122に記憶された頂点データにより表されている。頂点バッファ121においては,V0〜VNのN個の頂点データが記録されている。インデックスバッファ122においては,プリミティブ201が三角形を単位に配列として記録されていき,「0,1,2」「2,1,3」「2,3,4」の頂点からなる三角形と「3,1,5」「3,5,6」の2つの三角形に分割された四角形の単位で記録されている。インデックスバッファ122においては,3つの頂点の単位で頂点バッファ121への参照が記録されていく。また,他のインデックスバッファ122における記録の仕方としては図3(b)に図示される。図3(b)においては,プリミティブ202の配列情報は隣接する三角形のうち共通する2点の頂点については,再度インデックスバッファ122に記録せずに,異なる頂点データへの参照値のみが記録されていく。この場合,インデックスバッファ122の記録容量を抑制することができるため,オブジェクトの形状によっては有利に働く。
続いて,図4においてこの各バッファのデータ構造の詳細を説明する。図4に示されるように,物理メモリ151,アドレスバッファ152,インデックスバッファ153,タスクキュー154が示されている。なお,アドレスバッファ152は,頂点シェーダ11とジオメトリシェーダ12ではデータ構造が異なることから,異なる態様を示している。
タスクキュー154には,入力リファレンス用の記憶領域と出力リファレンス用の記憶領域とが設けられており,これらは一対一で対応している。この各リファレンス用の記憶領域に入力される値は,入力データが記憶されるインデックスバッファ153と出力データが記憶されるインデックスバッファ153のそれぞれのアドレスが入力されている。すなわち,タスクキュー154を参照することにより,入力データが記憶されるインデックスバッファ153における位置と,出力データが記憶されるインデックスバッファ153における位置との対応関係を把握可能になるのである。なお,頂点シェーダ161においては,入力頂点数と出力頂点数とは同じ数であるため,頂点数だけ対応関係が記録される。一方,ジオメトリシェーダ162の場合は,入力されたプリミティブの頂点数の増減が行われることから,タスクキュー154に記録される対応関係は異なることとなる。具体的には,ジオメトリシェーダ162において頂点数が3から1に減少される場合は,タスクキュー154には,「0→0」,「1→0」,「2→0」の3つの関連が記録されることとなる。
インデックスバッファ153は,アドレスバッファ152のアドレスへの参照値である頂点インデックス値がシーケンスで記録されるとともに,このシーケンスの先頭データの位置に,プリミティブのサイズを記録するために入力サイズが記録される領域が設けられている。この入力サイズのための記録領域が設けられることで,インデックスバッファ153の開始位置とサイズを把握可能となるため,プリミティブに属する頂点を識別することが可能となる。この入力サイズを参照することで,インデックスバッファ153から頂点データをフェッチしていく際には,入力サイズを参照し,データを1フェッチするごとにこの入力サイズの値が記録されたカウンタの値がマイナスされ,0になった際に
アドレスバッファ152は,頂点シェーダ161の入出力データが記録される場合は,頂点データが記録されている物理メモリ151のアドレスのほか,DMAユニット130によってパイプライン160に転送される前のホストメモリ120におけるインデックスバッファ122の値(以下,「オリジナルインデックス」とする)が記録される。また,アドレスバッファ152には,参照カウントが記録される。この参照カウントは,その頂点データがどれだけのプロセスによって参照されているかを示す値であり,参照される処理が増えると+1され,参照が解除されると−1される。この参照カウントが0になった場合には,このキャッシュされている頂点データを削除可能であることを示すものである。この参照カウントもライフタイム情報を構成する要素である。
また,ジオメトリシェーダ162の入出力データが記憶されるアドレスバッファ152の場合には,頂点データが記録されている物理メモリ151のアドレスが記録される。ジオメトリシェーダ162で処理がされる場合においては,頂点シェーダ161のときのようにオリジナルインデックスや参照カウントなどの値は記憶されずに,プリミティブIDが記録される。プリミティブIDは,頂点データが属するプリミティブを識別する値であり,キャッシュにプリミティブのジオメトリシェーダ162における処理結果を記録する際にもそのキーとして利用される。したがって,このアドレスバッファ152では,このプリミティブIDを参照することで,そのプリミティブが既に処理が行われているか否か,他のシェーダステージでの処理が行なわれうるか否かを判別することができ,データのライフサイクルを管理するライフタイム情報として利用可能である。
続いて,このようなシェーダパイプライン160における実際の頂点,及びプリミティブの処理の流れを,図5〜図8を通じて説明する。
図5に示されている各バッファのうち頂点バッファ121,及びインデックスバッファ122はホストメモリ120上に設けられている。頂点バッファ121,及びインデックスバッファ122においては,その記憶領域の一部のみ,具体的には0〜3のアドレスに記憶されたデータが示されている。頂点バッファ121には,頂点V4,V5,V6,V7の頂点のデータが記録されており,インデックスバッファ122はこの頂点バッファ122のアドレスへの参照値が配列として記録されている。頂点バッファ121,及びインデックスバッファ122に記録されたデータは,DMAユニット130,及びDMAインデックストランスレータ131によって,頂点入力アドレスバッファ152a,頂点入力インデックスバッファ153a,物理メモリ(図示せず)にそれぞれ転送される。この転送の際に,データの記録構造は,シェーダステージに対応した形に適宜変更される。DMAインデックストランスレータ131は,この転送の際に各バッファにおける記録領域の割当を行う。具体的には,インデックスバッファ122に記録されているプリミティブのサイズ情報をフェッチし,このサイズ情報から出力側に必要な記録領域の容量を把握し,割当を行う。この処理を通じて,頂点入力アドレスバッファ152aには,「V4,V5,V6,V7」のオリジナルインデックスが記録される。また,頂点入力インデックスバッファ153aには,「1,3,0,1」の頂点入力アドレスバッファ152aのアドレスへの参照値が記録される。「1」は頂点入力アドレスバッファ152aにおいては頂点「V5」を,「3」は頂点入力アドレスバッファ152aにおいては頂点「V7」を,「0」は頂点入力アドレスバッファ152aにおいては頂点「V4」をそれぞれ参照している。
続いて,図6では,続く頂点シェーダ161に対して各頂点データが渡され,その処理結果が出力側のバッファに記録されていく手順を示している。ここでは,一つ目の頂点に対して処理が行われ,バッファに記録される態様が示されている。まずは,頂点入力インデックスバッファ153aから取得した頂点データが既に出力側のアドレスバッファに記録されているか否かを判定する。この頂点データが存在しない場合は,頂点シェーダ161において頂点V5に対する処理が行なわれ際に,頂点インデックストランスレータ166aは各バッファへの記録領域の割り当てを行う。この時まずは,頂点入力インプットバッファ171をフェッチし,このプリミティブに含まれる頂点数を入力サイズから把握する。このプリミティブは3つの頂点から構成されているため,頂点出力アドレスバッファ152bには3つのアドレス0〜2が割り当てられる。また,この時物理アドレス151にも同様に記憶領域が割り当てられる。そして,頂点出力アドレスバッファ152bには,頂点V5の物理メモリ151上のアドレスと,頂点V5への参照が記録されたオリジナルインデックスとがアドレス「2」に記録される。次いで,頂点入力インデックスバッファ153bにこの頂点出力アドレスバッファ152bのアドレスに対する参照がアドレス「0」に記録される。
次いで,図7において,この頂点インデックストランスレータ166aは,VSタスクキュー154aに頂点入力インデックスバッファ153aにおけるアドレスと,頂点出力インデックスバッファ153bにおけるアドレスとの対応関係を記録する。ここでは,この頂点は双方ともアドレス「0」に記録されていることから「0→0」と記録される。
このような処理を繰り返すと,図8に示された状態となり,頂点出力アドレスバッファ152b,頂点出力インデックスバッファ153b,VSタスクキュー154aに各データが記録される。なお,頂点V5においては,既に一度処理が行なわれていることから,前述した頂点データが既に出力側のアドレスバッファに記録されているか否かの判定の結果,このデータがキャッシュされているため,頂点出力アドレスバッファ152bのアドレス「2」を再度参照する値が記録される。この記録されたバッファ上のデータは続くジオメトリシェーダ162等への入力値として利用される。以降のジオメトリシェーダ162,ラスタライザ163,ピクセルシェーダ164においても同様の処理が繰り返される。
以上の実施形態において示された本発明に係る画像処理装置の作用,及び効果を以下に示す。
本発明では,シェーダステージ毎に記録領域が分けられており,それぞれに物理メモリ151に記録された頂点データへの物理アドレスを記録するアドレスバッファ152と,このアドレスバッファ152への参照値をシーケンスに記録したインデックスバッファ153とを備えている。そして,シェーダステージ毎に設けられたインデックストランスレータ166が,プログラム毎に異なるデータに必要な記録領域の割り当てを行うことができる。具体的には,例えば頂点シェーダ161のステージは,アドレスバッファ152に参照カウント及びオリジナルインデックスを記録するが,ジオメトリシェーダ162のステージではプリミティブIDを記録する。こうしたシェーダステージ毎の違いを吸収し,記録領域の効率的な利用を実施することができる。
また,インデックストランスレータ166は,シェーダステージ間での処理やデータのやり取りを行うことで,シェーダ内だけではなく,シェーダ間のやり取りも含めてその結果をライフタイム値に反映することでき,以降のプロセスにて使用されなくなったデータに対するバッファの割当を解除することで,記録領域を効率的に使用することができるようになる。
本発明では,物理メモリ151にではなく,アドレスバッファ152にデータの再利用,及び消去を判断するためのライフタイム情報を記録することとした。ライフタイム情報は,シェーダステージ毎にその形式が異なることからデータのサイズも異なってくる。これを,頂点データなどを格納する記録領域と同じ領域に記録するのであれば,サイズの大きい頂点データと同様の記録容量を各データ毎に必要となってくることから,メモリに無駄が生じるが,データサイズの小さいアドレスバッファ152を活用することでメモリ利用効率を向上させることができるようになる。
また,タスクキュー154にインデックスバッファ152の入出力双方のアドレスを記録することで,この該当する頂点が以降のプロセス等でも不要となったときには,このタスクキュー154の値を参照してインデックスバッファ152の領域の割り当てを解除することができるようになる。
本発明は,3Dの画像処理を行う機能を搭載したゲーム機,パチンコ機,携帯電話などに有効である。
100 コンピュータグラフィックスシステム
110 メモリインタフェース
120 ホストメモリ
121 頂点バッファ
122 インデックスバッファ
130 DMAユニット
140 グラフィック処理ユニット
150 オンチップメモリ
151 物理メモリ
152 アドレスバッファ
153 インデックスバッファ
154 タスクキュー
160 シェーダパイプライン
161 頂点シェーダ
162 ジオメトリシェーダ
163 ラスタライザ
164 ピクセルシェーダ
165 シェーダスケジューラ
166 インデックストランスレータ
170 表示装置
201,202 プリミティブ

Claims (3)

  1. オブジェクトを構成する頂点又はプリミティブに対して幾何学的な画像処理を行うパイプラインが,複数種類のシェーダステージから構成されている画像処理装置にあって,
    前記複数種類のシェーダステージ毎に記録領域が分けられており,
    第1のシェーダステージ用の記憶領域は,
    前記第1のシェーダステージに入力される頂点データの物理メモリにおけるアドレスが記憶される入力側のアドレスバッファと,
    前記入力側アドレスバッファ上のアドレスを記録し,当該アドレスの並びが前記プリミティブに属する前記頂点データの順列を維持した態様となる入力側のインデックスバッファと,を有し,
    第2のシェーダステージ用の記憶領域は,
    前記第1のシェーダステージにおいて処理がなされて出力された前記頂点データの前記物理メモリにおけるアドレス,及び当該頂点データに対する処理が完了しているか否かを示すライフタイム情報が記録される出力側のアドレスバッファと,
    前記出力側のアドレスバッファ上のアドレスを記録し,当該アドレスの並びが前記プリミティブに属する前記頂点データの順列を維持した態様となる出力側のインデックスバッファと,
    前記第2のシェーダステージにおいて処理が行われる頂点データの前記入力側のインデックスバッファ及び前記出力側のインデックスバッファにおけるアドレス同士の対応関係が記録されるタスクキューと,を有し,
    出力データのための記録領域の割り当てを行うインデックストランスレータをさらに備え,
    前記インデックストランスレータは
    前記入力側のインデックスバッファの解析を行い,同インデックスバッファ上の入力データが既に前記第2のシェーダステージにおいて処理が実行されたか否かの判定を実施し,
    当該判定により,処理がまだ実行されていない場合には,
    前記入力データの前記第1のシェーダステージにおける処理結果である出力データが記録される記憶領域を,前記出力側のアドレスバッファ,及び前記出力側のインデックスバッファに割り当てる工程と,
    前記入力データの前記入力側のインデックスバッファ上のアドレスと,これに対応する出力データが記憶されるために割り当てられた前記出力側のインデックスバッファ上のアドレスとの対応関係を前記タスクキュー上に記憶させる工程と,
    を実行し,
    前記インデックストランスレータは,さらに,
    前記出力側のアドレスバッファに記録されている前記ライフタイム情報に基づいて,前記出力側のインデックスバッファ及び出力側のアドレスバッファにおける前記出力データを,処理が行なわれた前記第2のシェーダステージの下流工程にある別の第3のシェーダステージへの前記入力データとしてそれぞれ再利用するか,又は当該出力データに対する記憶領域の割り当てを解除するかを判断する
    画像処理装置。
  2. 請求項1に記載の画像処理装置において,
    前記第2のシェーダステージにおける処理が終了後に当該タスクキューに記憶された前記入力側のインデックスバッファのアドレスを参照して,該当する前記入力側のインデックスバッファに記憶された前記入力データを解放する
    画像処理装置。
  3. 請求項1または2に記載の画像処理装置において,
    前記入力側のインデックスバッファ,又は出力側のインデックスバッファは前記頂点データから構成されるプリミティブの先頭にプリミティブのサイズを示すサイズデータが記憶されており,同サイズデータは当該プリミティブを構成するインデックス値がフェッチされるごとに,1ずつ減少され同サイズ値が0となった際に同プリミティブからのフェッチが完了される
    画像処理装置。
JP2010290646A 2010-12-27 2010-12-27 画像処理装置 Active JP5670723B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010290646A JP5670723B2 (ja) 2010-12-27 2010-12-27 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010290646A JP5670723B2 (ja) 2010-12-27 2010-12-27 画像処理装置

Publications (2)

Publication Number Publication Date
JP2012137984A JP2012137984A (ja) 2012-07-19
JP5670723B2 true JP5670723B2 (ja) 2015-02-18

Family

ID=46675336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010290646A Active JP5670723B2 (ja) 2010-12-27 2010-12-27 画像処理装置

Country Status (1)

Country Link
JP (1) JP5670723B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117764808B (zh) * 2023-12-22 2024-09-17 摩尔线程智能科技(北京)有限责任公司 Gpu的数据处理方法、装置及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2610817B2 (ja) * 1985-11-19 1997-05-14 ソニー株式会社 アドレス生成装置
GB2387094B (en) * 2002-03-26 2005-12-07 Imagination Tech Ltd 3-D Computer graphics rendering system
US7259765B2 (en) * 2003-04-04 2007-08-21 S3 Graphics Co., Ltd. Head/data scheduling in 3D graphics
US8111260B2 (en) * 2006-06-28 2012-02-07 Microsoft Corporation Fast reconfiguration of graphics pipeline state
US7692660B2 (en) * 2006-06-28 2010-04-06 Microsoft Corporation Guided performance optimization for graphics pipeline state management
JP4913823B2 (ja) * 2006-11-01 2012-04-11 株式会社ディジタルメディアプロフェッショナル 拡張されたプリミティブの頂点キャッシュの処理を加速する装置

Also Published As

Publication number Publication date
JP2012137984A (ja) 2012-07-19

Similar Documents

Publication Publication Date Title
TWI515716B (zh) 具備緩衝區限制處理的世界空間與螢幕空間管線間之圖元重新排序
JP6309620B2 (ja) 頂点シェーダのフロント・エンドとしてコンピュート・シェーダを使用すること
US7830392B1 (en) Connecting multiple pixel shaders to a frame buffer without a crossbar
US20170206231A1 (en) Tree traversal with backtracking in constant time
CN103810669B (zh) 在统一l2高速缓存中高速缓存经适应性定制大小的高速缓存像素块
US11756256B2 (en) Dedicated ray memory for ray tracing in graphics systems
JP4493626B2 (ja) マルチプロセッサシステム、ライブラリモジュール、および描画処理方法
TWI645371B (zh) 在上游著色器內設定下游著色狀態
TW201432609A (zh) 已分配的拼貼快取
US11532066B2 (en) Reduced bandwidth tessellation factors
TWI633516B (zh) 曲面細分及幾何著色器的功率效率屬性處理
TWI611373B (zh) 路徑著色的最佳化三角形拓撲
US11609791B2 (en) Precise suspend and resume of workloads in a processing unit
CN110223216A (zh) 一种基于并行plb的数据处理方法、装置及计算机存储介质
TWI395152B (zh) 繪圖處理單元及處理邊框顏色資訊之方法
JP5670723B2 (ja) 画像処理装置
JP2019530069A (ja) 並列マイクロポリゴンラスタライザ
US20220206838A1 (en) Adaptive thread group dispatch
JP2011128713A (ja) 画像処理装置および画像処理プログラム
US11900123B2 (en) Marker-based processor instruction grouping
JP5719157B2 (ja) グラフィック演算処理チップ
WO2023129435A1 (en) Cache blocking for dispatches
KR20240121331A (ko) 연속적인 캐시 액세스들을 위한 가변 디스패치 워크

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141218

R150 Certificate of patent or registration of utility model

Ref document number: 5670723

Country of ref document: JP

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