JP4513108B2 - アーリーzモードを使用する構成可能グラフィックスレンダリングパイプラインの最適化 - Google Patents

アーリーzモードを使用する構成可能グラフィックスレンダリングパイプラインの最適化 Download PDF

Info

Publication number
JP4513108B2
JP4513108B2 JP2007123715A JP2007123715A JP4513108B2 JP 4513108 B2 JP4513108 B2 JP 4513108B2 JP 2007123715 A JP2007123715 A JP 2007123715A JP 2007123715 A JP2007123715 A JP 2007123715A JP 4513108 B2 JP4513108 B2 JP 4513108B2
Authority
JP
Japan
Prior art keywords
mode
engine
early
late
rendering pipeline
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
JP2007123715A
Other languages
English (en)
Other versions
JP2007328774A (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 JP2007328774A publication Critical patent/JP2007328774A/ja
Application granted granted Critical
Publication of JP4513108B2 publication Critical patent/JP4513108B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

発明の背景
<発明の分野>
[0001]本発明の実施の形態は、広く、コンピュータグラフィックスに関するものであり、より詳細には、アーリー(early)Zモードを使用するグラフィックスレンダリングパイプラインの最適化に関するものである。
<関連技術の説明>
[0002]グラフィックスレンダリングエンジンは、一般に、データフロースタイルのパイプラインに編成された専用処理エンジンのセットによって構成されている。データフェッチエンジンの後において、セットアップエンジンが一般にグラフィックスレンダリングエンジンの最上層にある。このセットアップエンジンは、三角形のような幾何プリミティブを操作し、幾何プリミティブの変形又は簡略化された表現をラスタエンジンへ送出する。ラスタエンジンは、各幾何プリミティブと関連するピクセルカバレッジを求め、関連した奥行き値(Z値)を伴う陰影のないピクセルプリミティブの順次ストリームを生成する。そして、シェーダエンジンが、ラスタエンジンからの陰影のないピクセルの順次ストリームを操作し、陰影付きのピクセルのストリームを生成する。所与のピクセルの色の計算に加えて、一部のシェーダエンジンは、ピクセルのZ値を任意に、生成又は修正する。また、Zラスターオペレーション(ZROP)エンジンが、新しいピクセルが保存されるべきであるか、又は、廃棄されるべきであるかを、Zテストと呼ばれるオペレーションによって判定する。Zテストは、新しいピクセルの奥行き及びステンシルデータを、現在のデプスバッファ中の新しいピクセルのロケーションに前もって格納されている奥行き及びステンシルデータと比較する。ピクセルがZテストで存続すると、ZROPエンジンは、新しいピクセルの奥行き及びステンシルデータを現在のデプスバッファへ任意に書き込む。Zリゾルブエンジンは、Zテストの結果を、遅延バッファリングされたデータであって対応のピクセルに関連したデータにマージする。Zリゾルブエンジンは、Zテストで存続したピクセルをカラーラスターオペレーション(CROP)エンジンへ伝送し、Zテストで存続しなかったピクセルを廃棄する。カラーラスターオペレーション(CROP)エンジンは、新しいピクセルのカラーデータを更新し、現在のカラーバッファに書き込む。
[0003]グラフィックスレンダリングパイプラインにおける処理ステップの精確なシーケンスは、一般に、レンダリングプロセスにおけるシーケンシャルデータの依存性の最も簡単な低減に対応するように設計されている。例えば、三角形プリミティブは、ピクセルプリミティブへとラスタライズされてから、ピクセルオペレーションが三角形によって覆われたピクセルの集合に対して行われるべきである。さらに、ピクセルのZ値は、計算後に、デプスバッファ中の以前に計算されたZ値と比較されるべきである。Zテストは、一般に、シェーディング後に行われ、Zテストの前に奥行き又はステンシル計算を完了する機会をシェーダエンジンに与える。
[0004]周知のように、シェーダエンジンは、グラフィックスレンダリングパイプラインの最も高価な要素であり、最大のロジックリソースと最大の電力を消費する。さらに、シェーダエンジンにおいて一般的に実行される複雑なシェーディングアルゴリズムは、シェーダエンジンがグラフィックスレンダリングパイプラインにおける主要な性能ボトルネックになる原因となる。ラスタエンジンにおけるアーリーZカリング(culling:遮蔽部分除去)は、遮蔽されることが既知のプリミティブを、これらプリミティブに関係した作業がシェーダエンジン内でトリガされる前に、廃棄することによって、ある程度の性能向上を達成する。しかし、アーリーZカリングは、些細な廃棄の仕組みに過ぎず、より精確なZテストの代用にはならない。アーリーZカリングを採用する場合であっても、Zテストのステップは、シェーダエンジンによって処理されるピクセルの半分以上を廃棄することがある。更に重要なことに、シェーダエンジンは、通常は、シェーディングオペレーション中に廃棄されたピクセルの大部分のZ値を修正することもなく、シェーダエンジンによるこれらピクセルの探索を不必要なものとする。したがって、標準的なアーキテクチャでは、シェーダエンジン、即ち、グラフィックスレンダリングパイプラインにおける単一の最も高価なリソースが実質的に非効率的なレベルで動作することとなる。
[0005]以上の説明の通り、当分野において求められていることは、グラフィックスレンダリングパイプラインにおけるシェーダエンジンの効率を改良する技術である。
発明の概要
[0006]本発明のある実施の形態は、グラフィックスプリミティブを処理する構成可能グラフィックスレンダリングパイプラインを説明する。グラフィックスレンダリングパイプラインは、処理がアーリーZモードで進行すべきであるか、又は、レイトZモードで進行すべきであるかを決定するように構成されたセットアップエンジンと、セットアップエンジンから幾何プリミティブを受け取り、幾何プリミティブを一以上のピクセルプリミティブに変換するように構成されたラスタエンジンと、ピクセルプリミティブに関連する一以上のサンプルに対してシェーディングオペレーションを実行するように構成されたシェーダエンジンと、各サンプルに対してZテストを実行するように構成されたZラスターオペレーション(ZROP)ユニットと、各サンプルについて、そのサンプルが当該サンプルに関連するZテストの結果に基づいて保持されるべきか、又は、廃棄されるべきかを決定するように構成されたZリゾルブエンジンと、シェーダエンジンとZROPユニットとの間のデータフローパスを変更してアーリーZモードとレイトZモードの両者をサポートするように構成されたプレラスターオペレーション(PROP)ユニットと、を備える。ピクセルプリミティブに関連するサンプルは、グラフィックスレンダリングパイプラインがアーリーZモード用に構成されている場合には、最初にZROPユニット及びZリゾルブエンジンによって処理され、次いでシェーダエンジンによって処理される。また、サンプルは、グラフィックスレンダリングパイプライがレイトZモード用に構成されている場合には、最初にシェーダエンジンによって処理され、次にZROPユニット及びZリゾルブエンジンによって処理される。
[0007]本明細書に開示するグラフィックスレンダリングパイプラインの一つの利点は、適切な環境下で、サンプルがシェーダエンジンへ送られる前にZテストが実施され、それによって、従来技術のアーキテクチャに対して、グラフィックスレンダリングパイプラインの処理効率を増大させることである。
[0008]上記の本発明の特徴を詳細に理解できるように、上に簡単に要約した本発明のより詳細な説明を、実施の形態を参照することによって行なう。これら実施の形態の一部について、添付の図面に示す。しかしながら、添付の図面は本発明の典型的な実施の形態のみを示しており、本発明はその他の同等に効果的な実施の形態を含むものであるので、添付の図面は本発明の範囲を限定するものとみなされるべきでないことに注意すべきである。
詳細な説明
[0015]本発明は、殆どのグラフィックスレンダリングパイプラインの周知の性能ボトルネックである、シェーダエンジンの作業負荷を低減することによって、グラフィックスレンダリングパイプラインの全体的な効率を改善する。グラフィックスレンダリングパイプラインを動的に再構成してアーリーZテストをある種の状況において許可し、遮蔽されたピクセルがシェーディング前に廃棄されるようにすることによって、シェーダエンジンは、従来のグラフィックスレンダリングパイプラインに一般的に存在する過剰な作業から解放される。
[0016]図1は、本発明のある実施の形態に係るグラフィックスレンダリングパイプライン100によるデータフローの概念図である。図示するように、セットアップエンジン110は、プロセッサ(図示せず)上で実行しているドライバから幾何プリミティブを受け取る。セットアップエンジン110は、入力プリミティブを操作し、ラスタエンジン115への提示に適した形態で、変形及び処理された幾何プリミティブを送出する。セットアップエンジン110は更に「状態バンドル(state bundles)」を含む入力コマンドを操作する。状態バンドルは、後続のグラフィックスプリミティブがグラフィックスレンダリングパイプライン100の様々な処理ユニットにおいてどのように処理されるかを定義するデータを含むが、これに限定されるものではない。状態バンドルからのデータは、後の参照のためにこれらの処理ユニットに保持される。セットアップエンジン110は、グラフィックスレンダリングパイプライン100内のレンダリング状態を追跡し、レンダリング状態のある種の変化を調整する。レンダリング状態は、グラフィックスレンダリングパイプライン100内の様々なポイントでのレンダリングプロセスに関連する種々の変数、モード、及び設定条件を含むが、これに限定されるものではない。一部のレンダリング状態変数、モード、又は設定条件は、所与のプリミティブに関するレンダリングプロセスを初期化する前に設定され、一部のレンダリング状態は、プリミティブがグラフィックスレンダリングパイプライン100を進むときに動的に更新される。以下により詳細に説明するように、履歴(ヒステリシス)カウントは、セットアップエンジン110内で管理されるレンダリング状態の一要素である。履歴カウントは履歴カウンタ111に保持される。
[0017]ラスタエンジン115は、幾何プリミティブのカバレッジを計算し、ピクセルプリミティブを更なる処理のために送出する。さらに、ラスタエンジン115は各ピクセルについて関連のZ値を計算する。
[0018]Zラスターオペレーションユニット(ZROP)120は、現在のピクセルプリミティブのZ値を、対応するピクセルロケーション用に前もって格納されたZ値と比較する。ZROP120からの結果によって、様々なピクセルプリミティブが保存されるか、又は、廃棄されるかが決定される。より詳細には、ZROPエンジン120は、現在の各ピクセルのZ値を、デプスバッファ(図示せず)に前もって格納された対応するピクセルロケーションのZ値と比較する。この場合にも、このプロセスは「Zテスト」として知られたものである。現在のピクセルがZテストに合格した場合には、ZROP120は、そのピクセルのZ値を任意にデプスバッファ書き込む。このデプスバッファは、一般的には、フレームバッファ160に存在するものである。ピクセルがZテストに合格しない場合には、ピクセルは、プレラスターオペレーション(PROP)130ユニット内に存在するZリゾルブエンジン(図示せず)によって廃棄され、ZROP120は如何なるZ値情報もデプスバッファには書き込まない。当業者には理解されるように、ピクセルの可視性を決定するZ値に加えて、特定のピクセルがZテストに合格したか、又は、失敗したかを最終的に決定する際に、ステンシル値を、Z値と共に任意に使用してもよい。したがって、本明細書中のZ値への言及は、適切であるならば、ステンシル値にも当てはまる。
[0019]シェーダエンジン140は、ピクセルプリミティブを操作して、シェーダエンジン140のプログラミングによって決定されたピクセルのカラー及びZ値を、計算するが、これに限定されるものではない。カラーラスターオペレーションユニット(CROP)150は、ZROP120内のZテストの結果に応じて、各々の合格ピクセルのカラー値をフレームバッファ160に書き込む。
[0020]PROP130ユニットは、ZROP120、CROP150及びシェーダエンジン140の間のピクセルプリミティブの流れを管理し、各ピクセルプリミティブの現在のレンダリング状態に従ってオペレーションの順番を順序付ける。本明細書に説明するように、PROP130は、「レイト」Zモードと「アーリー」Zモードの二つのモードのうちの一方で動作する。レイトZモードのデータフローパス132はPROP130を通る実線で表されている。レイトZモードでは、シェーダエンジン140は、まず、ピクセルプリミティブを操作して、これらに限定されるものではないが、関連するピクセルのカラー及びZ値を計算する。シェーダエンジン140は、その演算結果をZテストのためにZROP120へ向ける。上述のように、ZROP120は、Zテストに合格した全てのピクセルについてデプスバッファ中のZ値を更新し、この情報をPROP130内のZリゾルブエンジンへ送り、当該PROP130は、次に、Zテストに合格しなかった全てのピクセルを廃棄し、合格したピクセルを、残りのカラー及びフレームバッファ更新のために、CROP150へ伝送する。
[0021]上述したように、多くの場合に、Z値はシェーダエンジン140によって変更されない。したがって、アーリーZモードでは、Zテストはシェーディングの前に実施され、これによって、(i)シェーディングオペレーションによって変更されていないZ値を有するピクセル、及び、(ii)Zテストによって廃棄されることになっているピクセルの処理に関連する過剰な作業から、シェーダエンジン140を解放する。アーリーZモード用のデータフローパス131はPROP130を通る破線で表されている。ここで、ラスタエンジン115からのピクセルプリミティブは、Zテストの用のZROP120へルーティングされ、また、シェーダエンジン140へルーティングされる前にPROP130内のZリゾルブエンジンへルーティングされる。この場合も、Zテストの結果を使用して、リゾルブエンジンはZテストに合格しなかった全てのピクセルを廃棄し、合格したピクセルをシェーディングオペレーションのためにシェーダエンジン140へ伝送する。シェーダエンジン140はZテストを切り抜けたピクセルだけを処理するので、アーリーZモードで処理されるピクセルの個数は、レイトZモードで処理されるピクセルの個数より実質的に削減される。シェーディング後、シェーダエンジン140は陰影付きのピクセルをCROP150へ伝送する。
[0022]グラフィックスレンダリングパイプライン100がアーリーZモードであるか、又は、レイトZモードであるかとは無関係に、Zテストは一般に全ピクセルに対して必要である。説明したように、アーリーZモードの場合には、シェーダエンジン140は、Zテストによって廃棄されたピクセルに関連する計算から解放され、改善したシステム性能をもたらす。レイトZモードの場合には、シェーダエンジン140は、各ピクセルの最終的な処分とは無関係に全ピクセルに陰影を付ける。レイトZモードは一般的なケースであり、グラフィックスレンダリングパイプライン100で利用できる全てのレンダリング状態に対応し、一方、アーリーZモードは、ある特定の頻繁に現れるレンダリング状態に制限され、適格なプリミティブが描画されるときに臨機応変的に実施される。
[0023]図2は、本発明のある実施の形態に係る図1のPROP130を通るデータフローの概念図である。レイトZモード用のデータフローパス132は実線で表されている。レイトZモードでは、PROP130は、ラスタエンジン115からマルチプレクサ221を経由してシェーダエンジン140へピクセルデータをルーティングする。シェーダエンジン140から返されるデータは、次に、マルチプレクサ220を介して伝送される。マルチプレクサ220の出力は、Zテスト用のZROP120へルーティングされ、ZROP120によって発生する可能性がある可変の遅延(レイテンシー)に対応するために遅延バッファ212へルーティングされる。Zリゾルブエンジン214は、ZROP120によって実行されたZテストの結果を、遅延バッファ212を通過したシェーダエンジン140からのデータとマージし、陰影付きの各ピクセルを伝送するか、又は、廃棄する。Zテストに合格した陰影付きのピクセルは、次に、マルチプレクサ222によって選択され、フレームバッファ160へ書き込まれる前に、最終的なカラー処理のためにCROP150へ伝送される。
[0024]図1と同様に、アーリーZモード用のデータフローパス131は破線で表されている。アーリーZモードでは、PROP130は、ラスタエンジン115からのデータをマルチプレクサ220へそのまま渡すように構成されている。マルチプレクサ220によって伝送されたデータは、ZROP120にルーティングされ、また、ZROP120によって発生する可能性がある可変の遅延に対応するために第2の遅延バッファ212とへルーティングされる。この場合も、ZテストはZROP120内で行われる。Zリゾルブエンジン214は、ZROP120によって実行されたZテストの結果を、第2の遅延バッファ212中のデータとマージし、Zテストに合格したピクセルをシェーディングのためにシェーダエンジン140へ伝送する。陰影付きのピクセルは、次に、シェーダエンジン140から第3のマルチプレクサ222を経由し、フレームバッファ160へ書き込まれる前に最終的なカラー処理のために、CROP150へルーティングされる。
[0025]アーリーZモードは、略全ての環境下で、グラフィックスレンダリングパイプライン100の好ましい、より高性能の動作モードである。セットアップエンジン110は、グラフィックスレンダリングパイプライン100がアーリーZモードで動作し得るか、又は、グラフィックスレンダリングパイプライン100がレイトZモードで動作すべきであるかを判定する。一般に、アーリーZモードは、現在のレンダリング状態がプリミティブに関連するZ値がシェーダエンジン140によって変更される予定がないことを示す場合に、使用される。上述したように、全てのレンダリングオペレーションが、レイトZモードではサポートされている。しかし、以下に説明するように、アーリーZモードは、ある特定のレンダリングモードが現れたときに実施される。
[0026]一般に、アーリーZモード動作を不可能にする一つのレンダリング状態が存在する。そのレンダリング状態は、シェーダプログラムがZ値を内部的に計算又は修正するときにいつでも確立されるものであり、以下の疑似コードでは、DepthReplaceShader == trueであるときに明示される。その他の可能なレンダリング状態の組には、アーリーZモードが許容される二つの規則があり、第1の規則は、シェーダ及びポストシェーダカラーオペレーションがフラグメントカバレッジに影響を与えない“EarlyZNoKill”として定義されるものである。アーリーZモードが許容される第2の規則は“EarlyZNoUpdate”として定義されものであり、この場合には、Z値書き込みが禁止されているので、シェーダによってカバレッジが変更されることがあるピクセル又はサンプルに対してZテストが実行される場合であっても、Zテストはグラフィックスレンダリングパイプライン100内でシェーディングの前に移すことが可能である。より詳細には以下に説明するように、履歴カウンタ111は、アーリーZモードへの切り替えが行われる前に特定のカウントに到達すべきである。以下の疑似コードは、アーリーZモードが有効にされる前に成り立つべき条件を要約している。

EarlyZGlobalOK =
DepthReplaceShader == false; //シェーダはZを計算又は修正しない
EarlyZNoKillOK = //シェーダはフラグメントカバレッジに影響を与えない
AlphaTestEnable == false &&
AlphaToCovgEnable == false &&
ShaderPixelKillEnable == false &&
TextureColorKeyEnable == false;
EarlyZNoUpdateOK = //Z結果は格納されない
(DepthTestEnable == false ||
DepthWriteEnable == false) &&
(StencilTestEnable == false ||
(StencilMask == 0x0) &&
AllowEarlyZNoUpdate == true;;
EarlyZEnable = //アーリーZモードへ切り替えるためのレンダリング状態規準に適合
EarlyZGlobalOK &&
(EarlyZNoKillOK || EarlyZNoUpdateOK) &&
(EarlyZHysteresisFSM.AllowEarlyZ == true);
[0027]したがって、上記の疑似コードがEarlyZEnable変数に真条件をもたらす場合には、セットアップエンジン110は、PROP130に対して、グラフィックスレンダリングパイプライン100がレイトZモードでの進行中の作業を完了したならば、グラフィックスレンダリングパイプライン100をアーリーZモードで動作させるように指示することが可能である。上述したように、EarlyZEnableが真であるのは、シェーダエンジン140がZ値を修正又は計算しないとき(DepthReplaceShader == false)、グラフィックスレンダリングパイプライン100が二つの特有のレンダリングモードのうちの一方にあるとき(EarlyZNoKillOK == true 又は EarlyZNoUpdateOK == true)、また、履歴カウンタ111がアーリーZモードへの遷移を許容する状態にあるとき(EarlyZHysteresisFSM.AllowEarlyZ == true)である。上に列挙したレンダリング状態のそれぞれの定義を以下に説明する。これらのレンダリング状態変数及び対応の関数は、当業者によって容易に認識され理解される。

DepthReplaceShader :シェーダエンジンはZ値を計算又は変更する(通常は頂点Z値を補間するのに対して);
AlphaTestEnable :フラグメントアルファ値が参照値と比較され、指定された条件が満たされないならば、フラグメントを消す;
AlphaToCovgEnable :フラグメントアルファが、ラスタエンジンによって計算されたカバレッジマスクと論理積演算されるサンプルカバレッジマスクに変換される;
ShaderPixelKillEnable :フラグメントシェーダがフラグメントを消す;
TextureColorKeyEnable :テクスチャ値の基準とのカラーキー比較がフラグメントを消す;
DepthTestEnable :奥行きテスト(Zバッファリング)が有効にされる;
DepthWriteEnable :奥行きテストに合格する奥行き値がメモリに書き込まれる;
StencilTestEnable :ステンシルテストが有効にされる;
StencilMask :どのステンシルビットがメモリに書き込まれるかを示すビットマスク;
AllowEarlyZNoUpdate :EarlyZNoUpdateモードを許可する。EarlyZNoKillモードとは異なり、このモードは、Zテストがシェーダによって消されるフラグメントに対して実行されることがあるので、常に性能が勝っているとは限らない。
[0028]レイトZモードからアーリーZモードへ切り替えるとき、又は、アーリーZモードからレイトZモードへ切り替えるときに、二つの潜在的な問題が存在する。第一に、プリミティブデータがグラフィックスレンダリングパイプライン100に未だ存在する場合には、モードの切り替えによって、ピクセルデータの損失、若しくは誤りが生じるか、又は、処理効率が低下することがある。例えば、グラフィックスレンダリングパイプライン100に未だレイトZモードプリミティブがある場合にアーリーZモードへ切り替えると、Zテストが早く始まり、このことによって、Zテストが最終的なZ値に基づかないので、ピクセルデータが失われるか、又は、不正確になる。一方、グラフィックスレンダリングパイプライン100に未だアーリーZモードプリミティブがある場合にレイトZモードへ切り替えると、アーリーZテスト中に廃棄される筈であったピクセルがシェーダエンジン140によって処理されるという結果になるので、処理が非効率的になる。プリミティブデータがグラフィックスレンダリングパイプライン100に残っている間にモードを切り替えることに関連する問題を解決するために、「フラッシュ」がモードを切り替える前にグラフィックスレンダリングパイプライン100上で実行される。パイプラインフラッシュ技術は当分野において既知であり、技術的に実施可能な任意の形式で実施することができる。フラッシュを実行することによって、グラフィックスレンダリングパイプライン100内で進行中の作業を、モード切り替え前に、ある所定の完了レベルまでで排出させることが可能である。しかしながら、フラッシュを実行する場合に、「バブル」と呼ばれるパイプラインの非アクティブ化の期間が、排出した作業負荷の後に一般にもたらされる。このようなバブルは、潜在的な計算サイクルが事実上待機状態であるため、全体的な性能を下げる。したがって、モード切り替えに関する第2の問題は、フラッシュが非常に頻繁に実行される場合に、グラフィックスレンダリングパイプライン100をフラッシュすることに付随する性能ペナルティが全体的な性能を低下させることである。この第2の問題を解決するために、グラフィックスレンダリングパイプライン100がモードを切り替えることを許容されるレートは、レート制限履歴メカニズムを使用して制御される。
[0029]履歴カウンタ111は、セットアップエンジン110に提供されたプリミティブの個数を記録し、閾値数分のこのようなプリミティブが検出されたときに、セットアップエンジン110はレイトZモードからアーリーZモードへの切り替えを始める。より詳細には、レイトZモードは、グラフィックスレンダリングパイプライン100内で許可されたレンダリング状態の全てを一般に受け入れるので、レイトZモードはデフォルト動作モードであるとして認識される。レイトZモードで動作し、かつ、EarlyZEnableが真である場合に、セットアップエンジン110は、フラッシュの実行を条件として、且つ、セットアップエンジン110が閾値数分のプリミティブに遭遇していることを条件として、グラフィックスレンダリングパイプライン100のアーリーZモードへのモード切り替えを臨機応変的に開始する。したがって、グラフィックスレンダリングパイプライン100は、アーリーZモードへの切り替えが可能とされる前に、最小個数のプリミティブの期間に亘ってレイトZモードに保持され、それによって、モード切り替えのレートを低下させる。
[0030]ある実施の形態では、履歴カウンタ111は、状態バンドル内に記述されたカウント値であって、セットアップエンジン110に伝送され、履歴カウンタ111が利用できるようにされたカウンタ値を用いてプログラムされる。履歴カウンタ111によって保持された履歴カウントは、セットアップエンジン110がレイトZモードへのモード変更を開始するときには何時でも(又は、グラフィックスレンダリングパイプライン100がレイトZモードのため最初に構成されるときに)カウント値に設定される。履歴カウントをカウンタ値に設定すると、プリミティブがセットアップエンジン110に受け取られる度に、履歴カウントは、例えば、インクリメント操作又はデクリメント操作等によって進められる。このプロセスは、履歴カウンタが、零のようなトリガ値に到達するまで継続する。トリガ値に到達した履歴カウントは、所定の閾値数分のプリミティブがセットアップエンジン110へ提示されたことを示し、セットアップエンジンは、最小の閾値数分のプリミティブを処理するためにグラフィックスレンダリングパイプライン100をレイトZモードに保つ。このとき、セットアップエンジン110は、適切であるならば、グラフィックスレンダリングパイプライン100においてアーリーZモードへのモード変更を開始する。
[0031]別の実施の形態では、Zモード切り替えに関連するペナルティは、スイッチがアーリーZモードとレイトZモードとの間で行なわれているときに、グラフィックスレンダリングパイプライン100中で処理位置を変えるパイプライン要素だけを選択的に排出することによって、部分的に緩和される。このような実施の形態では、「Zモードトークン」と呼ばれる状態バンドルコマンドが、セットアップエンジン110によって生成され、グラフィックスレンダリングパイプライン100のコンフィギュレーションをアーリーZモードからレイトZモードへ変更し、又は、同様にその逆に変更するために使用される。セットアップエンジン110は、Zモードトークンをグラフィックスレンダリングパイプライン100中に伝送して、Zモードトークンをパイプライン中の各処理エレメントを通過させる。パイプラインが再構成されるときにグラフィックスレンダリングパイプライン100中の処理位置を変更する各処理エレメントは、Zモードトークンが現れた場合に、局所的で選択的なフラッシュを実施するために必要な機能を有する。
[0032]アーリーZモードで動作する場合に、新しいレンダリング状態がアーリーZモードと相容れないとき、セットアップエンジン110は、上述したように、最初にフラッシュを実行し、続いてPROP130にデータフローパスを変更するように指示することによって、グラフィックスレンダリングパイプライン100をレイトZモードへ戻す。このような状況では、セットアップエンジン110は、一般に、閾値数分のプリミティブがセットアップエンジン110へ提示されているという制約を受けない。
[0033]上記の振る舞いに加えて、履歴カウンタ111は、複数の異なるモードで動作するように構成される。これらモードには、強制的にグラフィックスレンダリングパイプライン100を常にレイトZモードで動作させるモード、又は、グラフィックスレンダリングパイプライン100が履歴カウント値とは無関係にモードを切り替えることを常に可能にするモードがあるが、これらに限定されない。さらに、履歴カウンタ111は、履歴カウントを、上述したように、例えば、カウント値に設定させるある種のリセット条件に応答する。
[0034]図3は、本発明のある実施の形態に従って図1のグラフィックスレンダリングパイプライン100における動作モードを切り替える方法ステップのフローチャートである。方法ステップを、図1、2、4A及び4Bと関連して説明するが、当業者は方法ステップを任意の順序で実行するシステムが本発明の範囲に含まれることを理解するであろう。
[0035]動作モードを切り替える本方法はステップ310で始まり、ここでは、セットアップエンジン110が操作の対象とするプリミティブを受け取る。ステップ312において、セットアップエンジン110は、現在の動作モードがアーリーZモードであるか、又は、レイトZモードであるかを判定する。現在の動作モードがレイトZモードであるならば、この方法はステップ311へ進み、履歴カウントが更新される。上述したように、履歴カウントは、レイトZモードに入るとき、又は、グラフィックスレンダリングパイプライン100が最初にレイトZモード用に構成されたときに、セットアップエンジン110へ伝送された状態バンドルに記述されているカウント値に設定される。レイトZモード動作中に、履歴カウントは、セットアップエンジン110が新しいプリミティブを受け取る度に、デクリメント操作又はインクリメント操作等によって進められる。履歴カウンタ111を更新した後、この方法はステップ320へ進み、そこでセットアップエンジン110は、レンダリング状態変数EarlyZEnableが真であることによって示されるように、モード変更が行われるべきか否かを判定する。EarlyZEnableが偽である場合には、モード変更は行われず、本方法はステップ340へ進み、セットアップエンジン110がプリミティブストリーム中の次のプリミティブを待ち受ける。しかしながら、EarlyZEnableが真である場合には、モード変更が行われるべきであり、本方法はステップ321へ進む。ステップ321において、セットアップエンジン100は、フラッシュオペレーションを開始して、グラフィックスレンダリングパイプライン100をフラッシュし、進行中の作業を完了させる。この方法は、次にステップ322へ進み、そこで、セットアップエンジン110は、図2に示すようにアーリーZモード動作用にグラフィックスレンダリングパイプライン100のデータフローを再構成するよう、PROP130に指示する。ステップ322が終了すると、グラフィックスレンダリングパイプライン100はアーリーZモード用に構成され、本方法はステップ340へ進み、セットアップエンジンはプリミティブストリーム中の次のプリミティブを待ち受ける。この方法はその後にステップ310へ戻る。
[0036]ステップ312を再び参照する。現在の動作モードがアーリーZモードである場合には、本方法はステップ330へ進み、そこでセットアップエンジン110は、処理されるべき次のプリミティブに基づいて、モード変更が行われるべきか否かを判定する。EarlyZEnable変数が真であることによって示されるように、次のプリミティブがアーリーZモードで処理されるべき場合には、モード変更が行われる必要がなく、本方法はステップ340へ進む。一方、次のプリミティブがレイトZモードで処理されるべき場合には、モード変更が行われる必要があり、本方法はステップ331へ進む。ステップ331において、セットアップエンジン100は、フラッシュオペレーションを開始して、グラフィックスレンダリングパイプライン100をフラッシュし、進行中の作業を完了させる。本方法は、次にステップ332へ進み、そこでセットアップエンジン110は、図2に示すように、レイトZモード動作用にグラフィックスレンダリングパイプライン100のデータフローを再構成するよう、PROP130に指示する。ステップ332が終了すると、グラフィックスレンダリングパイプライン100はレイトZモード用に構成され、この方法はステップ340へ進み、そこでセットアップエンジン110はプリミティブストリーム中の次のプリミティブを待ち受ける。この方法はその後にステップ310へ戻る。
[0037]図4aは、本発明のある実施の形態に従ってレイトZモードで動作しているときの図1のグラフィックスレンダリングパイプライン100の論理的なコンフィギュレーションを示している。セットアップエンジン110は、入力プリミティブを操作し、ラスタエンジン115への提示に適した形態で変換され処理された幾何プリミティブを送出する。ラスタエンジン115は、幾何プリミティブのカバレッジを計算し、ピクセルプリミティブをシェーダエンジン140へ送出する。また、ラスタエンジン115は、各ピクセルのZ値を計算する。シェーダエンジン140は、ピクセルカラーと、場合によってZ値とを計算するが、これらに限定されることはなく、更なる処理のためにカラーデータ432とZデータ431との間に計算結果を分配する。ZROP120はZテストを実施し、テスト結果をZリゾルブエンジン214へ伝送し、当該Zリゾルブエンジンは、Zテストに合格しなかったピクセルを廃棄し、Zテストに合格したピクセルをCROP150へ伝送する。CROP150は、Zリゾルブエンジン214によって伝送されたピクセルのカラー値をフレームバッファ160に保存する。
[0038]図4bは、本発明のある実施の形態に従ってアーリーZモードで動作しているときの図1のグラフィックスレンダリングパイプライン100の論理的なコンフィギュレーションを示している。レイトZモードと同様に、セットアップエンジン110は入力プリミティブを操作し、ラスタエンジン115への提示に適した形態で変換され処理された幾何プリミティブを送出する。しかしながら、レイトZモードとは異なって、ラスタエンジン115は、幾何プリミティブのカバレッジを計算し、ピクセルプリミティブをZテストのためZROP120へそのまま送出する。ZROP120はその計算結果をZリゾルブエンジン214へ伝送し、当該Zリゾルブエンジンは、Zテストに合格したピクセルだけをシェーダエンジン140へ伝送する。Zリゾルブエンジン214によってこの時点で廃棄されたピクセルは、更なる処理を必要としない。シェーダエンジン140はピクセルカラー値を計算し、CROP150はピクセルカラー値をフレームバッファ160に保存する。
[0039]図4a及び4bに示したフローは、図1及び2において説明したように、グラフィックスレンダリングパイプライン100を通るデータフローを構成するPROP130から得られる。PROP130は、それ以外には、アーリーZモードとレイトZモードの両者においてグラフィックスレンダリングパイプライン100のオペレーションに影響を与えないので、図4a及び4bには示していない。
[0040]別の実施の形態では、各幾何プリミティブは、プリミティブがアーリーZモードで処理されるべきか、又は、レイトZモードで処理されるべきかを示す状態ビット(「Zモードフラグ」)を含む。このZモードフラグは、幾何プリミティブ及び関連するピクセルのEarlyZEnable状態を計算する上記の規則に基づいて決定される。各幾何プリミティブは、対応するZモードフラグに従ってルーティングされ処理される。適切である場合には、グラフィックスレンダリングパイプライン100内の各処理エレメントは、アーリーZモードとレイトZモードの両者について独立した状態記憶を有する。Zモードのそれぞれに独立した状態を処理エレメント内に与えることによって、レイトZモード処理を必要とするプリミティブは、グラフィックスレンダリングパイプライン100の如何なる部分もフラッシュする必要なしに、アーリーZモード処理を必要とするプリミティブとインターリーブされる。
[0041]図5は本発明の一以上の態様を実施するように構成された計算装置の概念図である。計算装置500は、限定するものではないが、プロセッサ510と、システムメモリ515と、グラフィックス処理ユニット(GPU)520と、GPU520に接続されたローカルメモリ525と、を備えている。GPU520は、データを処理するために使用される少なくとも一つのレンダリングエンジン521を有している。レンダリングエンジン521は、上述したようにデータを処理するために使用される少なくとも一つのグラフィックスレンダリングパイプライン100を有している。当業者は、本明細書に開示した教示を実施するように構成された一以上の処理ユニットを有する任意のシステムが、本発明の範囲に包含されることを認識するであろう。したがって、計算装置500のアーキテクチャは本発明の範囲を決して限定するものではない。
[0042]上記の事項は本発明の実施の形態を対象としているが、本発明の他の実施の形態及び更なる実施の形態を、本発明の基本的な範囲から逸脱することなく考案することができる。例えば、上記の説明はピクセルのZテストに焦点を合わせているが、本発明の教示は任意の形式のサンプルのZテスト(ピクセル、フラグメント、サブピクセル、又は、その他の形式のカラー値表現)にもそのまま適用可能である。したがって、本発明の範囲は特許請求の範囲の記載によって決定される。
本発明のある実施の形態に係るグラフィックスレンダリングパイプラインによるデータフローの概念図である。 本発明のある実施の形態に係る図1のPROPによるデータフローの概念図である。 本発明のある実施の形態に係る図1のグラフィックスレンダリングパイプラインにおける動作モードを切り替える方法ステップのフローチャートである。 本発明のある実施の形態に従ってレイトZモードで動作する場合の図1のグラフィックスレンダリングパイプラインの論理的なコンフィギュレーションを説明する図である。 本発明のある実施の形態に従ってアーリーZモードで動作する場合の図1のグラフィックスレンダリングパイプラインの論理的なコンフィギュレーションを説明する図である。 本発明の一以上の態様を実施するように構成された計算装置の概念図である。
符号の説明
110…セットアップエンジン、111…履歴カウンタ、115…ラスタエンジン、120…Zラスターオペレーションユニット、130…プレラスターオペレーションユニット、131…アーリーZモードパス、132…レイトZモードパス、140…シェーダエンジン、150…カラーラスターオペレーションユニット、160…フレームバッファ、220,221,222…マルチプレクサ、212…遅延バッファ、214…Zリゾルブエンジン、431…Zデータ、432…カラーデータ、500…計算装置、510…プロセッサ、515…システムメモリ、520…グラフィックス処理ユニット、521…レンダリングエンジン、525…ローカルメモリ。

Claims (10)

  1. グラフィックスプリミティブを処理するための構成可能グラフィックスレンダリングパイプラインであって、
    処理がアーリーZモードで進行すべきか、又は、レイトZモードで進行すべきかを決定するように構成されたセットアップエンジンと、
    前記セットアップエンジンから幾何プリミティブを受け取り、前記幾何プリミティブを一以上のピクセルプリミティブに変換するように構成されたラスタエンジンと、
    ピクセルプリミティブに関連する一以上のサンプルに対してシェーディングオペレーションを実行するように構成されたシェーダエンジンと、
    前記サンプルの各々に対してZテストを実行するように構成されたZラスターオペレーション(ZROP)ユニットと、
    各サンプルについて、該サンプルに関連する前記Zテストの結果に基づいて、該サンプルが保持されるべきか、又は、廃棄されるべきかを決定するように構成されたZリゾルブエンジンと、
    前記シェーダエンジンと前記ZROPユニットとの間のデータフローパスを変更して、アーリーZモードとレイトZモードの両者をサポートするように構成されたプレラスターオペレーション(PROP)ユニットと、
    を備え、
    前記ピクセルプリミティブに関連する前記サンプルは、該グラフィックスレンダリングパイプラインがアーリーZモード用に構成されている場合に、最初に前記ZROPユニット及び前記Zリゾルブエンジンによって処理され、次に前記シェーダエンジンによって処理され、該サンプルは、該グラフィックスレンダリングパイプラインがレイトZモード用に構成されている場合に、最初に前記シェーダエンジンによって処理され、次に前記ZROPユニット及び前記Zリゾルブエンジンによって処理され、
    前記セットアップエンジンが、前記グラフィックスレンダリングパイプラインがレイトZモード用に構成されている間に受け取った前記幾何プリミティブの個数を履歴カウントとして記録する履歴カウンタを有し、
    前記セットアップエンジンが、前記履歴カウントがトリガ値に等しいときに、前記グラフィックスレンダリングパイプラインをアーリーZモードに切り替えることが可能になる、
    グラフィックスレンダリングパイプライン。
  2. 前記セットアップエンジンが、前記幾何プリミティブに関連するレンダリング状態を評価して、アーリーZモードからレイトZモードへの変更、又は、レイトZモードからアーリーZモードへの変更が行われるべきであるか否かを決定するように構成されている、請求項1に記載のグラフィックスレンダリングパイプライン。
  3. 前記セットアップエンジンは、アーリーZモードからレイトZモード、又は、レイトZモードからアーリーZモードへの切り替え前に、フラッシュオペレーションを実行するように構成されている、請求項1又は2に記載のグラフィックスレンダリングパイプライン。
  4. 前記セットアップエンジンは、アーリーZモードからレイトZモードへの切り替え、又は、レイトZモードからアーリーZモードへの切り替えが行われるべきであると決定する際に、Zモードトークンを生成するように構成されており、
    前記Zモードトークンは、該グラフィックスレンダリングパイプライン中を伝送され、受け取られたときに一以上のデータフローパス制御ユニットにモードを切り替えさせる、
    請求項1〜3のいずれか一項に記載のグラフィックスレンダリングパイプライン。
  5. 前記Zモードトークンは、一以上のデータフローパス制御ユニットに、モードを切り替える前にローカルフラッシュオペレーションを開始させる、請求項4に記載のグラフィックスレンダリングパイプライン。
  6. 前記サンプルがピクセルである、請求項1〜5のいずれか一項に記載のグラフィックスレンダリングパイプライン。
  7. 前記セットアップエンジンが、アーリーZモードからレイトZモード、又は、レイトZモードからアーリーZモードへ切り替えるために、前記PROPユニットに前記シェーダエンジンと前記ZROPユニットとの間の前記データフローパスを変更するよう指示するように構成されている、請求項1〜6のいずれか一項に記載のグラフィックスレンダリングパイプライン。
  8. グラフィックスプリミティブを処理するように構成されたコンピュータシステムであって、
    メモリと、
    構成可能グラフィックスレンダリングパイプラインを有する処理ユニットと、
    を備え、
    前記グラフィックスレンダリングパイプラインが、
    処理がアーリーZモードで進行すべきか、又は、レイトZモードで進行すべきかを決定するように構成されたセットアップエンジンと、
    前記セットアップエンジンから幾何プリミティブを受け取り、前記幾何プリミティブを一以上のピクセルプリミティブに変換するように構成されたラスタエンジンと、
    ピクセルプリミティブに関連する一以上のサンプルに対してシェーディングオペレーションを実行するように構成されたシェーダエンジンと、
    前記サンプルの各々に対してZテストを実行するように構成されたZラスターオペレーション(ZROP)ユニットと、
    各サンプルについて、該サンプルに関連する前記Zテストの結果に基づいて、該サンプルが保持されるべきか、又は、廃棄されるべきかを決定するように構成されたZリゾルブエンジンと、
    前記シェーダエンジンと前記ZROPユニットとの間のデータフローパスを変更して、アーリーZモードとレイトZモードの両者をサポートするように構成されたプレラスターオペレーション(PROP)ユニットと、
    を有し、
    前記ピクセルプリミティブに関連する前記サンプルは、該グラフィックスレンダリングパイプラインがアーリーZモード用に構成されている場合に、最初に前記ZROPユニット及び前記Zリゾルブエンジンによって処理され、次に前記シェーダエンジンによって処理され、該サンプルは、該グラフィックスレンダリングパイプラインがレイトZモード用に構成されている場合に、最初に前記シェーダエンジンによって処理され、次に前記ZROPユニット及び前記Zリゾルブエンジンによって処理され、
    前記セットアップエンジンが、前記グラフィックスレンダリングパイプラインがレイトZモード用に構成されている間に受け取った前記幾何プリミティブの個数を履歴カウントとして記録する履歴カウンタを有し、
    前記セットアップエンジンが、前記履歴カウントがトリガ値に等しいときに、前記グラフィックスレンダリングパイプラインをアーリーZモードに切り替えることが可能になる、
    コンピュータシステム。
  9. 前記セットアップエンジンが、前記幾何プリミティブに関連するレンダリング状態を評価して、アーリーZモードからレイトZモードへの変更、又は、レイトZモードからアーリーZモードへの変更が行われるべきであるか否かを決定するように構成されている、請求項8に記載のコンピュータシステム。
  10. 前記セットアップエンジンが、アーリーZモードからレイトZモード、又は、レイトZモードからアーリーZモードへの切り替え前にフラッシュオペレーションを実行するように構成されている、請求項8又は9に記載のコンピュータシステム。
JP2007123715A 2006-05-08 2007-05-08 アーリーzモードを使用する構成可能グラフィックスレンダリングパイプラインの最適化 Active JP4513108B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/430,635 US8933933B2 (en) 2006-05-08 2006-05-08 Optimizing a graphics rendering pipeline using early Z-mode

Publications (2)

Publication Number Publication Date
JP2007328774A JP2007328774A (ja) 2007-12-20
JP4513108B2 true JP4513108B2 (ja) 2010-07-28

Family

ID=38660786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007123715A Active JP4513108B2 (ja) 2006-05-08 2007-05-08 アーリーzモードを使用する構成可能グラフィックスレンダリングパイプラインの最適化

Country Status (5)

Country Link
US (1) US8933933B2 (ja)
JP (1) JP4513108B2 (ja)
KR (1) KR100899488B1 (ja)
CN (1) CN100565577C (ja)
TW (1) TWI378398B (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8766995B2 (en) 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US8933933B2 (en) * 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
US8207975B1 (en) * 2006-05-08 2012-06-26 Nvidia Corporation Graphics rendering pipeline that supports early-Z and late-Z virtual machines
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US20080284780A1 (en) * 2007-05-15 2008-11-20 R-Ming Hsu Method for enabling alpha-to-coverage transformation
JP5536760B2 (ja) * 2008-05-30 2014-07-02 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド シェーダ列のための冗長方法及び装置
US9093040B2 (en) 2008-05-30 2015-07-28 Advanced Micro Devices, Inc. Redundancy method and apparatus for shader column repair
GB2475375B (en) * 2008-06-04 2011-12-14 Advanced Risc Mach Ltd Graphics processing systems
US9367487B1 (en) * 2009-06-10 2016-06-14 Nvidia Corporation Mitigating main crossbar load using dedicated connections for certain traffic types
AU2009202377A1 (en) * 2009-06-15 2011-01-06 Canon Kabushiki Kaisha Combining overlapping objects
US9142057B2 (en) * 2009-09-03 2015-09-22 Advanced Micro Devices, Inc. Processing unit with a plurality of shader engines
KR101719485B1 (ko) * 2010-09-20 2017-03-27 삼성전자주식회사 그래픽 처리 유닛에서의 사전 픽셀 제거를 위한 장치 및 방법
US9019292B2 (en) * 2011-09-12 2015-04-28 Microsoft Technology Licensing Llc Reordering graph execution for processing optimization
US9953455B2 (en) * 2013-03-13 2018-04-24 Nvidia Corporation Handling post-Z coverage data in raster operations
US10008029B2 (en) 2013-05-31 2018-06-26 Nvidia Corporation Updating depth related graphics data
KR20150042095A (ko) 2013-10-10 2015-04-20 삼성전자주식회사 드로우 커맨드들의 처리 순서를 재조정하여 프레임을 렌더링하는 장치 및 방법
US9697580B2 (en) * 2014-11-10 2017-07-04 Qualcomm Incorporated Dynamic pipeline for graphics processing
US10002404B2 (en) * 2015-04-15 2018-06-19 Mediatek Singapore Pte. Ltd. Optimizing shading process for mixed order-sensitive and order-insensitive shader operations
KR102472131B1 (ko) * 2015-09-03 2022-11-29 삼성전자주식회사 쉐이더 프로그램을 생성하는 방법 및 장치
US9824458B2 (en) * 2015-09-23 2017-11-21 Qualcomm Incorporated Dynamically switching between late depth testing and conservative depth testing
GB2543866B (en) * 2016-03-07 2017-11-01 Imagination Tech Ltd Task assembly for SIMD processing
US20180082464A1 (en) * 2016-09-16 2018-03-22 Tomas G. Akenine-Moller Apparatus and method for an efficient 3d graphics pipeline
US10540808B2 (en) * 2016-09-16 2020-01-21 Intel Corporation Hierarchical Z-culling (HiZ) optimization for texture-dependent discard operations
US10943389B2 (en) * 2016-12-09 2021-03-09 Advanced Micro Devices, Inc. Removing or identifying overlapping fragments after z-culling
US10706612B2 (en) * 2017-04-01 2020-07-07 Intel Corporation Tile-based immediate mode rendering with early hierarchical-z
US11170555B2 (en) 2019-11-27 2021-11-09 Arm Limited Graphics processing systems
US11210821B2 (en) * 2019-11-27 2021-12-28 Arm Limited Graphics processing systems
US11216993B2 (en) 2019-11-27 2022-01-04 Arm Limited Graphics processing systems
US11210847B2 (en) 2019-11-27 2021-12-28 Arm Limited Graphics processing systems
CN116703689B (zh) * 2022-09-06 2024-03-29 荣耀终端有限公司 一种着色器程序的生成方法、装置和电子设备
GB2624430A (en) * 2022-11-17 2024-05-22 Advanced Risc Mach Ltd Graphics processors

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950533A (ja) * 1995-08-08 1997-02-18 Kubota Corp グラフィックス表示装置
JP2002269583A (ja) * 2000-08-23 2002-09-20 Nintendo Co Ltd 描画モードに基づいて隠面処理の順番を動的に再構成する方法および装置
US6734861B1 (en) * 2000-05-31 2004-05-11 Nvidia Corporation System, method and article of manufacture for an interlock module in a computer graphics processing pipeline
JP2006338542A (ja) * 2005-06-03 2006-12-14 Mitsubishi Electric Corp グラフィック装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5798770A (en) * 1995-03-24 1998-08-25 3Dlabs Inc. Ltd. Graphics rendering system with reconfigurable pipeline sequence
US6222550B1 (en) * 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US7034828B1 (en) * 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6999076B2 (en) * 2001-10-29 2006-02-14 Ati Technologies, Inc. System, method, and apparatus for early culling
JP3761085B2 (ja) * 2001-11-27 2006-03-29 株式会社ソニー・コンピュータエンタテインメント 画像処理装置及びその構成部品、レンダリング処理方法
US6828978B2 (en) * 2002-02-28 2004-12-07 David B. Buehler Bucket-sorting graphical rendering apparatus and method
US6930684B2 (en) * 2002-09-27 2005-08-16 Broadizon, Inc. Method and apparatus for accelerating occlusion culling in a graphics computer
US7633506B1 (en) * 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US7268779B2 (en) * 2002-12-24 2007-09-11 Intel Corporation Z-buffering techniques for graphics rendering
KR100510131B1 (ko) * 2003-01-29 2005-08-26 삼성전자주식회사 픽셀 캐쉬 및 이를 이용한 3차원 그래픽 가속 장치 및 방법
US7978194B2 (en) 2004-03-02 2011-07-12 Ati Technologies Ulc Method and apparatus for hierarchical Z buffering and stenciling
US20050195198A1 (en) * 2004-03-03 2005-09-08 Anderson Michael H. Graphics pipeline and method having early depth detection
US7724263B2 (en) * 2004-05-14 2010-05-25 Nvidia Corporation System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories
US8860721B2 (en) * 2006-03-28 2014-10-14 Ati Technologies Ulc Method and apparatus for processing pixel depth information
US8933933B2 (en) * 2006-05-08 2015-01-13 Nvidia Corporation Optimizing a graphics rendering pipeline using early Z-mode
US8207975B1 (en) * 2006-05-08 2012-06-26 Nvidia Corporation Graphics rendering pipeline that supports early-Z and late-Z virtual machines
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950533A (ja) * 1995-08-08 1997-02-18 Kubota Corp グラフィックス表示装置
US6734861B1 (en) * 2000-05-31 2004-05-11 Nvidia Corporation System, method and article of manufacture for an interlock module in a computer graphics processing pipeline
JP2002269583A (ja) * 2000-08-23 2002-09-20 Nintendo Co Ltd 描画モードに基づいて隠面処理の順番を動的に再構成する方法および装置
JP2006338542A (ja) * 2005-06-03 2006-12-14 Mitsubishi Electric Corp グラフィック装置

Also Published As

Publication number Publication date
TWI378398B (en) 2012-12-01
US20070257905A1 (en) 2007-11-08
CN100565577C (zh) 2009-12-02
US8933933B2 (en) 2015-01-13
CN101101667A (zh) 2008-01-09
JP2007328774A (ja) 2007-12-20
TW200821985A (en) 2008-05-16
KR20070108823A (ko) 2007-11-13
KR100899488B1 (ko) 2009-05-27

Similar Documents

Publication Publication Date Title
JP4513108B2 (ja) アーリーzモードを使用する構成可能グラフィックスレンダリングパイプラインの最適化
US8207975B1 (en) Graphics rendering pipeline that supports early-Z and late-Z virtual machines
JP5538750B2 (ja) グラフィックス処理システム
US7814303B2 (en) Execution of a sequence of vector instructions preceded by a swizzle sequence instruction specifying data element shuffle orders respectively
JP5512803B2 (ja) ベクトル命令を取り扱うためのデータ処理装置および方法
US7904700B2 (en) Processing unit incorporating special purpose register for use with instruction-based persistent vector multiplexer control
KR101107394B1 (ko) 명령어 차단 시퀀서 로직을 갖는 다중 실행 유닛 처리 유닛
US7904699B2 (en) Processing unit incorporating instruction-based persistent vector multiplexer control
US20160098856A1 (en) Using tiling depth information in hidden surface removal in a graphics processing system
US11010954B2 (en) Efficient redundant coverage discard mechanism to reduce pixel shader work in a tile-based graphics rendering pipeline
KR960003047B1 (ko) 분기명령 실행전에 분기후의 명령을 병렬처리하는 병렬처리 장치 및 그의 병렬처리 방법
US20230230319A1 (en) Method and graphics processing system for rendering one or more fragments having shader-dependent properties
JPH0736848A (ja) 情報処理装置および処理方法
JP2020506474A (ja) アウトオブオーダのピクセルシェーダのエクスポート
CN113744121A (zh) 任务合并
JP2007094986A (ja) シミュレーション装置およびシミュレーション方法
US20200234484A1 (en) Graphics processing systems
JP3830236B2 (ja) クイック・デコード命令を用いるための方法およびデータ処理システム
US6707831B1 (en) Mechanism for data forwarding
US7200739B2 (en) Generation of modified command sequence from original command by feeding back for subsequent modification based on decode control signal
JP7474779B2 (ja) 命令順序付け
CN117274026A (zh) 在图形处理系统中处理具有着色器依赖性特性的片段
GB2601637A (en) Method and graphics processing system for rendering one or more fragments having shader-dependent properties
KR100631396B1 (ko) 반도체장치
JP5387526B2 (ja) 制御装置およびチューニング方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100312

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4513108

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

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

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