JP2017523499A - タイルベースのレンダリングgpuアーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズム - Google Patents
タイルベースのレンダリングgpuアーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズム Download PDFInfo
- Publication number
- JP2017523499A JP2017523499A JP2016569415A JP2016569415A JP2017523499A JP 2017523499 A JP2017523499 A JP 2017523499A JP 2016569415 A JP2016569415 A JP 2016569415A JP 2016569415 A JP2016569415 A JP 2016569415A JP 2017523499 A JP2017523499 A JP 2017523499A
- Authority
- JP
- Japan
- Prior art keywords
- vertex
- logic
- tile
- supertile
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
タイルベースのレンダリングGPU(グラフィックス処理装置)アーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズムに関連する方法及び装置が説明される。実施形態において、画像の各アトミックタイルに対するプリミティブ交差コスト値が、頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて決定される。他の実施形態もまた開示され、特許請求される。
Description
本開示は、概して、エレクトロニクスの分野に関する。より具体的には、実施形態は、タイルベースのレンダリングGPU(グラフィックス処理装置)アーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズムに関する。
集積回路(IC)の製造技術が向上するにつれて、製造業者は、単一のシリコン基板上に追加的な機能を集積することができる。しかしながら、これらの機能の数が増加するにつれて、単一のICチップ上のコンポーネントの数も増加している。追加的なコンポーネントが追加的な信号スイッチングを増大させると、今度は、より多くの熱を発生させる。追加の熱は、例えば、熱膨張によってICチップに損傷を与え得る。また、追加の熱は、そのような複数のチップを含むコンピューティングデバイスの複数の使用位置及び/又は複数のアプリケーションを制限し得る。例えば、携帯型コンピューティング装置は、バッテリ電源にもっぱら依存し得る。したがって、追加的な機能が携帯型コンピューティング装置に統合されると、電力消費を減らす必要性が、例えば、長期間にわたってバッテリ電源を維持するためにますます重要になる。非ポータブルコンピューティングシステムは、それらのICコンポーネントがより多くの電力を使用し、かつ、より多くの熱を発生するのにともない、冷却及び発電問題にも直面する。
比較的大きな量の電力を使用し、性能に大きく影響を与える傾向にある、あるタイプのコンポーネントが、いくつかの集積回路チップ上に含まれるグラフィックス回路である。したがって、グラフィックス回路の電力消費及び/又は処理を制御することは、システム全体の電力消費及び/又は性能に直接影響を与え得る。
詳細な説明が、添付の複数の図面を参照して提供される。複数の図面において、参照符号の最も左側の数字は、参照符号が最初に現れる図面を識別している。異なる図面において同一の参照符号を用いることにより、類似又は同一の複数の項目を示す。
下記の説明において、様々な実施形態の完全な理解を提供すべく、多数の具体的な詳細が説明される。しかしながら、様々な実施形態が上記の具体的な詳細を利用することなく実施されてよい。他の例において、特定の実施形態を不明瞭にしないように、周知の方法、手順、コンポーネント及び回路が詳細には説明されていない。さらに、複数の実施形態の様々な態様は、半導体集積回路(「ハードウェア」)、1又は複数のプログラム(「ソフトウェア」)にまとめられたコンピュータ可読命令、又は、ハードウェア及びソフトウェアのいくつかの組み合わせのような、様々な手段を用いて実行され得る。本開示の目的のために、「ロジック」への言及は、ハードウェア、ソフトウェア、ファームウェア又はそれらのいくつかの組み合わせのいずれかを意味するものとする。
いくつかの実施形態は、タイルベースのレンダリンググラフィックスロジックのための任意のタイル形状を有する適応可能なパーティションメカニズムを提供する。本明細書に説明されるように、「タイル」は、概して、グラフィックスロジックによる処理(例えば、グラフィックス処理、レンダリング等)の対象となるシーン又は画像フレームの一部を指す。例えば、本明細書にさらに説明されるように、グラフィックスロジックは、GPU(グラフィックス処理装置)、又は、画像、フレーム、シーン等を操作する(複数の)処理のような(複数の)グラフィックスタスクに関連する(複数の)計算を実行する他の複数のタイプのロジックを含んでよい。いくつかの実施形態は、グラフィックスロジックに言及しつつ説明されるが、複数の実施形態は、グラフィックス関連のロジックに限定されず、また、他の複数のタイプの非グラフィックス(例えば、汎用)ロジックに適用され得る。さらに、様々な実施形態は、実施形態においてSOC(システムオンチップ)プラットフォームに具現化され得る、デスクトップコンピュータ、(スマートフォン、タブレットUMPC(ウルトラモバイルパーソナルコンピュータ)、ラップトップコンピュータ、ウルトラブック(登録商標)、コンピューティングデバイス、スマートウォッチ、スマートグラス等のような)モバイルコンピュータ、ワークステーション等のような任意のタイプのコンピューティングデバイスのために実行され得る。
さらに、(例えば、様々な実施形態においてグラフィックスロジックにより処理され得る)本明細書に説明されるシーン、画像又はフレームは、((スマートフォン、タブレット、ラップトップ、スタンドアローンカメラ等のような別のデバイスに埋め込まれる)デジタルカメラ、又は、そのキャプチャされた画像がその後デジタル形式に変換されるアナログデバイスのような)画像キャプチャデバイスによりキャプチャされ得る。また、本明細書に説明されるシーン、画像又はフレームは、アートデザイン、ゲーム設計又は任意の種類の3D/2D(2次元/3次元)産業設計により生成され得る。例えば、シーンは、構造形状及び関連するテクスチャマップのセット、照明効果等を指し得る。さらに、実施形態において、画像キャプチャデバイスは、複数のフレームをキャプチャすることを可能にし得る。さらに、いくつかの実施形態において、シーン中の複数のフレームのうちの1又は複数は、コンピュータ上で設計/生成される。また、シーン中の複数のフレームのうちの1又は複数は、(例えば、フラットパネルディスプレイデバイス等を含む、図7及び/又は図8を参照して説明されるディスプレイのような)ディスプレイを介して提示され得る。
さらに、いくつかのタイルベースのSOC GPUアーキテクチャは、パラメータバッファを使わない設計を利用してよく、パラメータバッファを使わない設計を利用することで、パラメータデータに対する読み出し処理及び書き込み処理を回避することにより、性能を向上させ、電力消費を低減させることができる。それに対応して、2パス頂点シェーディングメカニズムは、(例えば、プリミティブが属する複数のタイルを見つけるための)タイルマッピング及び特性計算のためにパラメータ位置を取得することに用いられてよい。本明細書に説明されるように、「プリミティブ」は、概して、グラフィックスロジックが処理(例えば、描画、格納等)することが可能である(例えば、幾何学的)形状(点、線、トライアングル等)を指す。いくつかのタイルにまたがる複数のプリミティブの頂点レンダリングは、重複する読み出し処理及び頂点データの計算に起因して、(例えば、電力消費及び/又はパフォーマンスヒットに関して)より多くのコストが掛かる。
このため、いくつかの実施形態は、パラメータバッファを使わない設計において余分な頂点データの読み出し処理及び計算処理を軽減するための適応型タイル分割アプローチを提供する。したがって、そのような実施形態は、電力消費を低減し、及び/又は、性能を向上させ、また、バッファサイズの要件及び半導体バンプのコストを減少させ得る。
いくつかの実施形態は、例えば、スマートフォン、タブレット、UMPC(ウルトラモバイルパーソナルコンピュータ)、ラップトップコンピュータ、ウルトラブック(登録商標)コンピューティングデバイス、スマートウォッチ、スマートグラス等のようなモバイルコンピューティングデバイスを含む1又は複数のプロセッサ(例えば、1又は複数のプロセッサコアを有する)を含む、図1−9を参照して説明されるもののようなコンピューティングシステムに適用されてよい。より具体的には、図1は、一実施形態に係る、コンピューティングシステム100のブロック図を示す。システム100は、1又は複数のプロセッサ102−1から102−N(本明細書において、概して、「複数のプロセッサ102」又は「プロセッサ102」と称される)を含んでよい。複数のプロセッサ102は、様々な実施形態において、複数の汎用CPU及び/又は複数のGPUであってよい。複数のプロセッサ102は、相互接続又はバス104を介して通信してよい。各プロセッサは、様々なコンポーネントを含んでよく、そのいくつかが、明確にするために、プロセッサ102−1のみを参照して説明される。したがって、残りのプロセッサ102−2から102−Nのそれぞれは、プロセッサ102−1を参照して説明されるコンポーネントと同じ又は類似のコンポーネントを含んでよい。
実施形態において、プロセッサ102−1は、1又は複数のプロセッサコア106−1から106−M(本明細書において、「複数のコア106」又は「コア106」と称される)、キャッシュ108及び/又はルータ110を含んでよい。プロセッサコア106は、単一の集積回路(IC)チップ上に実装されてよい。さらに、チップは、(キャッシュ108のような)1又は複数の共有及び/又は専用キャッシュ、(バス又は相互接続112のような)バス又は相互接続、(図7−9を参照して説明されるもののような)グラフィックス及び/又はメモリコントローラ、又は、他のコンポーネントを含んでよい。
一実施形態において、ルータ110は、プロセッサ102−1及び/又はシステム100の様々なコンポーネント間で通信するために用いられてよい。さらに、プロセッサ102−1は、1より多いルータ110を含んでよい。さらに、多数のルータ110が、プロセッサ102−1の内部又は外部における様々なコンポーネント間でデータをルーティングさせることを有効にすべく通信してよい。
キャッシュ108は、コア106のような、プロセッサ102−1の1又は複数のコンポーネントにより用いられる(例えば、複数の命令を含む)データを格納してよい。例えば、キャッシュ108は、プロセッサ102のコンポーネントによる高速アクセス(例えば、コア106による高速アクセス)のためにメモリ114に格納されるデータをローカルにキャッシュしてよい。図1に示されるように、メモリ114は、相互接続104を介してプロセッサ102と通信してよい。実施形態において、(共有され得る)キャッシュ108は、ミッドレベルキャッシュ(MLC)、ラストレベルキャッシュ(LLC)等であってよい。また、複数のコア106のそれぞれは、レベル1(L1)キャッシュ(116−1)(本明細書において、概して「L1キャッシュ116」と称される)、又は、レベル2(L2)キャッシュのような他の複数のレベルのキャッシュを含んでよい。さらに、プロセッサ102−1の様々なコンポーネントは、直接的にバス(例えば、バス112)、及び/又は、メモリコントローラ若しくはハブを通じてキャッシュ108と通信してよい。
図1に示されるように、プロセッサ102は、本明細書に説明されるような様々なグラフィックス関連処理を実行するグラフィックスロジック140をさらに含んでよい。ロジック140は、ここで説明されるように、システム100の様々なコンポーネントと通信される情報のような、ロジック140の複数の処理に関連する情報を格納すべく、(キャッシュ108、L1キャッシュ116、メモリ114、(複数の)レジスタ又はシステム100内の別のメモリのような)本明細書に説明される1又は複数のストレージデバイスへのアクセスを有してよい。また、ロジック140は、プロセッサ102内に示されるが、様々な実施形態において、ロジック140は、システム100内の他の箇所に配置されてよい。例えば、ロジック140は、複数のコア106のうちの1つと置き換えられてよく、相互接続112及び/又は相互接続104等に直接的に結合されてよい。
複数のプリミティブについてのスクリーンの位置情報に基づいて、グラフィックスロジック(例えば、ロジック140)は、異なるタイルにまたがるプリミティブの数を減らすべく、任意の形状(例えば、矩形である必要はない)を有する複数のタイルに適応的に分割することで、余分な計算処理及びメモリ読み出し処理を減らす。そのようなタイル分割メカニズムは、複数の高コストなプリミティブの形状と一致させるようにタイルの形状を適応的に設定し、高密度な複数のプリミティブ領域に亘るタイルの境界を自動的に回避する。
図2は、一実施形態に係る、従来のタイル分割(A)及び適応型タイル分割(B)を伴うシーンを示す。シーンは、3つのドローコールを有し、ドローコール#1は月及び星をレンダリングし、ドローコール#2は雲をレンダリングし、ドローコール#3は建物をレンダリングする。雲についてのメッシュが各頂点に対する非常に複雑なプロパティリストを包含し、モデル空間からスクリーン空間へ最終的な位置を与えるべくいくつかのバンプマッピングを行う必要があると仮定した場合、もし、雲についてのメッシュにおける複数のプリミティブが、いくつかのタイルに分けられてしまうと、(例えば、計算の量、処理能力及び/又は電力消費に関して)より多くのコストが掛かってしまう。スクリーン上には、T1、T2、T3及びT4の4つのタイルがあり、複数の線は、タイルの境界を示す。
図2に示されるように、従来のタイル分割方法(A)は、複数のプリミティブと複数のタイルとの間に多くの交差が生じており、一方、適応型タイル分割メカニズム(B)は、複数のタイルの形状を変化させることにより、高コストな交差を回避できる。さらに、従来のタイル分割の解決策(A)は、複数の大きいタイルを用いて、例えば、そのパラメータバッファを使わない設計についての余分な計算処理及びメモリアクセスを減少させている。しかしながら、従来のタイル分割の解決策には、考慮されるべき少なくとも下記の2つの問題がある。(a)大きなタイルバッファを必要とする。これは、大きなダイ領域及び高コストを招く(例えば、この解決策におけるタイルは、100画素×100画素で構成され、ハードウェアは、このタイルを収容すべく1MBのタイルバッファを提供する)。(b)大きいタイルは、「プリミティブとタイルとの間の交差」の可能性を低下させ得る(しかしながら、例えば、複数のプリミティブは、多くの場合、複数の異なるタイルに無作為にまたがっており、いくつかのベンチマークに対して平均しておよそ10%〜20%の余分な計算が行われているので、現在の実装は、十分に高性能ではない)。
対照的に、いくつかの実施形態は、適応型タイル分割メカニズムを用いており、高コストなプリミティブについての余分な処理を回避できる。さらに、この解決策は、極端に大きなタイルバッファを必要としない。
図3Aは、実装に係る、パラメータバッファを有するグラフィックス処理コンピューティングシステムの複数のコンポーネントについてのブロック図を示す。図3Aのコア側は、実施形態において、ロジック140内で提供され得るサンプルロジックを示す。ストレージ/メモリ側(例えば、図1又は7−9を参照して説明される複数のストレージ/メモリデバイスと同じ又は類似のもの)には、VBO(頂点バッファオブジェクト)ストレージ302及びパラメータバッファ304が、それぞれ、頂点オブジェクト及び中間頂点シェーディングデータを格納するように提示される。一般には、タイルベースのレンダリングアーキテクチャは、プリミティブ方式で頂点シェーディングを実行するが、タイル方式で画素シェーディングを実行する。この類の方式の移行をサポートすべく、パラメータバッファ304と呼ばれるメモリバッファは、頂点シェーディング(VS)ロジック306により生成される複数の中間結果を格納するために用いられる。図3Aに示されるように、VBOデータ(例えば、VBOストレージ302に格納されている)は、(頂点シェーディング処理を実行する)ロジックVS306に渡され、続いて、(例えば、表示域の外側の複数のプリミティブを除去する)カリングロジック308に渡され、その後、(例えば、フレーム内のプリミティブをラスタデータに変換する)ラスタロジック310による次の処理のためにパラメータバッファ304に格納される。
結果として、パラメータバッファ304は、追加のメモリトラフィックの原因となるが、プリミティブデータが1より多いタイル内に存在する(プリミティブ及びタイルの交差と称される)ので、それが用いられている。パラメータバッファ304は、頂点シェーダロジック306により生成される複数の特性及びタイル毎のデータ構造を記録するために、メモリの比較的大きな部分を必要とする。いくつかのベンチマークでは、パラメータバッファのサイズは、10MBから100MBであり得る。また、パラメータバッファ304への各アクセスは、追加の帯域幅にコストが掛かるだろう。
図3Bは、いくつかの実施形態に用いられ得る、パラメータバッファを用いないグラフィックス処理コンピューティングシステムの複数のコンポーネントについてのブロック図を示す。図3Bのコア側は、実施形態において、ロジック140に提供され得るサンプルロジックを示す。より具体的には、いくつかの実装は、図3Aのパラメータバッファ304を省略することができるように、(例えば、図3BのVSロジック306−1及び306−2により示されるような)2パス頂点シェーディングを用いてよい。そのようなパラメータバッファを使わない設計では、頂点シェーディングロジックは、複数の頂点シェーディングの結果を格納する場所がない。より具体的には、頂点シェーディングフローは、2つのパスに分かれる。(1)(例えば、ロジック306−1における)第1パスは、ドローコールにより各頂点ドローコールのスクリーン空間位置を算出する(例えば、ロジック312により行われ、次に、ロジック312は、複数のプリミティブがある(複数の)タイルを決定する)。(2)(例えば、ロジック306−2における)第2パスは、タイル方式であり、例えば、各タイルについて、VSロジック306−2が全ての関連するプリミティブを詳しく検討し、完全な頂点シェーディング処理を実行する。そのような設計において、いくつかのタイルにまたがる複数のプリミティブの頂点レンダリングは、頂点データの重複する読み出し処理及び計算処理に起因してより多くのコストが掛かるだろう。大きいタイルサイズ(例えば、数百画素×数百画素)を用いることで、ある程度の交差を軽減し得る。
さらに、より大きなタイルサイズは、効果的に交差を回避し得ない。既存の大きなタイルの解決策は、いくつかのベンチマークにおいて、およそ10%〜20%の余分な頂点シェーダの計算を生み出し得る。これらの計算による余分なメモリアクセスは、なおさら多くなり得る。さらに、大きなタイルのサイズ設計は、いくつかの場合、比較的大きなサイズのオンチップのタイルバッファ(例えば、1MB)を備える必要があり、そのようなバッファは、チップ領域及びコストを著しく増加させる。
いくつかの実施形態において、複数のプリミティブ及び複数のタイルの交差は低減され、同様に、追加のメモリトラフィック及び複数の計算によりもたらされる無駄を減らす、又は、回避する。
図4Aは、一実施形態に係る2つのレベルのタイル構造を示す。図4Aに示されるように、複数の2つのタイルのレイヤが用いられる。高レベルレイヤは、スーパータイル、即ち、402及び403で形成される構造として定義される。低レベルのタイル構造は、アトミックタイル401として定義され、本明細書に説明されるように、アトミックタイル401は、分割不可能な矩形の画素ブロックである。同様に、スーパータイルは、複数のアトミックタイルのセットのまとまりである。いくつかの実施形態において、スーパータイルは、必ずしも矩形ではない。スーパータイルは、任意の形状であってよい。しかしながら、スーパータイルのサイズは、タイルバッファのサイズを超えなくてよい。
図4Aにおいて、アトミックタイルは、16×16画素である。矩形のスーパータイル402は、256×256画素であってよい。そのため、矩形のタイル402は、256個のアトミックタイルを含む。各アトミックタイル401は、2次元識別子(ID)を割り当てられてよく、2次元識別子(ID)は、そのスクリーンの位置に直接的にマッピングされる。スーパータイルは、(一実施形態に係るスーパータイルテーブルのブロック図を示す)図4Bに示されるスーパータイルテーブル(「STT」)を用いて管理されてよい。図4Bに示されるように、各STTは、スーパータイルID及びアトミックタイルID(2次元スクリーンの位置)のリストから成ってよい。
図4Cは、一実施形態に係る、プリミティブ交差コストバッファのブロック図を示す。プリミティブ交差コスト(PIC)値は、コストに対するメトリックとして定義されてよく、プリミティブは複数のタイルにまたがる。このメトリックは、頂点特性の数及び頂点シェーダの複雑性に比例するものであってよい。実施形態において、PIC値は、下記の式によって算出される。 PIC=(αS+βL)×V
上記の式において、「S」は、バイトで表した頂点要素のサイズを指し、「L」は、(シェーダロジック内の命令の数に対応する)頂点シェーダの長さであり、α及びβは、PICのS及びLの重みであり、それぞれα+β=1.0(調整可能)であり、「V」は、プリミティブの頂点の数である。さらに、同じドローコールに属する複数のプリミティブは、同じPIC値を有する。
「アトミックタイルのPIC」(PICT)は、現在のアトミックタイルにまたがる複数のプリミティブの複数のPIC値の合計として定義され得る。高いPICTは、対応するアトミックタイルにおけるこれらのプリミティブについての高レンダリングコストを意味する。これらの類のアトミックタイルは、スーパータイルの境界として用いられるにはふさわしくない。さらに、各アトミックタイルのPICT値は、図4Cに示されるような、プリミティブ交差コストバッファ(PICB)に格納されてよい。このバッファは、2次元のデータ構造としてインデックスが付されており、例えば、2次元のデータ構造の各要素は、(図4Cに示されるような)スクリーンのアトミックタイルにマッピングする。
実施形態において、PICBは、下記の疑似コードにより生成される。
図5Aは、一実施形態に係る、サンプルフレームに対するプリミティブ交差コスト結果を示す。この例において、スクリーンのサイズは、1920×1080画素であり、これは、16×16画素のサイズを有する120×68個のアトミックタイルに分割される。図5AのパートAは、PICBの視覚画像であり、明るさは、高いプリミティブ交差コストを意味し、暗さは、低いプリミティブ交差コストを意味する。図5AのパートBは、対応する最終的なレンダリング画像である。したがって、PICBは、16ビットと仮定した場合、16×16個のアトミックタイルに対して1つの数のみを記録し得る。フルHDスクリーンの場合、チップバッファに16KBより小さいコストが掛かる。
実施形態において、スーパータイル生成アルゴリズム(例えば、ロジック140により実行される)は、スーパータイル分割メカニズムを得るために用いられる。スーパータイルの境界において、複数の高コストなプリミティブは、互いにまたがることなくスーパータイルにグループ化される。実施形態において、スーパータイルの生成は、PICBに基づく拡張手順である。それは、最高コストのアトミックタイルを小さくて矩形のスーパータイルで覆うことで開始する。アルゴリズムは次に、(例えば、ナップサック問題解法のような)検索ベースのサードパーティアルゴリズムを用いて、その(例えば、4つの)境界からスーパータイルのシードを増やす。スーパータイルのサイズは、オンチップで利用可能なタイルバッファのサイズを超えないでよい。図5Bは、一実施形態に係る、検索ベースのスーパータイル生成メカニズムを示す。全てのスーパータイルが生成されるまで、次のスーパータイルの生成は、同じ処理に従う。
図6は、いくつかの実施形態に係る、複数のタイルベースのレンダリング処理を実行する方法600のフロー図を示す。図1−5C及び7−9を参照して本明細書に説明される1又は複数のコンポーネント(例えば、グラフィックスロジック140を含む)は、図6を参照して説明される1又は複数の処理を実行するのに用いられてよい。
図1−6を参照すると、処理602で処理すべき、さらなるドローコールが残っているとの決定に応じて、図3BのVSロジック306−1は、(例えば、頂点位置、頂点法線及び複数のテクスチャコーディネータのような)頂点データをロードし、処理604で、プリミティブ方式で複数のスクリーン位置計算を実行する。処理606で、(例えば、ロジック140の)プリミティブ交差コスト計算モジュールは、各アトミックタイルに対するPICTを算出する。実施形態において、処理604及び606は、パイプライン化されてよく、そうでなければ、同時に実行されてよい(例えば、処理604がドローコール#1を完了し、処理606に結果を渡し、処理606は、ドローコール#1を処理し、一方、処理604がドローコール#2を処理すること開始する)。
処理602で処理すべき、さらなるドローコールが残っていない場合、処理608は、もっと多くのスーパータイルを生成する必要があるか否かを決定する。処理610で、複数のスーパータイルの形状及びレイアウトが、(例えば、ロジック140の)スーパータイル生成モジュールにより決定される。実施形態において、処理610への入力は、(例えば、図4Cの)PICBから来る。さらに、様々な実施形態において、方法600は、複数の要件に従って、専用のハードウェア又は一体化されたシェーダ上で実行されてよい。1つのスーパータイルが生成された後に、スーパータイルテーブルは、処理612における処理のためにVSロジック(例えば、図3BのVSロジック306−2)に送信される。処理614で、次の処理(例えば、図3Bのラスタロジック310による画素シェーディング(PS))がタイル方式で実行される。実施形態において、処理610は、パイプライン化されてよく、そうでなければ、処理612及び614と同時に動作してよい。
図5Cを参照すると、一実施形態に係る、タイルバッファからフレームバッファへの画像データのフローが示される。図5Cに示されるように、スーパータイルをレンダリングするときに、デプス及び色の結果がオンチップのタイルバッファにアトミックタイル毎にキャッシュされる。このスーパータイルに関する全てのドローコールが完全にレンダリングされたとき、最終的な結果が、(本明細書に説明されるディスプレイデバイスのような)その後のディスプレイデバイス上の提示のためにオンチップのタイルバッファからフレームバッファに格納される。
図7は、一実施形態に係る、コンピューティングシステム700のブロック図を示す。コンピューティングシステム700は、相互接続ネットワーク(又はバス)704を介して通信する1又は複数の中央処理装置(CPU)702又はプロセッサを含んでよい。1又は複数のプロセッサ702は、汎用プロセッサ、(コンピュータネットワーク703を介して通信されるデータを処理する)ネットワークプロセッサ、又は、(縮小命令セットコンピュータ(RISC)プロセッサ若しくは複合命令セットコンピュータ(CISC)を含む)他の複数のタイプのプロセッサを含んでよい。
さらに、1又は複数のプロセッサ702は、シングル又はマルチコア設計を有してよい。マルチコア設計を有する1又は複数のプロセッサ702は、異なる複数のタイプのプロセッサコアを同じ集積回路(IC)ダイ上に集積してよい。また、マルチコア設計を有する1又は複数のプロセッサ702は、対称又は非対称マルチプロセッサとして実装されてよい。実施形態において、プロセッサ702のうちの1又は複数は、図1の複数のプロセッサ102と同じ又は類似であってよい。例えば、システム700の1又は複数のコンポーネントは、図1−6を参照して説明されたロジック140を含んでよい。また、図1−6を参照して説明された複数の処理は、システム700の1又は複数のコンポーネントにより実行されてよい。
また、チップセット706は、相互接続ネットワーク704と通信してよい。チップセット706は、グラフィックスメモリコントロールハブ(GMCH)708を含んでよく、GMCH708は、(図7に示されるもののような)システム700の様々なコンポーネント内に配置されてよい。GMCH708は、(図1のメモリ114と同じ又は類似であってよい)メモリ712と通信するメモリコントローラ710を含んでよい。メモリ712は、CPU702又はコンピューティングシステム700に含まれる任意の他のデバイスにより実行され得る複数の命令のシーケンスを含むデータを格納してよい。一実施形態において、メモリ712は、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)又は他の複数のタイプのストレージデバイスのような、1又は複数の揮発性ストレージ(又はメモリ)デバイスを含んでよい。ハードディスクのような不揮発性メモリも用いられてよい。複数の追加的なデバイスは、複数のCPU及び/又は複数のシステムメモリのような相互接続ネットワーク704を介して通信し得る。
また、GMCH708は、ディスプレイデバイス716と通信するグラフィックスインタフェース714を含んでよい。一実施形態において、グラフィックスインタフェース714は、アクセラレーティッドグラフィックスポート(AGP)又はペリフェラルコンポーネントインターコネクト(PCI)(若しくはPCIエクスプレス(PCIe)インタフェース)を介してディスプレイデバイス716と通信してよい。実施形態において、(フラットパネルディスプレイのような)ディスプレイ716は、例えば、ビデオメモリ又はシステムメモリのようなストレージデバイスに格納される画像のデジタル表現を、ディスプレイ716により解釈及び表示される複数のディスプレイ信号に変換する信号変換器を通じてグラフィックスインタフェース714と通信してよい。ディスプレイデバイスによって生成される複数のディスプレイ信号は、ディスプレイ716によって解釈され、その後ディスプレイ716上で表示される前に、様々な制御デバイスを通じて渡されてもよい。
ハブインタフェース718は、GMCH708及び入力/出力コントロールハブ(ICH)720が通信できるようにしてよい。ICH720は、コンピューティングシステム700と通信する(複数の)I/Oデバイスにインタフェースを提供してよい。ICH720は、ペリフェラルコンポーネントインターコネクト(PCI)ブリッジ、ユニバーサルシリアルバス(USB)コントローラ、又は、他の複数のタイプの周辺ブリッジ若しくはコントローラのような周辺ブリッジ(若しくはコントローラ)724を通じて、バス722と通信してよい。ブリッジ724は、CPU702と複数の周辺デバイスとの間にデータパスを提供してよい。他の複数のタイプのトポロジが用いられてよい。また、複数のバスは、例えば、複数ブリッジ又はコントローラを通じてICH720と通信してよい。さらに、様々な実施形態において、ICH720と通信する複数の他の周辺機器は、統合ドライブエレクトロニクス(IDE)若しくは(複数の)スモールコンピュータシステムインターフェース(SCSI)ハードドライブ、(複数の)USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、デジタルビデオインタフェース(DVI))、又は、複数の他のデバイスを含んでよい。
バス722は、オーディオデバイス726、1又は複数のディスクドライブ728、及び、(コンピュータネットワーク703と通信する)ネットワークインタフェースデバイス730と通信してよい。他のデバイスがバス722を介して通信してよい。また、いくつかの実施形態において、(ネットワークインタフェースデバイス730のような)様々なコンポーネントがGMCH708と通信してよい。加えて、プロセッサ702及びGMCH708は、組み合わせて単一のチップを形成してよい。さらに、他の実施形態において、グラフィックスアクセラレータは、GMCH708内に含まれてよい。
さらに、コンピューティングシステム700は、揮発性及び/又は不揮発性メモリ(又はストレージ)を含んでよい。例えば、不揮発性メモリは、下記の、リードオンリメモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば、728)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、光磁気ディスク、又は電子データ(例えば、複数の命令を含む)を格納可能な他の複数のタイプの不揮発性機械可読媒体のうちの1又は複数を含んでよい。
図8は、一実施形態に係る、ポイントツーポイント(PtP)構成に配置されるコンピューティングシステム800を示す。特に、図8は、プロセッサ、メモリ及び入力/出力デバイスが複数のポイントツーポイントインタフェースにより相互接続されるシステムを示す。図1−7を参照して説明された複数の処理システム800の1又は複数のコンポーネントにより実行されてよい。
図8に示されるように、システム800は、いくつかのプロセッサを含んでよく、明確にするために、そのうちの2つ、プロセッサ802及び804のみが示されている。プロセッサ802及び804は、それぞれ、メモリ810及び812との通信を可能にするローカルメモリコントローラハブ(MCH)806及び808を含んでよい。メモリ810及び/又は812は、図7のメモリ712を参照して説明されるもののような様々なデータを格納してよい。
実施形態において、プロセッサ802及び804は、図7を参照して説明されたプロセッサ702のうちの1つであってよい。プロセッサ802及び804は、PtPインタフェース回路816及び818をそれぞれ用いて、ポイントツーポイント(PtP)インタフェース814を介してデータを交換してよい。また、プロセッサ802及び804は、それぞれ、ポイントツーポイントインタフェース回路826、828、830及び832を用いて個々のPtPインタフェース822及び824を介してチップセット820とデータを交換してよい。チップセット820は、さらに、例えば、PtPインタフェース回路837を用いてグラフィックスインタフェース836を介してグラフィックス回路834とデータを交換してよい。
少なくとも1つの実施形態は、プロセッサ802及び804の中に提供されてよい。例えば、システム800の1又は複数のコンポーネントは、プロセッサ802及び804内に配置されるものを含む、図1−7のロジック140を含んでよい。しかしながら、他の実施形態は、図8のシステム800内の他の回路、ロジックユニット又はデバイスに存在してよい。さらに、他の実施形態は、図8に示されるいくつかの回路、ロジックユニット又はデバイスにわたって分散されてよい。
チップセット820は、PtPインタフェース回路841を用いてバス840と通信してよい。バス840は、バスブリッジ842及びI/Oデバイス843のような1又は複数のデバイスと通信してよい。バス844を介して、バスブリッジ842は、キーボード/マウス845、(コンピュータネットワーク703と通信し得るモデム、ネットワークインタフェースデバイス又は他の通信デバイスのような)複数の通信デバイス846、オーディオI/Oデバイス847、及び/又は、データストレージデバイス848のような他のデバイスと通信してよい。データストレージデバイス848は、プロセッサ802及び/又は804により実行され得るコード849を格納してよい。
いくつかの実施形態において、本明細書に説明される複数のコンポーネントのうちの1又は複数は、システムオンチップ(SOC)デバイスとして具現化され得る。図9は、一実施形態に係るSOCパッケージのブロック図を示す。図9に示されるように、SOC902は、1又は複数の中央処理装置(CPU)コア920、1又は複数のグラフィックスプロセッサユニット(GPU)コア930、入力/出力(I/O)インタフェース940及びメモリコントローラ942を含む。SOCパッケージ902の様々なコンポーネントは、他の図を参照して本明細書に説明されるような相互接続又はバスに結合されてよい。また、SOCパッケージ902は、他の図を参照して本明細書に説明されるもののような、より多くの又はより少ないコンポーネントを含んでよい。さらに、SOCパッケージ920の各コンポーネントは、例えば、本明細書の他の図を参照して説明されるように、1又は複数の他のコンポーネントを含んでよい。一実施形態において、SOCパッケージ902(及びその複数のコンポーネント)は、1又は複数の集積回路(IC)ダイに提供され、例えば、それらは単一の半導体デバイスにパッケージ化される。
図9に示されるように、SOCパッケージ902は、メモリコントローラ942を介して、(他の図を参照して本明細書に説明されるメモリと類似又は同一であってよい)メモリ960に結合される。実施形態において、メモリ960(又はその一部)は、SOCパッケージ902上に統合され得る。
I/Oインタフェース940は、例えば、他の図を参照して本明細書に説明されるような相互接続及び/又はバスを介して1又は複数のI/Oデバイス970に結合されてよい。(複数の)I/Oデバイス970は、キーボード、マウス、タッチパッド、ディスプレイ、(カメラ又はカムコーダ/ビデオレコーダのような)画像/ビデオキャプチャデバイス、タッチスクリーン、スピーカ等のうちの1又は複数を含んでよい。さらに、実施形態において、SOCパッケージ902は、ロジック140を包含/集積し得る。代替的に、ロジック140は、SOCパッケージ902の外側に(即ち、別個のロジックとして)提供されてよい。
下記の複数の実施例は、さらなる実施形態に関する。実施例1は、ロジックを備える装置を含み、ロジックは、頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて、画像の各アトミックタイルに対するプリミティブ交差コスト値を決定するハードウェアロジックを少なくとも部分的に有する。実施例2は、実施例1の装置を含み、アトミックタイルは、分割不可能な矩形の画素ブロックを含む。実施例3は、実施例1の装置を含み、ロジックは、さらに、各アトミックタイル値に対するプリミティブ交差コスト値に基づいてスーパータイルを生成する。実施例4は、実施例3の装置を含み、ロジックは、さらに、スーパータイルに1又は複数の頂点シェーディング処理を実行する。実施例5は、実施例3の装置を含み、ロジックは、さらに、スーパータイルに1又は複数のラスタ処理を実行する。実施例6は、実施例1の装置を含み、ロジックは、さらに、頂点データをロードして、複数のスクリーン位置計算を実行し、頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む。実施例7は、実施例1の装置を含み、ロジックは、頂点要素のサイズ、頂点シェーダの長さ、頂点の数、頂点要素のサイズの重み及び頂点シェーダの長さの重みに少なくとも部分的に基づいてプリミティブ交差コスト値を決定する。実施例8は、実施例1の装置を含み、プロセッサは、ロジックを有する。実施例9は、実施例1の装置を含み、1又は複数のプロセッサコア、ロジック又はメモリを有するプロセッサは、単一の集積回路ダイ上にある。
実施例10は、方法を含み、方法は、頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて画像の各アトミックタイルに対するプリミティブ交差コスト値を決定する段階を備える。実施例11は、実施例10の方法を含み、さらに、各アトミックタイル値に対するプリミティブ交差コスト値に基づいてスーパータイルを生成する段階を備える。実施例12は、実施例11の方法を含み、さらに、スーパータイルに1又は複数の頂点シェーディング処理を実行する段階を備える。実施例13は、実施例11の方法を含み、さらに、スーパータイルに1又は複数のラスタ処理を実行する段階を備える。実施例14は、実施例10の方法を含み、さらに、頂点データをロードする段階と、複数のスクリーン位置計算を実行する段階とを備え、頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む。実施例15は、実施例10の方法を含み、さらに、頂点要素のサイズ、頂点シェーダの長さ、頂点の数、頂点要素のサイズの重み及び頂点シェーダの長さの重みに少なくとも部分的に基づいてプリミティブ交差コスト値を決定する段階を備える。
実施例16は、プロセッサ上で実行されるときに、実施例10から15のいずれか1の1又は複数の処理を実行するようにプロセッサを構成する、1又は複数の命令を備えるコンピュータ可読媒体を含む。
実施例17は、システムを含み、システムは、1又は複数のプロセッサコアを有するプロセッサと、1又は複数のプロセッサコアのうちの少なくとも1つによりアクセスされるべく、シーンの少なくとも1つのフレームに対応するデータを格納するメモリと、シーンの少なくとも1つのフレームを提示するディスプレイデバイスと、頂点要素のサイズ、頂点シェーダの長さ及びフレームのプリミティブの頂点の数に少なくとも部分的に基づいてフレームの各アトミックタイルに対するプリミティブ交差コスト値を決定するロジックとを備える。実施例18は、実施例17のシステム、アトミックタイルは、分割不可能な矩形の画素ブロックを含む。実施例19は、実施例17のシステムを含み、ロジックは、さらに、各アトミックタイル値に対するプリミティブ交差コスト値に基づいてスーパータイルを生成する。実施例20は、実施例19のシステムを含み、ロジックは、さらに、スーパータイルに1又は複数の頂点シェーディング処理を実行する。実施例21は、実施例19のシステムを含み、ロジックは、さらに、スーパータイルに1又は複数のラスタ処理を実行する。実施例22は、実施例17のシステムを含み、ロジックは、さらに、頂点データをロードして、複数のスクリーン位置計算を実行し、頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む。実施例23は、実施例17のシステムを含み、ロジックは、頂点要素のサイズ、頂点シェーダの長さ、頂点の数、頂点要素のサイズの重み及び頂点シェーダの長さの重みに少なくとも部分的に基づいてプリミティブ交差コスト値を決定する。実施例24は、実施例17のシステムを含み、プロセッサは、ロジックを有する。実施例25は、実施例17のシステムを含み、プロセッサコア、ロジック又はメモリのうちの1又は複数は、単一の集積回路ダイ上にある。
実施例26は、プロセッサ上で実行されるときに、頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの頂点の数に少なくとも部分的に基づいて、画像の各アトミックタイルに対するプリミティブ交差コスト値を決定する1又は複数の処理を実行するようにプロセッサを構成する1又は複数の命令を備えるコンピュータ可読媒体を含む。実施例27は、実施例26のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、各アトミックタイル値に対するプリミティブ交差コスト値に基づいてスーパータイルの生成を行わせる1又は複数の処理を実行するようにプロセッサを構成する1又は複数の命令を備える。実施例28は、実施例27のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、スーパータイルに1又は複数の頂点シェーディング処理の動作を行わせる1又は複数の処理を実行するようにプロセッサを構成する1又は複数の命令を備える。実施例29は、実施例27のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、スーパータイルに1又は複数のラスタ処理の動作を行わせる1又は複数の処理を実行するようにプロセッサを構成する1又は複数の命令を備える。実施例30は、実施例26のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、頂点データのロード及び複数のスクリーン位置計算の実行を行わせる1又は複数の処理を実行するようにプロセッサを構成する1又は複数の命令を備え、頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む。実施例31は、実施例26のコンピュータ可読媒体を含み、さらに、プロセッサ上で実行されるときに、頂点要素のサイズ、頂点シェーダの長さ、頂点の数、頂点要素のサイズの重み及び頂点シェーダの長さの重みに少なくとも部分的に基づいてプリミティブ交差コスト値の決定を行わせる1又は複数の処理を実行するようにプロセッサを構成する1又は複数の命令を備える。
実施例32は、任意の先行する実施例で説明された方法を実行するための手段を備える装置を含む。
実施例33は、実行されるときに、任意の先行する実施例で説明された方法を実装し、又は、装置を実現する複数の機械可読命令を含む機械可読ストレージ。
様々な実施形態において、例えば、図1−9を参照して、本明細書において説明された複数の処理は、ハードウェア(例えば、ロジック回路)、ソフトウェア、ファームウェア、又は、それらの組み合わせとして実装されてよい。また、それらは、例えば、コンピュータを、本明細書において説明された処理を実行するようにプログラムするために用いられる複数の命令(又は複数のソフトウェア手順)をそれに格納している、有形の(例えば、非一時的な)機械可読又はコンピュータ可読媒体を含むコンピュータプログラム製品として提供されてよい。機械可読媒体は、図1−9に関連して説明されるもののようなストレージデバイスを含んでよい。
さらに、そのようなコンピュータ可読媒体は、コンピュータプログラム製品としてダウンロードされてよい。プログラムは、搬送波又は他の伝搬媒体において提供されるデータ信号を用いて、通信リンク(例えば、バス、モデム、又は、ネットワーク接続。)を介して、リモートコンピュータ(例えば、サーバ)から、要求しているコンピュータ(例えば、クライアント)へと転送されてよい。
明細書における「一実施形態」又は「実施形態」への言及は、当該実施形態に関連して説明された特定の特徴、構造及び/又は特性が、少なくともある実装の中に含まれ得ることを意味する。
明細書中の様々な箇所における「一実施形態において」との語句の複数の表現は、全て、同一の実施形態を参照していてもよく、していなくてもよい。
また、説明及び複数の請求項において、「結合され」及び「接続され」という用語が、それらの派生語と共に使用されてよい。いくつかの実施形態において、「接続され」とは、2又はそれより多くの要素が、互いに、直接物理的に又は電気的に接触していることを示すために用いられてよい。「結合され」とは、2又はそれより多くの要素が、直接物理的に又は電気的に接触していることを意味してよい。しかしながら、「結合され」はまた、2又はそれより多くの要素が、互いに直接接触してはいないが、それでもなお、互いに協働又はインタラクトし得ることを意味してよい。このように、複数の実施形態は、複数の構造的特徴及び/又は複数の方法論的動作に特有の言い回しで説明されているが、特許の請求される主題は、記載されている特定の機能又は動作に限定されなくてもよいことが理解されよう。むしろ、特定の機能及び動作は、特許請求される主題を実装するサンプル形式として開示されている。
Claims (25)
- ロジックを備え、
前記ロジックは、
頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの前記頂点の数に少なくとも部分的に基づいて、前記画像の各アトミックタイルに対するプリミティブ交差コスト値を決定するハードウェアロジックを少なくとも部分的に有する、装置。 - 前記アトミックタイルは、分割不可能な矩形の画素ブロックを含む、請求項1に記載の装置。
- 前記ロジックは、さらに、各アトミックタイル値に対する前記プリミティブ交差コスト値に基づいてスーパータイルを生成する、請求項1に記載の装置。
- 前記ロジックは、さらに、前記スーパータイルに1又は複数の頂点シェーディング処理を実行する、請求項3に記載の装置。
- 前記ロジックは、さらに、前記スーパータイルに1又は複数のラスタ処理を実行する、請求項3に記載の装置。
- 前記ロジックは、さらに、頂点データをロードして、複数のスクリーン位置計算を実行し、前記頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む、請求項1に記載の装置。
- 前記ロジックは、前記頂点要素のサイズ、前記頂点シェーダの長さ、前記頂点の数、前記頂点要素のサイズの重み及び前記頂点シェーダの長さの重みに少なくとも部分的に基づいて前記プリミティブ交差コスト値を決定する、請求項1に記載の装置。
- プロセッサは、前記ロジックを有する、請求項1に記載の装置。
- 1又は複数のプロセッサコア、前記ロジック又はメモリを有するプロセッサは、単一の集積回路ダイ上にある、請求項1に記載の装置。
- 頂点要素のサイズ、頂点シェーダの長さ及び画像のプリミティブの前記頂点の数に少なくとも部分的に基づいて前記画像の各アトミックタイルに対するプリミティブ交差コスト値を決定する段階を備える、方法。
- 各アトミックタイル値に対する前記プリミティブ交差コスト値に基づいてスーパータイルを生成する段階をさらに備える、請求項10に記載の方法。
- 前記スーパータイルに1又は複数の頂点シェーディング処理を実行する段階をさらに備える、請求項11に記載の方法。
- 前記スーパータイルに1又は複数のラスタ処理を実行する段階をさらに備える、請求項11に記載の方法。
- 頂点データをロードする段階と、複数のスクリーン位置計算を実行する段階とをさらに備え、前記頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む、請求項10に記載の方法。
- 前記頂点要素のサイズ、前記頂点シェーダの長さ、前記頂点の数、前記頂点要素のサイズの重み及び前記頂点シェーダの長さの重みに少なくとも部分的に基づいて前記プリミティブ交差コスト値を決定する段階をさらに備える、請求項10に記載の方法。
- プロセッサ上で実行されるときに、請求項10から15のいずれか一項に記載の1又は複数の処理を実行するように前記プロセッサを構成する1又は複数の命令を備えるコンピュータ可読媒体。
- 1又は複数のプロセッサコアを有するプロセッサと、
前記1又は複数のプロセッサコアのうちの少なくとも1つによりアクセスされるべく、シーンの少なくとも1つのフレームに対応するデータを格納するメモリと、
前記シーンの前記少なくとも1つのフレームを提示するディスプレイデバイスと、
頂点要素のサイズ、頂点シェーダの長さ及び前記フレームのプリミティブの前記頂点の数に少なくとも部分的に基づいて前記フレームの各アトミックタイルに対するプリミティブ交差コスト値を決定するロジックと
を備える、システム。 - 前記アトミックタイルは、分割不可能な矩形の画素ブロックを含む、請求項17に記載のシステム。
- 前記ロジックは、さらに、各アトミックタイル値に対する前記プリミティブ交差コスト値に基づいてスーパータイルを生成する、請求項17に記載のシステム。
- 前記ロジックは、さらに、前記スーパータイルに1又は複数の頂点シェーディング処理を実行する、請求項19に記載のシステム。
- 前記ロジックは、さらに、前記スーパータイルに1又は複数のラスタ処理を実行する、請求項19に記載のシステム。
- 前記ロジックは、さらに、頂点データをロードして、複数のスクリーン位置計算を実行し、前記頂点データは、頂点位置、頂点法線及び複数のテクスチャコーディネータを含む、請求項17に記載のシステム。
- 前記ロジックは、前記頂点要素のサイズ、前記頂点シェーダの長さ、前記頂点の数、前記頂点要素のサイズの重み及び前記頂点シェーダの長さの重みに少なくとも部分的に基づいて前記プリミティブ交差コスト値を決定する、請求項17に記載のシステム。
- 前記プロセッサは、前記ロジックを有する、請求項17に記載のシステム。
- 前記プロセッサコア、前記ロジック又は前記メモリのうちの1又は複数は、単一の集積回路ダイ上にある、請求項17に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/081164 WO2016000129A1 (en) | 2014-06-30 | 2014-06-30 | Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017523499A true JP2017523499A (ja) | 2017-08-17 |
JP6335335B2 JP6335335B2 (ja) | 2018-05-30 |
Family
ID=55018223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016569415A Expired - Fee Related JP6335335B2 (ja) | 2014-06-30 | 2014-06-30 | タイルベースのレンダリングgpuアーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズム |
Country Status (7)
Country | Link |
---|---|
US (1) | US20180174349A1 (ja) |
EP (1) | EP3161793B1 (ja) |
JP (1) | JP6335335B2 (ja) |
KR (1) | KR20170005031A (ja) |
CN (1) | CN106537446B (ja) |
SG (1) | SG11201610041TA (ja) |
WO (1) | WO2016000129A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022536554A (ja) * | 2019-07-30 | 2022-08-17 | ファルコンリー インコーポレイテッド | 大量の時系列データの滑らか且つ解像度が扱いやすいビュー |
US11640358B2 (en) | 2019-04-16 | 2023-05-02 | Denso Corporation | Vehicular device and control method for vehicular device |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2561807B (en) | 2017-01-12 | 2019-09-25 | Imagination Tech Ltd | Computing systems and methods for processing graphics data using cost indications for sets of tiles of a rendering space |
GB2558885B (en) | 2017-01-12 | 2021-04-07 | Imagination Tech Ltd | Graphics processing units and methods for subdividing a set of one or more tiles of a rendering space for rendering |
GB2558886B (en) | 2017-01-12 | 2019-12-25 | Imagination Tech Ltd | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space |
US10504462B2 (en) | 2018-01-25 | 2019-12-10 | Qualcomm Incorporated | Non-linear processing of two-dimensional data |
GB2570743B (en) * | 2018-06-29 | 2021-06-23 | Imagination Tech Ltd | Tile assignment to processing cores within a graphics processing unit |
US10672185B2 (en) | 2018-07-13 | 2020-06-02 | Nvidia Corporation | Multi-rate shading using replayed screen space tiles |
CN112416489A (zh) * | 2020-11-06 | 2021-02-26 | 万翼科技有限公司 | 工程图纸显示方法及相关装置 |
CN113254093A (zh) * | 2021-07-06 | 2021-08-13 | 西安芯瞳半导体技术有限公司 | 自适应系统架构的gpu初始化方法、装置及计算机存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008077627A (ja) * | 2006-09-18 | 2008-04-03 | Samsung Electronics Co Ltd | 3次元画像のレンダリングにおける早期zテスト方法およびシステム |
JP2008146415A (ja) * | 2006-12-11 | 2008-06-26 | Canon Inc | 画像処理装置及びその制御方法、プログラム |
JP2008165760A (ja) * | 2006-12-04 | 2008-07-17 | Arm Norway As | グラフィックスを処理する方法および装置 |
JP2011090664A (ja) * | 2009-10-20 | 2011-05-06 | Samsung Electronics Co Ltd | タイルベースのレンダリング装置および方法 |
JP2011258186A (ja) * | 2010-06-08 | 2011-12-22 | Intel Corp | 画像処理用のタイルレンダリング |
JP2012513053A (ja) * | 2008-12-19 | 2012-06-07 | イマジネイション テクノロジーズ リミテッド | タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000011607A1 (en) * | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Deferred shading graphics pipeline processor |
JP3838086B2 (ja) * | 2001-12-12 | 2006-10-25 | ソニー株式会社 | 画像処理装置およびその方法 |
EP1489560A1 (en) * | 2003-06-17 | 2004-12-22 | Koninklijke Philips Electronics N.V. | Primitive edge pre-filtering |
CN101371274B (zh) * | 2005-12-30 | 2012-09-19 | 意大利电信股份公司 | 视频序列的分割中的边缘比较 |
US20110310102A1 (en) * | 2010-06-17 | 2011-12-22 | Via Technologies, Inc. | Systems and methods for subdividing and storing vertex data |
EP2820562B1 (en) * | 2012-02-27 | 2017-08-09 | Intel Corporation | Using cost estimation to improve performance of tile rendering for image processing |
GB2506706B (en) * | 2013-04-02 | 2014-09-03 | Imagination Tech Ltd | Tile-based graphics |
CN103500463B (zh) * | 2013-10-17 | 2016-04-27 | 北京大学 | 一种gpu上多层形状特征融合的可视化方法 |
US9779533B2 (en) * | 2014-01-27 | 2017-10-03 | Nvidia Corporation | Hierarchical tiled caching |
-
2014
- 2014-06-30 JP JP2016569415A patent/JP6335335B2/ja not_active Expired - Fee Related
- 2014-06-30 CN CN201480079408.0A patent/CN106537446B/zh not_active Expired - Fee Related
- 2014-06-30 EP EP14896773.0A patent/EP3161793B1/en not_active Not-in-force
- 2014-06-30 US US15/118,887 patent/US20180174349A1/en not_active Abandoned
- 2014-06-30 WO PCT/CN2014/081164 patent/WO2016000129A1/en active Application Filing
- 2014-06-30 SG SG11201610041TA patent/SG11201610041TA/en unknown
- 2014-06-30 KR KR1020167033397A patent/KR20170005031A/ko not_active Application Discontinuation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008077627A (ja) * | 2006-09-18 | 2008-04-03 | Samsung Electronics Co Ltd | 3次元画像のレンダリングにおける早期zテスト方法およびシステム |
JP2008165760A (ja) * | 2006-12-04 | 2008-07-17 | Arm Norway As | グラフィックスを処理する方法および装置 |
JP2008146415A (ja) * | 2006-12-11 | 2008-06-26 | Canon Inc | 画像処理装置及びその制御方法、プログラム |
JP2012513053A (ja) * | 2008-12-19 | 2012-06-07 | イマジネイション テクノロジーズ リミテッド | タイルベースの3dコンピュータグラフィックシステムのマルチレベルディスプレイコントロールリスト |
JP2011090664A (ja) * | 2009-10-20 | 2011-05-06 | Samsung Electronics Co Ltd | タイルベースのレンダリング装置および方法 |
JP2011258186A (ja) * | 2010-06-08 | 2011-12-22 | Intel Corp | 画像処理用のタイルレンダリング |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11640358B2 (en) | 2019-04-16 | 2023-05-02 | Denso Corporation | Vehicular device and control method for vehicular device |
JP2022536554A (ja) * | 2019-07-30 | 2022-08-17 | ファルコンリー インコーポレイテッド | 大量の時系列データの滑らか且つ解像度が扱いやすいビュー |
JP7245954B2 (ja) | 2019-07-30 | 2023-03-24 | ファルコンリー インコーポレイテッド | 大量の時系列データの滑らか且つ解像度が扱いやすいビュー |
Also Published As
Publication number | Publication date |
---|---|
CN106537446B (zh) | 2019-08-20 |
EP3161793A4 (en) | 2018-01-17 |
EP3161793A1 (en) | 2017-05-03 |
KR20170005031A (ko) | 2017-01-11 |
EP3161793B1 (en) | 2019-05-08 |
CN106537446A (zh) | 2017-03-22 |
WO2016000129A1 (en) | 2016-01-07 |
JP6335335B2 (ja) | 2018-05-30 |
SG11201610041TA (en) | 2016-12-29 |
US20180174349A1 (en) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6335335B2 (ja) | タイルベースのレンダリングgpuアーキテクチャのための任意のタイル形状を有する適応可能なパーティションメカニズム | |
US10210651B2 (en) | Allocation of tiles to processing engines in a graphics processing system | |
US9483270B2 (en) | Distributed tiled caching | |
US10217183B2 (en) | System, method, and computer program product for simultaneous execution of compute and graphics workloads | |
US10032243B2 (en) | Distributed tiled caching | |
JP5632891B2 (ja) | インライン画像回転 | |
CN111143174B (zh) | 在共享功率/热约束下操作的硬件的最佳操作点估计器 | |
US9779533B2 (en) | Hierarchical tiled caching | |
KR20180054797A (ko) | 프리-페칭에 의한 효율적 디스플레이 프로세싱 | |
US10810784B1 (en) | Techniques for preloading textures in rendering graphics | |
US10861230B2 (en) | System-generated stable barycentric coordinates and direct plane equation access | |
US20160163014A1 (en) | Prediction based primitive sorting for tile based rendering | |
CN110825159A (zh) | 配置处理器以有效执行指令的技术 | |
US9754402B2 (en) | Graphics processing method and graphics processing apparatus | |
CN113393564B (zh) | 利用全局照明数据结构的基于水塘的时空重要性重采样 | |
US20130187956A1 (en) | Method and system for reducing a polygon bounding box | |
CN107148619B (zh) | 用于多线程图形流水线的自由排序线程模型 | |
CN110807827B (zh) | 系统生成稳定的重心坐标和直接平面方程访问 | |
US20220406371A1 (en) | Area efficient memory cell read disturb mitigation | |
US20180095877A1 (en) | Processing scattered data using an address buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20180227 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180328 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180427 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6335335 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |