グラフィック画像を処理するように構成された複数のユニットと、選択値に基づいて、2つのユニットのうちの1つから選択されたデータを受け取り、処理するように構成されたデプスエンジンとを備える装置。請求項1に記載の装置において、前記デプスエンジンは、各画素を破棄するかを判定するために、前記各画素にステンシルテストを実行するように構成され、前記ステンシルテストは、各画素の格納されたステンシル値を基準値と比較することを備える装置。請求項1に記載の装置において、前記デプスエンジンは、アルファテスト結果とフラグメントシェーダテスト結果とのうちの少なくとも1つを受け取り、各画素にステンシルテストを実行し、前記画素を表示するかを判定するように構成された装置。請求項1に記載の装置において、前記デプスエンジンは、各画素を破棄するかを判定するために、前記画素にデプステストを実行するように構成され、前記デプステストは、各画素のカレントz値をバッファ内に格納された対応するz値と比較し、前記デプスエンジンは、前記比較に基づいて、前記画素を破棄するかを判定するように構成された装置。請求項1に記載の装置において、前記デプスエンジンは、アルファテスト結果とフラグメントシェーダテスト結果とのうちの少なくとも1つを受け取り、各画素にデプステストを実行し、前記画素を表示するかを判定するように構成され、前記デプステストは、各画素のカレントz値を、バッファ内に格納された対応するz値と比較することを備える装置。請求項1に記載の装置において、前記複数のユニットは、コマンドエンジンと、三角形位置及びzセットアップユニットと、ラスタリゼーションエンジンと、属性セットアップエンジンと、画素補間エンジンと、テクスチャエンジンと、フラグメントシェーダとのうちの少なくとも2つを備える装置。請求項1に記載の装置において、前記2つのユニットが、ラスタリゼーションエンジンとフラグメントシェーダとを備える装置。請求項1に記載の装置において、前記フラグメントシェーダは、z値を修正することと、画素を破棄することとのうちの少なくとも1つを実行するように構成された装置。請求項1に記載の装置において、前記選択値を受け取り、第1のユニット又は第2のユニットから前記デプスエンジンへデータを選択的に渡す交換手段を更に備える装置。モバイル電話である請求項1に記載の装置。いくつかのグラフィック処理モジュールを用いてグラフィック画像を処理することと、選択値に基づいて、2つのユニットのうちの1つからデプスエンジンへ入力されるデータを選択的に切り替えることとを備える命令セットを格納する機械読取可能記憶媒体。請求項11に記載の機械読取可能記憶媒体であって、前記2つのユニットが、ラスタリゼーションエンジンとフラグメントシェーダとを備える機械読取可能記憶媒体。グラフィック画像を処理する複数の手段と、選択値に基づいて、2つのユニットのうちの1つから選択されたデータを受け取り、処理するデプステスト手段とを備える装置。請求項13に記載の装置において、前記2つのユニットが、ラスタリゼーションエンジンとフラグメントシェーダとを備える装置。いくつかのグラフィック処理モジュールを用いてグラフィック画像を処理することと、選択値を受け取ることと、前記選択値に基づいて、2つのユニットのうちの1つからデプスエンジンへ入力されるデータを選択的に切り替えることとを備える方法。請求項15に記載の方法において、各画素を破棄するかを判定するために、前記画素にステンシルテストを実行することを更に備え、前記ステンシルテストは、各画素の格納されたステンシル値を基準値と比較することを備える方法。請求項15に記載の方法において、アルファテスト結果とフラグメントシェーダテスト結果とのうちの少なくとも1つを受け取ることと、各画素にステンシルテストを実行することと、前記画素を表示するかを判定することとを更に備える方法。請求項15に記載の方法において、各画素を破棄するかを判定するために、前記画素にデプステストを実行することを更に備え、前記デプステストは、各画素のカレントz値を、バッファ内に格納された対応するz値と比較することを備える方法。請求項15に記載の方法において、アルファテスト結果とフラグメントシェーダテスト結果とのうちの少なくとも1つを受け取ることと、各画素にデプステストを実行することであって、前記デプステストは、各画素のカレントz値を、バッファ内に格納された対応するz値と比較することを備えることと、前記デプステストに基づいて、前記画素を表示するかを判定することとを更に備える方法。請求項15に記載の方法において、前記モジュールが、コマンドエンジンと、三角形位置及びzセットアップユニットと、ラスタリゼーションエンジンと、属性セットアップエンジンと、画素補間エンジンと、テクスチャエンジンと、フラグメントシェーダとのうちの少なくとも2つを備える方法。請求項15に記載の方法において、前記2つのユニットが、ラスタリゼーションエンジンとフラグメントシェーダとを備える方法。請求項15に記載の方法において、前記フラグメントシェーダは、z値を修正することと、画素を破棄することとのうちの少なくとも1つを実行するように構成された方法。図1は、無線通信システムにおいて用いられうる無線通信デバイス100を示す。デバイス100は、セルラー電話、端末、ハンドセット、携帯情報端末PDA、ラップトップコンピュータ、ビデオゲーム機、又はその他いくつかのデバイスであることができる。デバイス100は、符号分割多元接続CDMA、例えばグローバルシステムフォーモバイルコミュニケーションGSM登録商標のような時分割多元接続、又はその他いくつかの無線通信規格を用いることができる。デバイス100は、受信経路及び送信経路を経由して双方向通信を提供することができる。1つ又は複数の基地局によって送信された信号が、受信経路上で、アンテナ112によって受信され、受信機RCVR114へ提供されることができる。受信機114は、受信した信号を調整及びデジタル化し、更なる処理のために、サンプルをデジタルセクション120へ提供する。送信経路上で、送信機TMTR116は、送信するデータをデジタルセクション120から受け取り、そのデータを処理及び調整し、アンテナ112経由で1つ又は複数の基地局へ送信される変調信号を生成する。デジタルセクション120は、1つ又は複数のデジタル信号プロセッサDSP、マイクロプロセッサ、縮小命令セットコンピュータRISC等を用いて実現されることができる。デジタルセクション120はまた、1つ又は複数の特定用途向け集積回路ASICやその他いくつかのタイプの集積回路IC上に構成されることもできる。デジタルセクション120は、例えばモデムプロセッサ122、ビデオプロセッサ124、アプリケーションプロセッサ126、ディスプレイプロセッサ128、コントローラ/プロセッサ130、グラフィックプロセッサ140、及び外部バスインタフェースEBI160のような様々な処理ユニット及びインタフェースユニットを含むことができる。モデムプロセッサ122は、データ送受信のための、例えば符号化、変調、復調、及び復号等の処理を実行する。ビデオプロセッサ124は、例えばカムコーダ、ビデオ再生、及びビデオ会議のようなビデオアプリケーションに関するビデオコンテンツ例えば静止画像、ビデオ動画、動画文書の処理を実行する。アプリケーションプロセッサ126は、例えばマルチウェイコール、ウェブ閲覧、メディアプレーヤ、及びユーザインタフェースのような様々なアプリケーションに関する処理を実行する。ディスプレイプロセッサ128は、ディスプレイユニット180へのビデオ、グラフィック、及びテキストの表示を容易にするための処理を実行する。コントローラ/プロセッサ130は、デジタルセクション120内の様々な処理ユニット及びインタフェースユニットの動作を指示する。キャッシュメモリシステム150は、グラフィックプロセッサ140のためのデータ及び/又は命令を格納することができる。EBI160は、デジタルセクション120例えばキャッシュとメインメモリ170との間のデータの伝送を容易にする。グラフィックプロセッサ140は、グラフィックアプリケーションのための処理を実行することができ、本明細書で説明されるように実現されうる。一般に、グラフィックプロセッサ140は、グラフィック動作の任意のセットについて、任意の数の処理ユニット又はモジュールを含むことができる。グラフィックプロセッサ140及びその構成要素図2乃至4を用いて以下で説明されるは、例えばASIC、デジタル信号プロセッサデバイスDSPD、プログラマブル論理デバイスPLD、フィールドプログラマブルゲートアレイFPGA、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、及びその他の電子ユニットのような様々なハードウェアユニットで実現されうる。グラフィックプロセッサ140のある部分は、ファームウェア及び/又はソフトウェアで実現されうる。例えば、制御ユニットは、本明細書で説明される機能を実行するファームウェアモジュール及び/又はソフトウェアモジュール例えば手順、関数等を用いて実現されうる。ファームウェアコード及び/又はソフトウェアコードは、メモリ例えば図1のメモリ170内に格納され、プロセッサ例えばプロセッサ130によって実行されることができる。メモリは、プロセッサ内に、あるいはプロセッサに外付けで実装されうる。グラフィックプロセッサ140は、例えばオープングラフィックライブラリオープンGL、ダイレクト3D等のようなソフトウェアインタフェースを実現することができる。オープンGLは、公的に入手可能な、2004年10月22日付のTheOpenGLGraphicsSystemASpecification第2版と題された文書で説明される。図2は、図1の無線デバイス100内のグラフィックプロセッサ140の1つの構成140Aのいくつかの構成要素又は処理ユニットを示す。図2は、GPUグラフィック処理ユニットの前半部を表しうる。各処理ユニットは、専用ハードウェア、プロセッサ、又はこれらの組み合わせを用いて実現されるエンジンであることができる。例えば、図2に示すエンジンは、専用ハードウェアを用いて実現されうるが、一方、フラグメントシェーダ214は、プログラマブル中央処理装置CPU又は内蔵プロセッサを用いて実現されうる。他の構成において、処理ユニット200乃至216は、望まれる最適性能に依存して、様々な順序で位置することができる。例えば、電力を節約するためには、図2に示すように、不可視の画素が早く破棄されるように、パイプラインにおいて、ステンシルテスト及びデプステストを早期に実行することが望ましい。別の例では、図3に示すように、ステンシル及びデプスエンジン206が、テクスチャマッピングエンジン212の後に位置することができる。図2において、2-D画像及び3D画像をレンダリングするための様々な処理ユニット200乃至216が、パイプライン内に位置する。グラフィックプロセッサ140Aのその他の構成は、図2に示すユニットの代わりに、又はそれらに加えて、他のユニットを含むことができる。コマンドエンジン200は、実行されるべきグラフィック動作を指定する、到来するレンダリングコマンド又はレンダリング命令を受信し、復号することができる。三角形位置及びzセットアップエンジン202は、後続するラスタリゼーション処理のために必要なパラメータを計算することができる。例えば、三角形位置及びzセットアップエンジン202は、各三角形の3点に関する一次方程式の係数、デプスz勾配に関する係数、等を計算することができる。三角形位置及びzセットアップエンジン202は、早期セットアップと称されることができ、ビューポイント変換と早期アセンブリ、シザーウインドウに対する早期拒否、及び背面の除外backingcullingを行う。ラスタリゼーションエンジン204又はスキャン変換器は、各三角形又はラインを画素に分解し、各画素のスクリーン座標を生成する。デプスエンジン206は、画素が表示されるべきか破棄されるべきかを判定するために、各画素にステンシルテストを実行することができる。ステンシルバッファは、レンダリングされている画像内の各画素の位置に関するカレントステンシル値を格納することができる。デプスエンジン206は、各画素の格納されたステンシル値を基準値と比較し、その比較に基づいて画素を保持するか、又は破棄する例えば、パスフラグ又はフェイルフラグを生成することができる。デプスエンジン206はまた、もし適用可能であれば、画素が表示されるべきか破棄されるべきかを判定するために、各画素にzテストとも称されるデプステストを実行することもできる。zバッファは、レンダリングされている画像内の各画素の位置に関するカレントz値を格納する。デプスエンジン206は、各画素のz値カレントz値を、zバッファ内の対応するz値格納されたz値と比較し、その比較に基づいてパスフラグ又はフェイルフラグを生成し、画素を表示し、zバッファを更新することができる。あるいは、もしカレントz値が格納されたz値よりも近ければ、ステンシルバッファを更新することができる。デプスエンジン206は、もしカレントz値が、格納されたz値よりも遥かに後方にあれば、画素を破棄することができる。この早期のデプス/ステンシルテスト及び動作は、起こりうる不可視の画素/プリミティブを拒否する。属性セットアップエンジン208は、後続する画素属性の補間のためのパラメータを計算することができる。例えば、属性セットアップエンジン208は、属性補間に関する一次方程式の係数を計算することができる。画素補間エンジン210は、各三角形内の各画素の属性成分値を、画素スクリーン座標に基づいて計算し、属性セットアップエンジン208からの情報を用いることができる。属性セットアップエンジン208及び画素補間エンジン210は、全ての可視プリミティブの画素にわたって補間するために、属性補間器内で結合されることができる。テクスチャマッピングエンジン又はテクスチャエンジン212は、もしイネーブルされれば、各三角形にテクスチャを適用するために、テクスチャマッピングを実行することができる。テクスチャ画像は、テクスチャバッファ内に格納されることができる。各三角形の3つの頂点は、テクスチャ画像内の3つのu、v座標に関連付けられ、三角形の各画素はその後、テクスチャ画像内の特定のテクスチャ座標に関連付けられることができる。テクスチャは、各画素の色を、その画素のテクスチャ座標によって示される位置で、テクスチャ画像の色を用いて修正することによって達成されうる。各画素は、例えば色、デプス、テクスチャ等のような情報に関連付けられる。フラグメントとは、画素及びその関連情報である。フラグメントシェーダ214は、命令のシーケンスを備えるソフトウェアプログラムを各フラグメントに適用することができる。フラグメントシェーダ214は、z値を修正することができる。フラグメントシェーダ214は、画素を破棄するか、及びテスト結果をデプスエンジン206へ送るかに関するテストを生成することができる。フラグメントシェーダ214はまた、テクスチャ要求をテクスチャマッピングエンジン212へ送ることもできる。フラグメントエンジン216は、最後の画素レンダリングを完了し、例えばもしイネーブルされればアルファテスト、フォグブレンディング、アルファブレンディング、論理動作、及びディザリング動作のような機能を各フラグメントに実行し、結果を色バッファへ提供することができる。もしアルファテストがイネーブルされれば、フラグメントエンジン216は、画素を表示するかを判定しうるデプスエンジン206へ、アルファテストの結果を送ることができる。図2のように、早期のステージでデプステストを実行すると、電力及び帯域幅を節約することができる。グラフィックプロセッサ140Aは、属性セットアップ、画素補間、テクスチャフェッチング、及び不可視の画素へのシェーダプログラムの適用を実行するために、計算電力及びメモリ帯域幅を消費する必要がない。しかし、いくつかのシェーダプログラムは、デプス値を修正する。図3は、フラグメントシェーダ214の後にデプステスト300を実行し、早期のデプスエンジン206をディセーブルするグラフィックプロセッサ140Bを示す。パイプライン内に2つの同一のデプスエンジン206、300を有することは、設計に冗長をもたらす。これは、電力及びマイクロチップ領域にとって良くない。図4は、1つのデプスエンジン400を備えるグラフィックプロセッサ140Cを設計することによる、この問題の解決策を示す。デプスエンジン400は、グラフィックアプリケーションに基づいて、早期zテスト位置又はシェーダの後に動的に再配置される、あるいは切り替えられることができる。グラフィックアプリケーションは、早期デプスzテストか、シェーダz値修正後のデプステストかの何れかを行うことができる。グラフィックプロセッサ140C又はデジタルセクション120内のソフトウェアは、予めシェーダプログラムを知っていることができる。図4の早期z入力は、早期zであるか早期zでないかを示す1ビットの2進値1又は0であることができる。もし早期zが選択されれば、第1のマルチプレクサ402は、ラスタリゼーションエンジン204からのデータをデプスエンジン400へ渡し、第2のマルチプレクサ404は、デプスエンジン400からのデータを属性セットアップエンジン208へ渡す。図4のマルチプレクサ402、404及び406は、例えばスイッチ等のような他の構成要素によって実現されることができる。もし早期zが選択されなければ、第2のマルチプレクサ404は、ラスタリゼーションエンジン204からのデータを属性セットアップエンジン208へ渡し、第1のマルチプレクサ402は、フラグメントシェーダ214からのデータをデプスエンジン400へ渡す。第3のマルチプレクサは、デプスエンジン400からのデータを、例えばフラグメントエンジン216のような別の構成要素へ渡すことができる。図4のグラフィックプロセッサ140Cは、早期Zの場合と、シェーダ修正されたZの場合との両方をサポートする柔軟性を有する。グラフィックプロセッサ140Cは、図3と比べて、2つの同一のデプスエンジンを備える必要がない。本明細書で説明されたグラフィックシステムは、無線通信、計算、ネットワーク、個人電子機器等に用いることができる。上述した実施形態への様々な変形例が、当業者には容易に明らかになるであろう。本明細書で定義された一般原理は、本開示の精神又は範囲を逸脱することなく他の実施形態に適用することができる。従って、本開示は、本明細書に示す実施形態を限定することは意図されておらず、本明細書に開示された原理及び新規特徴と整合の取れた最も広い範囲と一致するように意図されている。