JP2018514855A - ハイブリッド2d/3dグラフィックスレンダリング - Google Patents

ハイブリッド2d/3dグラフィックスレンダリング Download PDF

Info

Publication number
JP2018514855A
JP2018514855A JP2017550860A JP2017550860A JP2018514855A JP 2018514855 A JP2018514855 A JP 2018514855A JP 2017550860 A JP2017550860 A JP 2017550860A JP 2017550860 A JP2017550860 A JP 2017550860A JP 2018514855 A JP2018514855 A JP 2018514855A
Authority
JP
Japan
Prior art keywords
gpu
graphics
graphics processing
hardware units
processing hardware
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.)
Pending
Application number
JP2017550860A
Other languages
English (en)
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2018514855A publication Critical patent/JP2018514855A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

グラフィックス処理ユニット(GPU)は、GPUの第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行し得る。GPUは、さらに、3Dグラフィックス処理を実行する際に使用されないGPUの第2の複数のグラフィックス処理ハードウェアユニットと、GPUの第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2次元(2D)グラフィックス動作を実行し得る。

Description

[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、2015年3月31日に出願された米国仮出願第62/141,095号の利益を主張する。
[0002]本開示は、2次元(2D)および3次元(3D)画像のグラフィックス処理に関する。
[0003]グラフィックス処理ユニット(GPU:graphics processing unit)は、2Dならびに3D画像をレンダリングするために使用される特殊なハードウェアユニットである。ソフトウェアアプリケーションは、2Dグラフィックス動作ならびに3Dグラフィックス動作の混合を呼び出し(invoke a mixture of)得る。したがって、GPUは、2Dグラフィックスおよび3Dグラフィックスを処理し、レンダリングするために別個のグラフィックスハードウェアを含む必要があり得る。
[0004]概して、本開示の態様は、3Dグラフィックスパイプラインに従って3Dグラフィックス処理を実行すること、ならびに2Dグラフィックスパイプラインに従って2Dグラフィックス処理を実行することを行うように構成されたGPUを対象とする。GPUは、3Dグラフィックスパイプラインに従ってグラフィックス処理を実行するために使用され得る3Dハードウェアユニットのセットを含み得る。3Dハードウェアユニットのセットは、シェーダプロセッサ(shader processors)、テクスチャプロセッサ(texture processors)、キャッシュなどを含み得る。GPUは、2Dグラフィックスパイプラインに従って2Dグラフィックス処理をも実行するために、専用2Dグラフィックスハードウェアユニットのセットとともにそれらの3Dハードウェアユニットのサブセットを利用し得る。2Dハードウェアユニットのセットは、ダイレクトメモリアクセス(DMA)転送を実行するための回路、メモリへの読取りおよび書込みを制御するためのハードウェアユニットなどを含み得る。3Dハードウェアユニットのサブセットと一緒に専用2Dグラフィックスハードウェアユニットのセットを利用することによって、GPUは、2Dグラフィックス処理の性能を増加させ得、さらに、特殊な2Dハードウェアユニットに専用であるGPUの物理的エリアを最小限に抑えながら、2Dグラフィックス処理実行中に電力消費を減少させ得る。
[0005]一態様では、本開示は、グラフィックス処理のための方法を対象とする。本方法は、グラフィックス処理ユニット(GPU)によって、GPUの第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行することを含み得る。本方法は、GPUによって、3Dグラフィックス処理を実行する際に使用されないGPUの第2の複数のグラフィックス処理ハードウェアユニットと、GPUの第1の複数のグラフィックス処理モジュールのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2次元(2D)グラフィックス動作を実行することをさらに含み得る。
[0006]別の態様では、本開示はデバイスを対象とする。本デバイスはメモリを含み得る。本デバイスは、第1の複数のグラフィックス処理ハードウェアユニットと第2の複数のグラフィックス処理ハードウェアユニットとを含むグラフィックス処理ユニット(GPU)をさらに含み得、ここにおいて、GPUは、GPUの第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するように構成され、ここにおいて、GPUは、GPUの第2の複数のグラフィックス処理ハードウェアユニットと、第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して2次元(2D)グラフィックス動作を実行するようにさらに構成される。
[0007]別の態様では、本開示は、グラフィックス処理のための装置を対象とする。本装置は、第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するための手段を含み得る。本装置は、3Dグラフィックス処理を実行する際に使用されない第2の複数のグラフィックス処理ハードウェアユニットと、第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2次元(2D)グラフィックス動作を実行するための手段をさらに含み得る。
[0008]別の態様では、本開示はグラフィックス処理ユニット(GPU)を対象とする。本GPUは、第1の複数のグラフィックス処理ハードウェアユニットと第2の複数のグラフィックス処理ハードウェアユニットとを含み得、ここにおいて、GPUは、GPUの第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するように構成され、ここにおいて、GPUは、GPUの第2の複数のグラフィックス処理ハードウェアユニットと、第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して2次元(2D)グラフィックス動作を実行するようにさらに構成される。
[0009]本開示の1つまたは複数の態様の詳細が添付の図面および以下の説明に記載されている。本開示の他の特徴、目的、および利点は、これらの説明および図面、ならびに特許請求の範囲から明らかになろう。
[0010]本開示の1つまたは複数の態様を実装するように構成され得る例示的なコンピューティングデバイスを示すブロック図。 [0011]図1の例示的なプロセッサ、例示的なGPU、および例示的なシステムメモリの例示的な実装形態を示すブロック図。 [0012]図2のGPUの動作モードをさらに詳細に示すブロック図。 図2のGPUの動作モードをさらに詳細に示すブロック図。 図2のGPUの動作モードをさらに詳細に示すブロック図。 図2のGPUの動作モードをさらに詳細に示すブロック図。 [0013]本開示の例に従って構成されたGPUの例示的な動作を示すフローチャート。
詳細な説明
[0014]概して、本開示の態様は、3Dグラフィックスパイプラインに従って3Dグラフィックス処理を実行すること、ならびに2Dグラフィックスパイプラインに従って2Dグラフィックス処理を実行することを行うように構成されたプロセッサ(たとえば、GPU)を対象とする。GPUは、2Dグラフィックス処理を実行することに専用であるハードウェアモジュールと一緒に、3Dグラフィックス処理を実行するために使用されるハードウェアモジュールの一部分を使用して2Dグラフィックス処理を実行し得る。
[0015]3Dグラフィックス処理は、2D画像を生成するために幾何学的データの3D表現を処理することを含み得る。たとえば、GPUは、GPUが、3D画像の2D表現をレンダリングするためにステップのシーケンスを介して3D画像を表すプリミティブ(primitives)を処理し得る、3Dグラフィックスパイプラインを通して、三角形、線、点などのプリミティブによって表される3D画像を処理し得る。2Dグラフィックス処理は、線、長方形、または多角形などの2D幾何学的形状を描きレンダリングすること、ビットブロック転送(bitBLT)として知られるプロセスにおいてあるビットマップから別のビットマップにピクセルのブロックをコピーすること、メモリ間で(たとえば、グラフィックスメモリおよびシステムメモリにならびに/またはそれらから)ピクセルのブロックを移動すること、ビットブロックのためのスケーリング動作、ビットブロックのためのブレンディング動作、ビットマップのピクセルのブロックに対する他の動作、ピクセルのブロックにデフォルト値を書き込むクリア動作(clear operations)など、1つまたは複数の2Dグラフィックス動作を実行することを含み得る。
[0016]GPUは、3Dグラフィックス処理を実行するためのハードウェアモジュールのセットならびに2Dグラフィックス動作を実行するためのハードウェアモジュールの別個のセットを含み得る。たとえば、GPUは、3Dグラフィックスパイプラインに従って3Dグラフィックス処理を実行するためにのみ使用されるシェーダプロセッサ、テクスチャプロセッサなどのハードウェアモジュールを含み得る。GPUは、2Dグラフィックス処理を実行するためにのみ使用される専用2Dグラフィックスエンジンなどのハードウェアモジュールをも含み得る。このようにして、GPUは、2Dグラフィックス処理のために最適化された専用ハードウェア論理ならびに3Dグラフィックス処理のために最適化された別個の専用ハードウェア論理を含むことによって、2Dグラフィックス処理と3Dグラフィックス処理の両方を最適化し得る。
[0017]しかしながら、2Dグラフィックス処理のための最適化された専用ハードウェア論理ならびに3Dグラフィックス処理のために最適化された別個の専用ハードウェア論理を含むことは、GPUが、大量の物理的エリアを、別個の専用ハードウェアモジュールを収容するために専用することを必要とし得る。モバイルフォン、タブレットなど、モバイルデバイスでは、モバイルデバイスの物理的制約が、GPUが、2Dグラフィックス処理のために最適化された専用ハードウェア論理ならびに3Dグラフィックス処理のために最適化された別個の専用ハードウェア論理を含むことを非実用的なもの(impractical)にし得る。したがって、いくつかの例では、GPUは、2Dグラフィックス処理と3Dグラフィックス処理の両方を実行し得るハードウェアモジュールのセットを含み得る。たとえば、GPUは、3Dグラフィックスパイプラインを実行するようにも構成されたハードウェアモジュールを使用して2Dグラフィックスパイプラインを実行するように構成され得る。2Dグラフィックス処理と3Dグラフィックス処理の両方を実行し得るハードウェアモジュールのみを含むことによって、そのようなハードウェアモジュールはGPU上のより少ない物理的エリアを占め得る。
[0018]3Dグラフィックス処理を実行するようにも構成されたハードウェアモジュールを使用して2Dグラフィックス処理を実行することは、いくつかの場合には、2Dグラフィックス処理を実行するためにのみ使用される専用2Dグラフィックスエンジン上でそのような2Dグラフィックス処理を実行するよりも潜在的に比較的効率的でないことがある。さらに、3Dグラフィックス処理は2Dグラフィックス処理よりも計算量的に複雑であり得るので、3Dグラフィックス処理を実行するように構成されたハードウェアモジュールは、2Dグラフィックス処理を実行するように構成された専用ハードウェアモジュールよりも強力で複雑であり得る。したがって、3Dグラフィックス処理を実行するようにも構成されたハードウェアモジュールを使用して2Dグラフィックス処理を実行することはまた、2Dグラフィックス処理を実行するように構成された専用ハードウェアモジュール上でそのような2Dグラフィックス処理を実行するよりも多くの電力を消費し得る。
[0019]上記で説明された状況に鑑みて、本開示は、GPUが、電力消費、ならびに様々なハードウェアユニットによって占められる(taken up)GPUの物理的エリアの両方を最小限に抑えながら、より効率的に2Dグラフィックス処理を実行するためのデバイスおよび技法について説明する。本開示のいくつかの例では、GPUは、3Dグラフィックス処理を実行するように構成されたハードウェアモジュールの一部分、ならびに2Dグラフィックス処理を実行するように構成された専用ハードウェアモジュールの組合せを使用して2Dグラフィックス処理を実行し得る。実行されるべき2Dグラフィックス動作に応じて、GPUは、2Dグラフィックス動作を実行するために、3Dグラフィックス処理を実行するように構成されたハードウェアモジュールの異なる一部を使用し得る。特定の2Dグラフィックス動作を実行しながら、GPUはまた、指定された2Dグラフィックス動作を実行するために使用されない3Dグラフィックス処理を実行するように構成されたハードウェアモジュールの一部をクロックゲートする(clock gate)か、またはオフにし(turn off)得る。
[0020]本開示の態様によれば、GPUは、第1の複数のグラフィックス処理ハードウェアユニットと第2の複数のグラフィックス処理ハードウェアユニットとを含み得る。GPUは、第1の複数のグラフィックス処理ハードウェアユニットを使用して3Dグラフィックスパイプラインに従って3Dグラフィックス処理を実行するように構成され得る。GPUは、3Dグラフィックス処理を実行する際に使用されない第2の複数のグラフィックス処理ハードウェアユニットと、GPUの第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2Dグラフィックス動作を実行するようにさらに構成され得る。
[0021]図1は、本開示の1つまたは複数の態様を実装するように構成され得る例示的なコンピューティングデバイスを示すブロック図である。図1に示されているように、コンピューティングデバイス2は、限定はしないが、ビデオデバイス、メディアプレーヤ、セットトップボックス、携帯電話およびいわゆるスマートフォンなどのワイヤレスハンドセット、携帯情報端末(PDA)、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、ビデオ会議ユニット、タブレットコンピューティングデバイスなどを含むコンピューティングデバイスであり得る。図1の例では、コンピューティングデバイス2は、中央処理ユニット(CPU)6と、システムメモリ10と、GPU12とを含み得る。コンピューティングデバイス2はまた、ディスプレイプロセッサ14と、トランシーバモジュール3と、ユーザインターフェース4と、ディスプレイ8とを含み得る。トランシーバモジュール3とディスプレイプロセッサ14とは両方とも、CPU6および/またはGPU12と同じ集積回路(IC)の一部であり得るか、両方ともCPU6および/またはGPU12を含む1つまたは複数のICの外部にあり得るか、あるいはCPU6および/またはGPU12を含むICの外部にあるIC中に形成され得る。
[0022]コンピューティングデバイス2は、明快のために図1に示されていない追加のモジュールまたはユニットを含み得る。たとえば、コンピューティングデバイス2は、コンピューティングデバイス2がモバイルワイヤレス電話である例において電話通信を実現するために、そのいずれも図1に示されていないスピーカーおよびマイクロフォンを含み、またはコンピューティングデバイス2がメディアプレーヤである例においてスピーカーを含み得る。コンピューティングデバイス2はまた、ビデオカメラを含み得る。さらに、コンピューティングデバイス2に示されている様々なモジュールおよびユニットは、コンピューティングデバイス2のあらゆる例において必要であるとは限らない。たとえば、ユーザインターフェース4およびディスプレイ8は、コンピューティングデバイス2が、デスクトップコンピュータ、あるいは外部ユーザインターフェースまたはディスプレイとインターフェースをとるように装備された他のデバイスである例において、コンピューティングデバイス2の外部にあり得る。
[0023]ユーザインターフェース4の例としては、限定はしないが、トラックボール、マウス、キーボード、および他のタイプの入力デバイスがある。ユーザインターフェース4はまた、タッチスクリーンであり得、ディスプレイ8の一部として組み込まれ得る。トランシーバモジュール3は、ネットワーク上でコンピューティングデバイス2と別のデバイスとの間のワイヤレスまたはワイヤード通信を可能にするための回路を含み得る。トランシーバモジュール3は、ワイヤードまたはワイヤレス通信のための変調器、復調器、増幅器および他のそのような回路を含み得る。
[0024]CPU6は、実行のためのコンピュータプログラムの命令を処理するように構成された中央処理ユニット(CPU)など、マイクロプロセッサであり得る。CPU6は、コンピューティングデバイス2の動作を制御する汎用プロセッサまたは専用プロセッサを備え得る。ユーザは、CPU6に1つまたは複数のソフトウェアアプリケーションを実行させるためにコンピューティングデバイス2に入力を与え得る。CPU6上で実行するソフトウェアアプリケーションは、たとえば、オペレーティングシステム、ワードプロセッサ・アプリケーション、電子メールアプリケーション、スプレッドシート・アプリケーション、メディアプレーヤ・アプリケーション、ビデオゲーム・アプリケーション、グラフィカル・ユーザインターフェース・アプリケーション、または別のプログラムを含み得る。さらに、CPU6は、GPU12の動作を制御するためのGPUドライバ22を実行し得る。ユーザは、ユーザインターフェース4を介してコンピューティングデバイス2に結合されたキーボード、マウス、マイクロフォン、タッチパッド、または別の入力デバイスなどの1つまたは複数の入力デバイス(図示せず)を介して、コンピューティングデバイス2に入力を与え得る。
[0025]CPU6上で実行するソフトウェアアプリケーションは、ディスプレイ8へのグラフィックスデータのレンダリングを行わせるようにGPU12に命令する1つまたは複数のグラフィックスレンダリング命令を含み得る。命令は、3Dグラフィックスを処理するための命令、ならびに2Dグラフィックスを処理するための命令を含み得る。いくつかの例では、ソフトウェア命令は、たとえば、オープングラフィックスライブラリ(OpenGL:Open Graphics Library(商標登録))アプリケーション・プログラミング・インターフェース(API)、オープングラフィックスライブラリ組込みシステムズ(OpenGL ES:Open Graphics Library Embedded Systems)API、Direct3D API、X3D API、RenderMan API、WebGL API、オープンコンピューティング言語(OpenCL(商標登録))あるいは任意の他の公開またはプロプライエタリ規格GPU計算API(GPU compute API)など、グラフィックスAPIに準拠し得る。グラフィックスレンダリング命令を処理するために、CPU6は、GPU12にグラフィックスデータのレンダリングの一部または全部を実行させるために、1つまたは複数のグラフィックスレンダリングコマンドをGPU12に(たとえば、GPUドライバ22を通して)発行し得る。いくつかの例では、レンダリングされるべきグラフィックスデータは、グラフィックスプリミティブ(graphics primitives)のリスト、たとえば、点、線、三角形、四角形、三角形ストリップ(triangle strips)などを含み得る。
[0026]GPU12は、1つまたは複数のグラフィックスプリミティブをディスプレイ8にレンダリングするためにグラフィックス動作を実行するように構成され得る。したがって、CPU6上で実行しているソフトウェアアプリケーションのうちの1つがグラフィックス処理を必要とするとき、CPU6は、ディスプレイ8にレンダリングするためのグラフィックスコマンドおよびグラフィックスデータをGPU12に与え得る。グラフィックスデータは、たとえば、描画コマンド、状態情報、プリミティブ情報、テクスチャ情報などを含み得る。GPU12は、いくつかの事例では、複雑なグラフィック関係動作の、CPU6よりも効率的な処理を行う高度並列構造を用いて構築され(built with)得る。たとえば、GPU12は、複数の頂点(vertices)またはピクセル上で並列様式で動作するように構成された、シェーダユニットなど、複数の処理要素を含み得る。GPU12の高度並列性質(highly parallel nature)は、いくつかの事例では、CPU6を使用して直接ディスプレイ8にシーンを描画するよりも速く、GPU12が、グラフィックス画像(たとえば、GUI、ならびに2次元(2D)および/または3次元(3D)グラフィックスシーン)をディスプレイ8上に描画することを可能にし得る。
[0027]GPU12は、いくつかの事例では、コンピューティングデバイス2のマザーボードに組み込まれ得る。他の事例では、GPU12は、コンピューティングデバイス2のマザーボード中のポート中に設置されたグラフィックスカード上に存在し得るか、または場合によっては、コンピューティングデバイス2と相互動作するように構成された周辺デバイス内に組み込まれ得る。いくつかの例では、GPU12は、システムオンチップ(SOC)などにおいて、CPU6とともにオンチップであり得る。GPU12は、1つまたは複数のマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、あるいは他の等価な集積またはディスクリート論理回路など、1つまたは複数のプロセッサを含み得る。GPU12はまた、1つまたは複数のプロセッサコアを含み得、したがって、GPU12はマルチコアプロセッサと呼ばれることがある。
[0028]いくつかの例では、グラフィックスメモリ40はGPU12の一部であり得る。したがって、GPU12は、バスを使用することなしに、グラフィックスメモリ40からデータを読み取り、グラフィックスメモリ40にデータを書き込み得る。言い換えれば、GPU12は、オフチップメモリの代わりに、ローカルストレージを使用してデータをローカルに処理し得る。そのようなグラフィックスメモリ40は、オンチップメモリと呼ばれることがある。これは、GPU12が、大量のバストラフィックおよび帯域幅のための関連する競合を経験し得る、バスを介したデータの読取りおよび書込みを行う必要をなくすことによって、GPU12がより効率的な様式で動作することを可能にする。しかしながら、いくつかの事例では、GPU12は、別個のメモリを含まず、代わりにバスを介してシステムメモリ10を利用し得る。グラフィックスメモリ40は、たとえば、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM(登録商標))、フラッシュメモリ、磁気データ媒体または光記憶媒体など、1つまたは複数の揮発性または不揮発性メモリあるいはストレージデバイスを含み得る。
[0029]いくつかの例では、GPU12は、十分に形成された画像をシステムメモリ10に記憶し得る。ディスプレイプロセッサ14は、システムメモリ10および/または出力バッファ16から画像を取り出し、ディスプレイ8のピクセルに、画像を表示するために点灯(illuminate)させる値を出力し得る。ディスプレイ8は、GPU12によって生成された画像コンテンツを表示するコンピューティングデバイス2のディスプレイであり得る。ディスプレイ8は、液晶ディスプレイ(LCD)、有機発光ダイオードディスプレイ(OLED)、陰極線管(CRT)ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスであり得る。
[0030]本開示の態様によれば、GPU12は、第1の複数のグラフィックス処理ハードウェアユニットと第2の複数のグラフィックス処理ハードウェアユニットとを含み得る。GPU12は、第1の複数のグラフィックス処理ハードウェアユニットを使用して3Dグラフィックスパイプラインに従って3Dグラフィックス処理を実行するように構成され得る。GPU12は、3Dグラフィックス処理を実行する際に使用されない第2の複数のグラフィックス処理ハードウェアユニットと、GPU12の第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2Dグラフィックス動作を実行するようにさらに構成され得る。
[0031]図2は、図1のCPU6、GPU12、およびシステムメモリ10の例示的な実装形態を示すブロック図である。図2に示されているように、CPU6は、少なくとも1つのソフトウェアアプリケーション18とGPUドライバ22とを実行し得、それらの各々は1つまたは複数のソフトウェアアプリケーションまたはサービスであり得る。
[0032]CPU6およびGPU12にとって利用可能なメモリは、システムメモリ10と出力バッファ16とを含み得る。出力バッファ16はシステムメモリ10の一部であり得るか、またはシステムメモリ10とは別個であり得る。出力バッファ16は、ピクセルデータなど、レンダリングされた画像データ、ならびに他のデータを記憶し得る。出力バッファ16はフレームバッファと呼ばれることもある。
[0033]グラフィックスメモリ40は、GPU12の集積回路チップに物理的に組み込まれたオンチップストレージまたはメモリを含み得る。グラフィックスメモリ40がオンチップである場合、GPU12は、システムバスを介してシステムメモリ10から値を読み取るかまたはシステムメモリ10に値を書き込むよりも速く、グラフィックスメモリ40から値を読み取るかまたはグラフィックスメモリ40に値を書き込むことが可能であり得る。
[0034]出力バッファ16は、GPU12のための宛先ピクセルを記憶する。各宛先ピクセルは、一意のスクリーンピクセルロケーションに関連付けられ得る。いくつかの例では、出力バッファ16は、各宛先ピクセルについての色成分と宛先アルファ値とを記憶し得る。たとえば、出力バッファ16は、各ピクセルについての赤、緑、青、アルファ(RGBA)成分を記憶し得、ここで、「RGB」成分は色値に対応し、「A」成分は宛先アルファ値(たとえば、画像合成のための不透明度値(opacity value))に対応する。出力バッファ16とシステムメモリ10とが別個のメモリユニットであるものとして示されているが、他の例では、出力バッファ16はシステムメモリ10の一部であり得る。さらに、出力バッファ16はまた、ピクセル以外の好適なデータを記憶することが可能であり得る。
[0035]ソフトウェアアプリケーション18は、GPU12の機能を利用する任意のアプリケーションであり得る。たとえば、ソフトウェアアプリケーション18は、GUIアプリケーション、オペレーティングシステム、ポータブルマッピング・アプリケーション、エンジニアリングまたは芸術アプリケーションのためのコンピュータ支援設計プログラム、ビデオゲーム・アプリケーション、あるいは2Dまたは3Dグラフィックスを使用する別のタイプのソフトウェアアプリケーションであり得る。
[0036]ソフトウェアアプリケーション18は、グラフィカルユーザインターフェース(GUI)および/またはグラフィックスシーンをレンダリングするようにGPU12に命令する1つまたは複数の描画命令を含み得る。たとえば、描画命令は、GPU12によってレンダリングされるべき1つまたは複数のグラフィックスプリミティブのセットを定義する命令を含み得る。いくつかの例では、描画命令は、GUIにおいて使用される複数のウィンドウ処理表面(windowing surfaces)の全部または一部をまとめて定義し得る。さらなる例では、描画命令は、アプリケーションによって定義されるモデル空間または世界空間内に1つまたは複数のグラフィックスオブジェクトを含むグラフィックスシーンの全部または一部をまとめて定義し得る。
[0037]ソフトウェアアプリケーション18は、1つまたは複数のグラフィックスプリミティブを表示可能なグラフィックス画像にレンダリングするための1つまたは複数のコマンドをGPU12に発行するために、GPUドライバ22を呼び出し得る。たとえば、ソフトウェアアプリケーション18は、プリミティブ定義をGPU12に与えるためにGPUドライバ22を呼び出し得る。いくつかの事例では、プリミティブ定義は、たとえば、三角形、長方形、三角形ファン(triangle fans)、三角形ストリップなどの描画プリミティブのリストの形式でGPU12に与えられ得る。プリミティブ定義は、レンダリングされるべきプリミティブに関連付けられた1つまたは複数の頂点を指定する頂点仕様(vertex specifications)を含み得る。頂点仕様は、各頂点についての位置座標を含み、いくつかの事例では、たとえば、色属性、法線ベクトル(normal vectors)、およびテクスチャ座標など、頂点に関連付けられた他の属性を含み得る。プリミティブ定義はまた、プリミティブタイプ情報(たとえば、三角形、長方形、三角形ファン、三角形ストリップなど)、スケーリング情報、回転情報などを含み得る。
[0038]GPUドライバ22は、ドライバプログラミングのために低オーバーヘッド2Dグラフィックスコマンドを与え得る。GPUドライバ22はまた、ソフトウェアレベルにおける2Dおよび3Dグラフィックス動作同期のためのより少ないポーリングおよび待機に対してライトな(light)2Dおよび3Dグラフィックス動作同期機構を与え得る。
[0039]ソフトウェアアプリケーション18によってGPUドライバ22に発行された命令に基づいて、GPUドライバ22は、プリミティブをレンダリングするためにGPU12が実行すべき1つまたは複数の動作を指定する1つまたは複数のコマンドを構築し(formulate)得る。GPU12がCPU6からコマンドを受信したとき、GPU12は、コマンドを復号し、コマンド中で指定された動作を実行するように3Dグラフィックス処理パイプラインを構成するために、プロセッサクラスタ46と3Dグラフィックスハードウェアユニット29とを使用して3Dグラフィックス処理パイプラインを実行し得る。たとえば、3Dグラフィックス処理パイプライン中の入力アセンブラが、プリミティブデータを読み取り、3Dグラフィックス処理パイプライン中の他の3Dグラフィックスパイプラインステージによる使用のためにそのデータをプリミティブにアセンブルし得る。指定された動作を実行した後に、3Dグラフィックス処理パイプラインは、レンダリングされたデータを、ディスプレイデバイスに関連付けられた出力バッファ16に出力する。いくつかの例では、3Dグラフィックス処理パイプラインは固定機能論理を含み、および/またはプログラマブルシェーダコア上で実行され得る。
[0040]いくつかの例では、3Dグラフィックス処理パイプラインは、頂点シェーダステージ、ハルシェーダステージ(a hull shader stage)、ドメインシェーダステージ、ジオメトリシェーダステージ、およびピクセルシェーダステージのうちの1つまたは複数を含み得る。3Dグラフィックス処理パイプラインのこれらのステージはシェーダステージと見なされ得る。これらのシェーダステージは、GPU12中のプロセッサクラスタ46上で実行する1つまたは複数のシェーダプログラムとして実装され得る。
[0041]プロセッサクラスタ46は、1つまたは複数のプログラマブル処理ユニットおよび/または1つまたは複数の固定機能処理ユニットを含み得る。プログラマブル処理ユニットは、たとえば、CPU6からGPU12上にダウンロードされた1つまたは複数のシェーダプログラムを実行するように構成されたプログラマブルシェーダユニットを含み得る。いくつかの例では、プログラマブルシェーダユニットは、「シェーダプロセッサ」または「ユニファイドシェーダ(unified shaders)」と呼ばれることがあり、グラフィックスをレンダリングするためにジオメトリ、頂点、ピクセル、または他のシェーディング動作を実行し得る。シェーダユニットはそれぞれ、フェッチおよび復号動作のための1つまたは複数の構成要素と、算術計算を行うための1つまたは複数のALUと、1つまたは複数のメモリと、キャッシュと、レジスタとを含み得る。
[0042]シェーダプログラムは、いくつかの例では、OpenGLシェーディング言語(GLSL)、高レベルシェーディング言語(HLSL)、グラフィックスのためのC(Cg)シェーディング言語など、高レベルシェーディング言語で書き込まれたプログラムのコンパイルされたバージョンであり得る。いくつかの例では、プログラマブルシェーダユニットは、並列に動作するように構成された複数の処理ユニット、たとえば、SIMDパイプラインを含み得る。プログラマブルシェーダユニットは、シェーダプログラム命令を記憶するプログラムメモリと、実行状態レジスタ、たとえば、実行されているプログラムメモリ中の現在の命令またはフェッチされるべき次の命令を示すプログラムカウンタレジスタとを有し得る。プロセッサクラスタ46中のプログラマブルシェーダユニットは、たとえば、頂点シェーダユニット、ピクセルシェーダユニット、ジオメトリシェーダユニット、ハルシェーダユニット(hull shader units)、ドメインシェーダユニット、計算シェーダユニット、および/またはユニファイドシェーダユニットを含み得る。
[0043]GPU12は、グラフィックス処理パイプライン中の頂点シェーダステージ、ハルシェーダステージ、ドメインシェーダステージ、ジオメトリシェーダステージ、およびピクセルシェーダステージのうちの1つまたは複数を実行するためのコマンドをプログラマブルシェーダユニットに送ることによって、頂点シェーディング、ハルシェーディング、ドメインシェーディング、ジオメトリシェーディング、ピクセルシェーディングなどの様々なシェーディング動作を実行するようにプログラマブルシェーダユニットを指定し得る。いくつかの例では、GPUドライバ22は、CPU6上で実行しているコンパイラに、1つまたは複数のシェーダプログラムをコンパイルさせ、コンパイルされたシェーダプログラムを、GPU12内に含まれているプログラマブルシェーダユニット上にダウンロードさせ得る。
[0044]固定機能処理ユニットは、いくつかの機能を実行するためにハード・ワイヤードの(hard-wired)ハードウェアを含み得る。固定機能ハードウェアは、1つまたは複数の制御信号を介して、たとえば、異なる機能を実行するように構成可能であり得るが、固定機能ハードウェアは、一般に、ユーザによってコンパイルされたプログラムを受信することが可能であるプログラムメモリを含まない。いくつかの例では、プロセッサクラスタ46中の固定機能処理ユニットは、たとえば、深度テスト、シザーテスト(scissors testing)、アルファブレンディング(alpha blending)など、ラスタ動作(raster operations)を実行する、たとえば、処理ユニットを含み得る。
[0045]3Dグラフィックスハードウェアユニット29は、3Dグラフィックスパイプラインを通して3Dグラフィカルオブジェクトをレンダリングするための3Dグラフィックス動作を処理するために、プロセッサクラスタ46による3Dグラフィックスパイプラインの実行を介して3D処理をサポートするように構成された追加のハードウェアユニットを含み得る。たとえば、3Dグラフィックスハードウェアユニット29は、メモリアービトレーションブロック(memory arbitration blocks)、キャッシュ、レジスタ、プロセッサクラスタ46を制御するためのハードウェアなどを含み得る。
[0046]ソフトウェアアプリケーション18によってGPUドライバ22に発行された命令に基づいて、GPUドライバ22は、GPU12が実行すべき1つまたは複数の2Dグラフィックス動作を指定する1つまたは複数のコマンドをも構築し(formulate)得る。ソフトウェアアプリケーション18は、ビットマップなど、2D平面上に線、長方形、多角形などの幾何学的形状をレンダリングするために、またはある平面から別の平面にピクセルをコピーするために、2Dグラフィックス動作を実行するための1つまたは複数のコマンドをGPU12に発行するために、GPUドライバ22を呼び出し得る。2Dグラフィックス中の描画は、描画中のジオメトリを定義するために使用される、パス(paths)から構成され得る。パスは、描画表面上のペンまたはペイントブラシ(paint brush)の持続時間を定義し、ストロークされ(stroked)(すなわち、線を用いてパスの形状の輪郭を定義し)、および/または充填され(filled)得る(すなわち、形状の内部に色、グラディエント、および/またはテクスチャを適用する)。ビットマップは、属性を有し得るピクセルを表し得る。基本的な2Dグラフィックスのための属性は、各ピクセルについて、色値およびソースバッファのための座標のペアを含み得る。
[0047]1つの一般的な2Dグラフィックス動作は、ビットブロック転送(bitBLT)機能であり、それは、システムメモリ10からグラフィックスメモリ40への、グラフィックスメモリから出力バッファ16への、システムメモリ10中のメモリロケーションの第1のブロックからシステムメモリ10中のメモリロケーションの第2のブロックへのなどの、ソースメモリロケーションから宛先メモリロケーションへのピクセルデータの長方形ブロックの転送など、ソースデバイスコンテキストから宛先デバイスコンテキストへのビット(たとえば、色データ、ピクセルデータなど)のブロック転送を実行する機能である。たとえば、GPU12は、ディスプレイ8による表示のために、システムメモリ10またはグラフィックスメモリ40から出力バッファ16に画像または表面を表すビットのブロックを転送するためにbitBLT機能を実行し得る。
[0048]BitBLT機能は、時々、データブロック転送だけでなく、データに対して実行される動作をも伴い得る。たとえば、データブロックがあるメモリロケーションから別のメモリロケーションに転送されている間、GPU12はそのデータブロックに透過動作(transparency operation)を適用し得る。ラスタ動作(ROP)、スケーリングおよびフィルタ処理動作、縮小動作(shrinking operations)、アルファブレンディング動作、および色変換動作など、他の動作が、GPU12に発行されたコマンドに応じて、同様に実行され得る。GPU12は、bitBLT動作を実行しながら、これらの動作の任意の組合せを実行し得る。
[0049]たとえば、ソフトウェアアプリケーション18は、ピクセルのブロックを転送するためにbitBLT機能をコールし得る。ソフトウェアアプリケーション18は、転送されるべきビットのソースブロックと、ビットの宛先ブロックと、ビットのブロックに対して実行されるべき1つまたは複数のラスタ動作とを示し得る。たとえば、1つまたは複数のラスタ動作は、ビットのソースブロックの色データが、それの最終色を実現するために宛先長方形のためのビットの宛先ブロックの色データとどのように組み合わせられるべきであるかを示し得る。GPUドライバ22は、次に、GPU12に、指定されたbitBLT機能を実行するためのコマンドを発行し得る。
[0050]GPU12は、専用2Dグラフィックスハードウェアモジュールと一緒に3Dパイプラインに従って3D動作を実行するために使用されるGPU12のハードウェアモジュールの組合せを使用して2Dグラフィックス動作を実行し得る。たとえば、GPU12は、bitBLT動作のデータブロック転送を実行するために、専用2Dグラフィックスハードウェア論理を含む、2Dグラフィックスハードウェアユニット28を使用し得、データブロックに対するラスタ動作、スケーリング動作、ブレンディング動作、および/または色変換動作を実行するために、プロセッサクラスタ46のプログラマブル処理ユニット24および固定機能処理ユニット26のうちの1つまたは複数を使用し得る。
[0051]GPU12が、3D動作を実行するために使用されるGPU12中のハードウェアモジュールの一部分(すなわち、すべてよりも少ない)を使用して2Dグラフィックス動作を実行する場合、GPU12は、電力使用量を減少させるために、2Dグラフィックス動作を実行するために使用されないGPU12中のハードウェアモジュールをパワーダウン(power down)またはクロックゲートし得る。GPUドライバ22は、2Dグラフィックス動作を呼び出すためにソフトウェアアプリケーション18によってコールされた2Dグラフィックス機能に基づいて、そのGPU12が、2Dグラフィックス動作を実行するために3Dグラフィックスハードウェアユニット29およびプロセッサクラスタ46のどの部分を使用し得るか、ならびにそのGPU12が、呼び出された2Dグラフィックス動作を実行するために3Dグラフィックスハードウェアユニット29およびプロセッサクラスタ46のどの部分を使用せず、したがって、どの部分が電源切断(power off)またはクロックゲートされ得るかを決定し得る。
[0052]たとえば、ソフトウェアアプリケーション18が、透過動作、ラスタ動作、スケーリング動作、縮小動作、アルファブレンディング動作、色変換動作などの、動作をもビットブロックに適用する、ビットブロックを転送するためのbitBLT動作を呼び出す場合、GPUドライバ22は、ソフトウェアアプリケーション18によって発行された2Dグラフィックス動作に少なくとも部分的に基づいて、およびより詳細には、ビットブロックに適用されるべき動作に少なくとも部分的に基づいて、GPU12の複数の動作モードの中からGPU12の動作モードを決定し得る。
[0053]GPU12の動作モードの各々について、GPUドライバ22は、3Dグラフィックス処理を実行するためにGPU12によって使用されるハードウェアの一部分(すなわち、3Dグラフィックスハードウェアユニット29およびプロセッサクラスタ46の一部)を有効にするようにGPU12に指示し得、したがって、GPU12は、2Dグラフィックス動作を実行するために2Dグラフィックスハードウェアユニット28と一緒にハードウェアのその部分を使用し得る。GPUドライバ22はまた、2Dグラフィックス動作を実行するためにGPUによって使用されない、3Dグラフィックス処理を実行するためにGPU12によって使用されるハードウェアの一部分を無効に(すなわち、電源切断またはクロックゲート)し得る。たとえば、ある動作モードでは、GPUドライバ22は、GPU12に、2Dグラフィックス動作を実行するために固定機能処理ユニット26を有効にさせ得るが、GPU12が2Dグラフィックス動作を実行するためにプログラマブル処理ユニット24を使用しないので、GPU12にプログラマブル処理ユニット24を電源切断させ得る。
[0054]GPUドライバ22は、ソフトウェアアプリケーション18によってGPUドライバ22に発行された命令に基づいて、GPU12による実行のための動作のセットを定義するコマンドストリームを生成し得る。GPUドライバ22は、閲覧可能コンテンツ(viewable content)をディスプレイ8上に表示させる、GPU12によって実行されるべきコマンドストリームを生成し得る。たとえば、GPUドライバ22は、ディスプレイ8における表示のために出力バッファ16に記憶され得るグラフィックスデータをレンダリングするための命令をGPU12に対して与えるコマンドストリームを生成し得る。この例では、GPUドライバ22は、GPU12によって実行されるコマンドストリームを生成し得る。
[0055]GPU12は、GPUドライバ22からコマンドストリームを受信し得るコマンドプロセッサ30を含み得る。コマンドプロセッサ30は、1つまたは複数のコマンドストリームを受信および処理するように構成されたハードウェアおよびソフトウェアの任意の組合せであり得る。したがって、コマンドプロセッサ30はストリームプロセッサである。いくつかの例では、コマンドプロセッサ30の代わりに、他の好適なストリームプロセッサが、1つまたは複数のコマンドストリームを受信および処理するために、および本明細書で開示される技法を実行するために、コマンドプロセッサ30の代わりに使用可能であり得る。一例では、コマンドプロセッサ30はハードウェアプロセッサであり得る。図2に示されている例では、コマンドプロセッサ30はGPU12中に含まれ得る。他の例では、コマンドプロセッサ30は、CPU6およびGPU12とは別個であるユニットであり得る。コマンドプロセッサ30はまた、それがコマンドおよび/または動作のストリームを受信するように構成された任意のプロセッサであり得ることを示すために、ストリームプロセッサ、コマンド/ストリームプロセッサなどとして知られ得る。
[0056]コマンドプロセッサ30は、GPU12による実行のために1つまたは複数のコマンドストリーム中に含まれる動作をスケジュールすることを含む、1つまたは複数のコマンドストリームを処理し得る。詳細には、コマンドプロセッサ30は、1つまたは複数のコマンドストリームを処理し、プロセッサクラスタ46による実行のために1つまたは複数のコマンドストリーム中の動作をスケジュールし得る。動作中、GPUドライバ22は、コマンドプロセッサ30に、GPU12によって実行されるべき一連の動作を備えるコマンドストリームを送り得る。コマンドプロセッサ30は、コマンドストリームを備える動作のストリームを受信し得、コマンドストリーム中の動作の順序に基づいてコマンドストリームの動作を連続的に処理し得、2Dグラフィックスハードウェアユニット28、3Dグラフィックスハードウェアユニット29、プロセッサクラスタ46のうちの1つまたは複数による実行のためにコマンドストリーム中の動作をスケジュールし得る。
[0057]上記で説明されたように、ソフトウェアアプリケーション18は、2Dグラフィックス動作ならびに3Dグラフィックス動作の両方を実行するための命令を発行し得る。GPUドライバ22は、2Dグラフィックス動作および3Dグラフィックス動作を呼び出すために、ソフトウェアアプリケーション18に対して、GPU12への同じインターフェースを与え得、GPUドライバ22は、2Dグラフィックス動作ならびに3Dグラフィックス動作の両方を含むコマンドストリームを生成し得る。一例では、GPUドライバ22は、第1のコマンドストリームが2Dグラフィックス動作のみを含み得、第2のコマンドストリームが3Dグラフィックス動作のみを含み得るように、2Dグラフィックス動作と3Dグラフィックス動作とを別個のコマンドストリームに分離し得る。別の例では、GPUドライバ22は、2Dグラフィックス動作および3Dグラフィックス動作がソフトウェアアプリケーション18によって呼び出された順序で、単一のコマンドストリーム中に2Dグラフィックス動作と3Dグラフィックス動作の両方を含め得る。
[0058]コマンドプロセッサ30は、2Dグラフィックス動作を実行することと3Dグラフィックス動作を実行することとの間で切り替えることによって2Dグラフィックス動作と3Dグラフィックス動作の両方を処理することが可能であり得る。たとえば、GPUドライバ22は、3Dグラフィックス動作を処理することから2Dグラフィックス動作を処理することに切り替えるようにコマンドプロセッサ30に指示し得る。コマンドプロセッサ30は、3Dグラフィックス動作を処理することから2Dグラフィックス動作を処理することに切り替えるためのコマンドをGPUドライバ22から受信したことに応答して、コンテキスト切替えを実行し得る。コマンドプロセッサ30は3Dグラフィックス動作の処理を中断し得、3Dグラフィックス動作の処理を中断すると、2Dグラフィックス動作の処理を開始し得る。
[0059]コマンドプロセッサ30は、GPU12中のコンテキストレジスタに3Dグラフィックス動作のコンテキスト情報を保存することを含む3Dグラフィックス動作のGPU12の処理を中断し得る。たとえば、後の時点において、コマンドプロセッサ30が3Dグラフィックス動作を処理することへの切替え復帰を実行するとき、コマンドプロセッサ30が、3Dグラフィックスパイプラインを完全にフラッシュする(flush)必要なしに3Dグラフィックスパイプラインに従って3Dグラフィックス動作の処理を再開するためにコンテキストレジスタ中に保存された構成情報を利用し得るように、コマンドプロセッサ30は、色フォーマット、メモリアドレス、シェーダ命令、3Dグラフィックスパイプライン状態情報など、3Dグラフィックスパイプラインのための構成情報を保存し得る。たとえば、GPU12が、3Dグラフィックスパイプラインを完全にフラッシュすることなしに3Dグラフィックス動作の処理を再開し得るように、コマンドプロセッサ30は、色フォーマット、メモリアドレス、シェーダ命令、3Dグラフィックスパイプライン構成情報などを復元し得る。同様に、コマンドプロセッサ30は、GPU12中のコンテキストレジスタに2Dグラフィックス動作を処理するためのコンテキスト情報を保存し、3Dグラフィックス動作を処理するために切替えを実行することによって、2Dグラフィックス動作のGPU12の処理を中断し得る。
[0060]コマンドプロセッサ30は、上記で説明されたように切替えることを実行することによって、GPU12が、2Dおよび3Dグラフィックス動作がソフトウェアアプリケーション18によって呼び出された順序でソフトウェアアプリケーション18によって発行された2Dグラフィックス動作ならびに3Dグラフィックス動作を処理することを可能にし得る。コンテキストレジスタに構成情報を保存することによって、コマンドプロセッサ30は、GPU12が2Dグラフィックス処理と3Dグラフィックス処理との間でシームレスに切り替えることを可能にし得る。
[0061]いくつかの例では、GPU12は、コンテキスト切替えを実行することなしに2Dグラフィックス動作を実行することと3Dグラフィックス動作を実行することとの間でスムーズに切り替えることが可能であり得る。GPU12は、別個の、2Dグラフィックス動作のための状態情報を記憶するための2D状態レジスタと、3Dグラフィックスパイプライン構成情報、色フォーマット、メモリアドレス、シェーダ命令など、3Dグラフィックス動作のための状態情報を記憶するための3D状態レジスタとを含み得る。2Dグラフィックス動作と3Dグラフィックス動作との間で切り替えるときに、GPUドライバ22および/またはGPU12は、GPU12が2Dグラフィックス動作を実行することと3Dグラフィックス動作を実行することとの間でスムーズに切り替えることが可能であり得るように、適切な状態レジスタに状態情報を保存し得る。したがって、2Dおよび3Dステージレジスタは、GPU12が、3Dグラフィックスパイプラインを完全にフラッシュすることなしに2Dグラフィックス処理と3Dグラフィックス処理との間でシームレスに切り替えることを可能にし得る。
[0062]図3A〜図3Dは、GPU12の動作モードをさらに詳細に示すブロック図である。上記で説明されたように、GPUドライバ22は、ソフトウェアアプリケーション18によって呼び出されたグラフィックス動作に基づいて、GPU12のための複数の動作モードの中から動作モードを決定し得る。図3A〜図3Dの各々は、ソフトウェアアプリケーション18によって呼び出されたGPU12が実行する動作に基づいてGPUドライバ22によって決定されるGPU12のための1つの例示的な動作モードを示し得る。図3A〜図3Dでは、例示的なグラフィックス動作を実行する際にパワーアップされ(powered up)、使用される構成要素は陰影を付けられ、パワーダウンおよび/またはクロックゲートされる構成要素は、それらが例示的なグラフィックス動作を実行する際に使用されないので陰影を付けられない。図3Aに示されているように、GPU12は、ビットブロック転送動作ならびにメモリリゾルブおよびアンリゾルブ動作(memory resolve and unresolved operations)を実行するために第1のモードで動作し得る。
[0063]GPU12は、コマンドプロセッサ(CP)30と、2D制御センター32と、2D 2Dラスタおよびタイル(tile)アドレス生成器(RAS_2D)34と、3D制御センター36と、3Dラスタユニット(RAS_3D)38と、低解像度Z(LRZ)ブロック39と、プロセッサクラスタ46と、データ組合せバッファ(data combine buffer)56と、グラフィックスメモリ(GMEM)40と、メモリアービトレーションブロック(MARB)60と、レベル2(L2)キャッシュ62と、メモリバスインターフェース(バスI/F)64とを含み得る。プロセッサクラスタ46は複数のプロセッサを含み得、ここで、プロセッサクラスタ46の各プロセッサは、シェーダプロセッサ(SP)50と、テクスチャプロセッサ(TP)52と、深度プロセッサ(ZPROC)44と、ピクセルサンプラー45と、色プロセッサ(CPROC)48と、ピクセルレベル1(L1)キャッシュ42とを含む。
[0064]2D制御センター32は、コマンドプロセッサ30から2D描画コマンドを受信し得、ブロックごとにまたはクワッド(quad)ごとにソース読取り要求と宛先読取り要求とを生成し得る。2D制御センター32はまた、ピクセルL1キャッシュ42、オンチップグラフィックスメモリ40、およびシステムメモリ10との間でデータを読み取り、および書き込み得る。2D制御センター32はまた、ピクセルL1キャッシュ42および深度プロセッサ44、ピクセルサンプラー45、および色プロセッサ48にグラフィカルデータのブロックまたはクワッド(たとえば、2x2ピクセル)を分配し得、ピクセルL1キャッシュ42および深度プロセッサ44、ピクセルサンプラー45、および色プロセッサ48からのブロックまたはクワッド書込みを案内し得る。
[0065]3D制御センター36は、コマンドプロセッサ30から3D描画コマンドを受信し得、3Dグラフィックスパイプラインに従って3D描画コマンドを実行するために、3Dラスタユニット38、LRZブロック39、プロセッサクラスタ46、ならびにプロセッサクラスタ46中に含まれるシェーダプロセッサ50、テクスチャプロセッサ52、深度プロセッサ44、ピクセルサンプラー45、色プロセッサ48、およびピクセルL1キャッシュ42を制御し得る。
[0066]LRZブロック39は、個々のピクセルの比較的高い解像度深度テストの代わりに、ピクセルのブロックの低解像度深度テストを実行することによって、プリミティブの可視性テスト(visibility tests)を実行するためにビニングパス(binning pass)中になど、ある時点においてピクセルのブロックの深度テストを加速するために使用され得る。深度プロセッサ44は、GPU12がピクセルシェーディングを実行した後になど、3Dグラフィックスレンダリング中のピクセルレベル深度テストなど、深度関係処理を実行し得る。ピクセルサンプラー45はサンプリング関係動作を実行し得る。色プロセッサ48は、グラフィックスパイプラインを通してプリミティブの処理中に、ピクセルフォーマット変換ならびにピクセルブレンディングを実行し得る。シェーダプロセッサ50は、処理のためにテクスチャデータをテクスチャプロセッサ52に送り得る。テクスチャプロセッサ52はテクスチャデータに対して動作し得、さらなる処理のためにテクスチャデータに対する動作の結果をシェーダプロセッサ50に送り得る。ピクセルL1キャッシュ42は、出力バッファ16のピクセル色および深度データをキャッシュし得る。データ組合せバッファ56は、プロセッサクラスタ46の色キャッシュユニット42間で共有されたデータを組み合わせる先入れ先出し(FiFo:first-in-first-out)スタックであり得る。
[0067]ソフトウェアアプリケーション18は、ソースロケーション(すなわち、表面のピクセルのソースブロック)から宛先ロケーション(destination location)(すなわち、表面のピクセルの宛先ブロック)にビットブロックを単に転送するbitBLT動作を呼び出し得る。GPUドライバ22は、ソフトウェアアプリケーションによって呼び出された2Dグラフィックス動作に基づいて、GPU12のための動作モードを決定し得る。図3Aに示されているように、GPUドライバ22は、ソースロケーションから宛先ロケーションにビットブロックを転送するbitBLT動作を実行するために、GPU12のための第1の動作モードを決定し得る。第1の動作モードでは、GPU12は、コマンドプロセッサ30と、2D制御センター32と、2Dラスタおよびタイルアドレス生成器34と、L1キャッシュユニット42と、データ組合せバッファ56と、グラフィックスメモリ40と、メモリバスインターフェース64とを有効にし得る。第1の動作モードでは、GPU12はまた、3D制御センター36と、3Dラスタユニット38と、LRZブロック39と、シェーダプロセッサ50と、テクスチャプロセッサ52と、深度プロセッサ44と、ピクセルサンプラー45と、色プロセッサ48と、メモリアービトレーションブロック60と、L2キャッシュ62とを無効にし、それらのハードウェアモジュールを電源切断またはクロックゲートすることを含み得る。
[0068]bitBLT動作を実行するために、コマンドプロセッサ30は、bitBLT動作を実行するためにGPUドライバ22から受信されたコマンドを復号し得、2Dグラフィックス動作を2D制御センター32に通信し得る。2D制御センター32は、ソースロケーションからのビットブロックについての読取り要求を生成し得、また、宛先ロケーションへのビットブロックについての書込み要求を生成し得る。たとえば、ソースロケーションおよび宛先ロケーションは、ピクセルL1キャッシュ42、データ組合せバッファ56、グラフィックスメモリ40、および/またはシステムメモリ10内に記憶された1つまたは複数の表面、のうちのいずれかであり得る。bitBLT動作のソースロケーションまたは宛先ロケーションがシステムメモリ10である場合、GPU12は、メモリバスインターフェース64を介してシステムメモリ10にアクセスし得る。GPU12は、2D制御センター32によって生成された読取りおよび書込み要求に基づいて、ソースロケーションから宛先ロケーションへのビットブロック転送を実行し得る。
[0069]ビットブロック転送動作が、2D制御センター32など、専用2Dグラフィックス処理ハードウェアモジュールを使用して実行されるので、ビットブロック転送動作の実行は、3Dグラフィックス処理ハードウェアモジュールの3Dデータ経路によって制限されない。したがって、ビットブロック動作は、メモリロケーション間でビットブロックをより効率的に転送するためにメモリインターフェースを飽和させることが可能であり得る。
[0070]図3Bに示されているように、GPU12は、ブレンディング動作とともに簡易なビットブロック転送動作を実行するために第2のモードで動作し得る。ブレンディング動作の例としては、アルファブレンディング、合成(compositing)、オーバーレイ、ポーターダフ(Porter-Duff)合成などがあり得る。ソフトウェアアプリケーション18は、ソースロケーションから宛先ロケーションにビットブロックを転送するbitBLT動作、ならびにソースロケーションからのビットブロックの色を宛先ロケーションにおけるビットブロックの色とブレンドするためのブレンディング動作、を呼び出し得る。GPUドライバ22は、ソフトウェアアプリケーションによって呼び出された2Dグラフィックス動作に基づいて、GPU12のための動作モードを決定し得る。図3Bに示されているように、GPUドライバ22は、ソースロケーションから宛先ロケーションにビットブロックを転送するbitBLT動作と、ソースロケーションからのビットブロックを宛先ロケーションにおけるビットブロックとブレンドするブレンディング動作とを実行するために、GPU12のための第2の動作モードを決定し得る。第2の動作モードでは、GPU12は、コマンドプロセッサ30と、2D制御センター32と、2Dラスタおよびタイルアドレス生成器34と、色プロセッサ48と、ピクセルL1キャッシュ42と、データ組合せバッファ56と、グラフィックスメモリ40と、メモリバスインターフェース64とを有効にし得る。第2の動作モードでは、GPU12はまた、3D制御センター36と、3Dラスタユニット38と、LRZブロック39と、シェーダプロセッサ50と、テクスチャプロセッサ52と、深度プロセッサ44と、ピクセルサンプラー45と、メモリアービトレーションブロック60と、L2キャッシュ62とを無効にし、それらのハードウェアモジュールを電源切断またはクロックゲートすることを含み得る。
[0071]ブレンディング動作とともにbitBLT動作を実行するために、コマンドプロセッサ30は、bitBLT動作およびブレンディング動作を実行するためにGPUドライバ22から受信されたコマンドを復号し得、2Dグラフィックス動作を2D制御センター32に通信し得る。2D制御センター32は、ソースロケーションからのビットブロックについての読取り要求を生成し得、また、宛先ロケーションへのビットブロックについての書込み要求を生成し得る。たとえば、ソースロケーションおよび宛先ロケーションは、色キャッシュユニット42、データ組合せバッファ56、グラフィックスメモリ40、および/またはシステムメモリ10のうちのいずれかであり得る。bitBLT動作のソースロケーションまたは宛先ロケーションがシステムメモリ10である場合、GPU12は、メモリバスインターフェース64を介してシステムメモリ10にアクセスし得る。GPU12は、2D制御センター32によって生成された読取りおよび書込み要求に基づいて、ソースロケーションから宛先ロケーションへのビットブロック転送を実行し得る。
[0072]GPU12は、ソースロケーションからのビットブロックの色情報と、色情報をキャッシュし得るピクセルL1キャッシュ42からの宛先ロケーションのビットブロックの色情報とを取り出し得る。色プロセッサ48は、ソースロケーションからのそれぞれのビットブロックと宛先ロケーションのビットブロックとについての色情報を受信し得る。色プロセッサ48は任意の必要な色フォーマット変換を実行し得、GPUドライバ22によって指定されたブレンディング動作に従って、アルファブレンディングなど、色のブレンディングを実行し得る。たとえば、色プロセッサ48は非線形色空間から線形色空間に色フォーマットを変換し得、またはその逆も同様であり、あるいは、YUVからRGBAになど、任意の色フォーマットから任意の他の色フォーマットに色フォーマットを変換し得る。GPU12は、宛先ロケーションにおいて、ブレンドされた色で、得られたビットブロックを書き込み得る。
[0073]図3Cに示されているように、GPU12は、スケーリングおよびフィルタ処理動作とともに簡易なビットブロック転送動作を実行するために第3のモードで動作し得る。たとえば、GPU12は、グラフィカル壁紙(graphical wallpapers)またはピクセルの他のブロックをダウンスケールまたはアップスケールするために、ビットブロックをスケーリングおよびフィルタ処理し得る。ソフトウェアアプリケーション18は、ソースロケーションから宛先ロケーションにビットブロックを転送するbitBLT動作、ならびにソースロケーションからのビットブロックをスケーリングするスケーリング動作を呼び出し得る。GPUドライバ22は、ソフトウェアアプリケーションによって呼び出された2Dグラフィックス動作に基づいて、GPU12のための動作モードを決定し得る。図3Cに示されているように、GPUドライバ22は、ソースロケーションから宛先ロケーションにビットブロックを転送するbitBLT動作とスケーリング動作とを実行するために、GPU12のための第3の動作モードを決定し得る。第3の動作モードでは、GPU12は、コマンドプロセッサ30と、2D制御センター32と、3Dラスタユニット38と、ピクセルサンプラー45と、色プロセッサ48と、ピクセルL1キャッシュ42と、テクスチャプロセッサ52と、データ組合せバッファ56と、グラフィックスメモリ40と、メモリアービトレーションブロックと、L2キャッシュ62と、メモリバスインターフェース64とを有効にし得る。第3の動作モードでは、GPU12はまた、2D制御センター32と、2Dラスタおよびタイルアドレス生成器34と、LRZブロック39と、シェーダプロセッサ50と、深度プロセッサ44とを無効にし、それらのハードウェアモジュールを電源切断またはクロックゲートすることを含み得る。
[0074]スケーリングおよびフィルタ処理動作とともにbitBLT動作を実行するために、コマンドプロセッサ30は、bitBLT動作ならびにスケーリングおよびフィルタ処理動作を実行するためにGPUドライバ22から受信されたコマンドを復号し得、2Dグラフィックス動作を3Dラスタユニット38に通信し得る。3Dラスタユニット38は、ソースロケーションからのビットブロックについての読取り要求を生成し得、また、宛先ロケーションへのビットブロックについての書込み要求を生成し得る。たとえば、ソースロケーションおよび宛先ロケーションは、ピクセルL1キャッシュ42、データ組合せバッファ56、グラフィックスメモリ40、および/またはシステムメモリ10のうちのいずれかであり得る。bitBLT動作のソースロケーションまたは宛先ロケーションがシステムメモリ10である場合、GPU12は、メモリバスインターフェース64を介してシステムメモリ10にアクセスし得る。GPU12は、3Dラスタユニット38によって生成された読取りおよび書込み要求に基づいて、ソースロケーションから宛先ロケーションへのビットブロック転送を実行し得る。
[0075]3Dラスタユニット38はまた、ビットブロックのスケーリングおよびフィルタ処理を実行するようにテクスチャプロセッサ52に指示し得る。L2キャッシュ62は、スケーリングおよびフィルタ処理されるべきビットブロックをキャッシュし得る。テクスチャプロセッサ52は、L2キャッシュ62からビットブロックを読み取り得、ビットブロックのスケーリングおよびフィルタ処理を実行し得、GPU12が、得られたスケーリングおよびフィルタ処理されたビットブロックを宛先ロケーションに書き込み得るように、スケーリングおよびフィルタ処理されたビットブロックを色プロセッサ48を通して送り得る。
[0076]図3Dに示されているように、GPU12は、シェーダプロセッサ50を利用し得る追加の2Dグラフィックス処理を実行するために、第4のモードで動作し得る。GPU12は、任意の変換を用いた追加の2D画像レンダリング、ならびにグラディエントおよびラジカルシェーディング(radical shading)を含むシェーダ画像レンダリングを実行するために、第4のモードで動作し得る。図3Dに示されているように、GPU12は、シェーダプロセッサ50を有効にし得、これらのグラフィックス動作を実行する際にシェーダプロセッサ50を使用し得る。さらに、GPU12はまた、3Dグラフィックス処理パイプラインに従って3Dグラフィックス処理動作を実行するために、第4のモードで動作し得る。
[0077]図3A〜図3Dに示されているように、図3Aによって示されている第1の動作モードでのGPU12の機能は、それぞれ、図3B、図3C、および図3Dによって示されている第2、第3、および第4の動作モードでのGPU12の機能のサブセットである。同様に、図3Bによって示されている第2の動作モードでのGPU12の機能は、それぞれ、図3C、および図3Dによって示されている第3、および第4の動作モードでのGPU12の機能のサブセットである。さらに、図3Cによって示されている第3の動作モードでのGPU12の機能は、図3Dによって示されている第4の動作モードでのGPU12の機能のサブセットである。このようにして、第2、第3、または第4動作モードでのGPU12は、第1のモードでのGPU12の機能を実行することが依然として可能であり得、第3または第4の動作モードでのGPU12は、第2のモードでのGPU12の機能を依然として実行することが可能であり得、第4の動作モードでのGPU12は、第3のモードでのGPU12の機能を依然として実行することが可能であり得る。
[0078]図4は、GPU12の例示的な動作をさらに詳細に示すフローチャートである。図4に示されているように、GPU12は、GPU12の第1の複数のグラフィックス処理ハードウェアユニットを使用して3Dグラフィックスパイプラインに従ってグラフィックス処理を実行する(402)。GPU12は、3Dグラフィックス処理を実行する際に使用されないGPU12の第2の複数のグラフィックス処理ハードウェアユニットと、GPU12の第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2Dグラフィックス動作をさらに実行する(404)。
[0079]いくつかの例では、GPU12は、GPU12によって実行されるべき2Dグラフィックス動作に少なくとも部分的に基づいて、2Dグラフィックス動作を実行する際に使用される第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットを決定し得る。いくつかの例では、GPU12は、3Dグラフィックスパイプラインに従って3Dグラフィックス処理に関連付けられたコンテキスト情報を保存し得る。GPU12は、さらに、2D動作を実行するためにGPU12のコンテキストを切り替え得る。2D動作を実行することの後に、GPU12は、保存されたコンテキスト情報に少なくとも部分的に基づいて3Dグラフィカル処理の実行を再開する(resume performance of)ためにGPU12のコンテキストを切り替え得る。
[0080]いくつかの例では、2次元グラフィックス動作は、ソースロケーションから宛先ロケーションにビットブロックを転送するためにビットブロック転送動作を備える。いくつかの例では、2次元グラフィックス動作は、ソースビットブロックを宛先ロケーションにおける宛先ビットブロックとブレンドするためにブレンディング動作をさらに備える。いくつかの例では、2次元グラフィックス動作は、ビットブロックをスケーリングおよびフィルタ処理するためにスケーリング動作をさらに備える。
[0081]いくつかの例では、GPU12によって、2Dグラフィックス動作を実行することは、宛先ロケーションにデフォルト値を書き込むためにGPU12がクリア動作を実行することを含む。第2の複数のグラフィックス処理ハードウェアユニットはピクセルレベル1キャッシュ42を備える。いくつかの例では、GPU12によって、2Dグラフィックス動作を実行することは、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにGPU12がビットブロック転送動作を実行することを含む。第2の複数のグラフィックス処理ハードウェアユニットはピクセルレベル1キャッシュ42を備える。
[0082]いくつかの例では、GPU12によって、2Dグラフィックス動作を実行することは、GPU12の色プロセッサ48によって、ソースロケーションからのピクセルの第1のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともに(with blending operation)ビットブロック転送を実行することを含む。第2の複数のグラフィックス処理ハードウェアユニットはピクセルレベル1キャッシュ42を備え、第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットは色プロセッサ48を備える。いくつかの例では、GPU12によって、2Dグラフィックス動作を実行することは、GPU12の色プロセッサ48によって、第1の色フォーマットから第2の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、GPU12によって、ピクセルのフォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含む。第2の複数のグラフィックス処理ハードウェアユニットはピクセルレベル1キャッシュ42を備え、第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットは色プロセッサ48を備える。いくつかの例では、GPU12によって、2Dグラフィックス動作を実行することは、GPU12のテクスチャプロセッサ52によって、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、GPU12によって、ピクセルのスケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含む。第2の複数のグラフィックス処理ハードウェアユニットはピクセルレベル1キャッシュ42を備え、第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットは色プロセッサ48とテクスチャプロセッサ52とを備える。
[0083]いくつかの例では、GPU12は、2Dグラフィックス動作を実行する際に使用されないGPUの第1の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンし得る。いくつかの例では、2Dグラフィックス動作を実行する際に使用されないGPUの第1の複数のグラフィックス処理ハードウェアユニットをパワーダウンすることは、GPU12によって、GPU12の1つまたは複数のシェーダプロセッサをパワーダウンすることをさらに含み得る。
[0084]いくつかの例では、GPU12の第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットは、GPU12の第1の複数のグラフィックス処理ハードウェアユニットのすべてよりも少ないグラフィックス処理ハードウェアユニットを含む。
[0085]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体と、コンピュータデータ記憶媒体とを含み得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイスを備えることができる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0086]コードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデック(combined codec)に組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0087]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
[0088]本開示の様々な態様が説明された。これらおよび他の態様は、以下の特許請求の範囲内に入る。
[0088]本開示の様々な態様が説明された。これらおよび他の態様は、以下の特許請求の範囲内に入る。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
グラフィックス処理のための方法であって、
グラフィックス処理ユニット(GPU)によって、前記GPUの第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行することと、
前記GPUによって、前記3Dグラフィックス処理を実行する際に使用されない前記GPUの第2の複数のグラフィックス処理ハードウェアユニットと、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2次元(2D)グラフィックス動作を実行することと
を備える、方法。
[C2]
前記GPUによって、前記GPUによって実行されるべき前記2Dグラフィックス動作に少なくとも部分的に基づいて、前記2Dグラフィックス動作を実行する際に使用される前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットを決定すること
をさらに備える、C1に記載の方法。
[C3]
前記GPUによって、前記2Dグラフィックス動作を実行することが、前記GPUによって、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記2D動作を実行することを備える、C1に記載の方法。
[C4]
前記GPUによって、前記3Dグラフィックスパイプラインに従って前記3Dグラフィックス処理に関連付けられたコンテキスト情報を保存することと、
前記GPUによって、前記2Dグラフィックス動作を実行するために前記GPUのコンテキストを切り替えることと、
前記2Dグラフィックス動作を実行することの後に、前記GPUによって、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記3Dグラフィカル処理の実行を再開するために前記GPUの前記コンテキストを切り替えることと
をさらに備える、C1に記載の方法。
[C5]
前記GPUによって、前記2Dグラフィックス動作を実行することが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行することを含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
C1に記載の方法。
[C6]
前記GPUによって、前記2Dグラフィックス動作を実行することが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行することを含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
C1に記載の方法。
[C7]
前記GPUによって、前記2Dグラフィックス動作を実行することが、前記GPUの色プロセッサによって、ソースロケーションからのピクセルの第1のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行することを含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
C1に記載の方法。
[C8]
前記GPUによって、前記2Dグラフィックス動作を実行することが、前記GPUの色プロセッサによって、第1の色フォーマットから第2の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、前記GPUによって、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
C1に記載の方法。
[C9]
前記GPUによって、前記2Dグラフィックス動作を実行することが、前記GPUのテクスチャプロセッサによって、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、前記GPUによって、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサと前記テクスチャプロセッサとを備える、
C1に記載の方法。
[C10]
2次元(2D)グラフィックス動作を記憶するように構成されたメモリと、
第1の複数のグラフィックス処理ハードウェアユニットと第2の複数のグラフィックス処理ハードウェアユニットとを含むグラフィックス処理ユニット(GPU)と、ここにおいて、前記GPUが、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するように構成され、ここにおいて、前記GPUが、前記GPUの前記第2の複数のグラフィックス処理ハードウェアユニットと、前記第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して前記2Dグラフィックス動作を実行するようにさらに構成された、
を備える、コンピューティングデバイス。
[C11]
前記GPUが、
前記GPUによって実行されるべき前記2Dグラフィックス動作に少なくとも部分的に基づいて、前記2Dグラフィックス動作を実行する際に使用される前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットを決定する
ようにさらに構成された、C10に記載のコンピューティングデバイス。
[C12]
前記GPUが、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記2D動作を実行するようにさらに構成された、C10に記載のコンピューティングデバイス。
[C13]
前記GPUが、
前記3Dグラフィックスパイプラインに従って前記3Dグラフィックス処理に関連付けられたコンテキスト情報を保存することと、
前記2Dグラフィックス動作を実行するために前記GPUのコンテキストを切り替えることと、
前記2Dグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記3Dグラフィカル処理の実行を再開するために前記GPUの前記コンテキストを切り替えることと
を行うようにさらに構成された、C10に記載のコンピューティングデバイス。
[C14]
前記GPUが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するようにさらに構成され、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
C10に記載のコンピューティングデバイス。
[C15]
前記GPUが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するようにさらに構成され、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
C10に記載のコンピューティングデバイス。
[C16]
前記GPUが、ソースロケーションからのピクセルの第1のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するようにさらに構成され、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
C10に記載のコンピューティングデバイス。
[C17]
前記GPUが、第1の色フォーマットから第2の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
C10に記載のコンピューティングデバイス。
[C18]
前記GPUが、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
C10に記載のコンピューティングデバイス。
[C19]
グラフィックス処理のための装置であって、
第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するための手段と、
前記3Dグラフィックス処理を実行する際に使用されない第2の複数のグラフィックス処理ハードウェアユニットと、前記第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2次元(2D)グラフィックス動作を実行するための手段と
を備える、装置。
[C20]
実行されるべき前記2Dグラフィックス動作に少なくとも部分的に基づいて、前記2Dグラフィックス動作を実行する際に使用される前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットを決定するための手段
をさらに備える、C19に記載の装置。
[C21]
前記3Dグラフィックスパイプラインに従って前記3Dグラフィックス処理に関連付けられたコンテキスト情報を保存するための手段と、
前記2Dグラフィックス動作を実行するためにコンテキストを切り替えるための手段と、
前記2Dグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記3Dグラフィカル処理の実行を再開するために前記コンテキストを切り替えるための手段と
をさらに備える、C19に記載の装置。
[C22]
前記2Dグラフィックス動作を実行するための前記手段が、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するための手段を含み、
ここにおいて、前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
C19に記載の装置。
[C23]
前記2Dグラフィックス動作を実行するための前記手段が、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するための手段を含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
C19に記載の装置。
[C24]
前記2Dグラフィックス動作を実行するための前記手段が、ソースロケーションからのピクセルの第1のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するための手段を含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
C19に記載の装置。
[C25]
前記2Dグラフィックス動作を実行するための前記手段が、第1の色フォーマットから第2の色フォーマットへのピクセルのブロックのフォーマット変換を実行するための手段と、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
C19に記載の装置。
[C26]
前記2Dグラフィックス動作のための前記手段が、ピクセルのブロックをスケーリングするためにスケーリング動作を実行するための手段と、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
C19に記載の装置。
[C27]
グラフィックス処理ユニット(GPU)であって、
第1の複数のグラフィックス処理ハードウェアユニットと第2の複数のグラフィックス処理ハードウェアユニットとを備え、ここにおいて、前記GPUが、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するように構成され、ここにおいて、前記GPUが、前記GPUの前記第2の複数のグラフィックス処理ハードウェアユニットと、前記第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して2次元(2D)グラフィックス動作を実行するようにさらに構成された、
GPU。
[C28]
前記GPUが、
前記2Dグラフィックス動作を実行するために使用されない前記第1の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンするようにさらに構成された、C27に記載のGPU。
[C29]
前記2Dグラフィックス動作を実行するために使用されない前記第1の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンすることが、
1つまたは複数のシェーダプロセッサをパワーダウンすることを
をさらに備える、C28に記載のGPU。
[C30]
前記GPUが、
前記2Dグラフィックス動作を実行するために使用されない前記第1の複数のグラフィックス処理ハードウェアユニットの一部をクロックゲートする
ようにさらに構成された、C27に記載のGPU。

Claims (30)

  1. グラフィックス処理のための方法であって、
    グラフィックス処理ユニット(GPU)によって、前記GPUの第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行することと、
    前記GPUによって、前記3Dグラフィックス処理を実行する際に使用されない前記GPUの第2の複数のグラフィックス処理ハードウェアユニットと、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2次元(2D)グラフィックス動作を実行することと
    を備える、方法。
  2. 前記GPUによって、前記GPUによって実行されるべき前記2Dグラフィックス動作に少なくとも部分的に基づいて、前記2Dグラフィックス動作を実行する際に使用される前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットを決定すること
    をさらに備える、請求項1に記載の方法。
  3. 前記GPUによって、前記2Dグラフィックス動作を実行することが、前記GPUによって、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記2D動作を実行することを備える、請求項1に記載の方法。
  4. 前記GPUによって、前記3Dグラフィックスパイプラインに従って前記3Dグラフィックス処理に関連付けられたコンテキスト情報を保存することと、
    前記GPUによって、前記2Dグラフィックス動作を実行するために前記GPUのコンテキストを切り替えることと、
    前記2Dグラフィックス動作を実行することの後に、前記GPUによって、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記3Dグラフィカル処理の実行を再開するために前記GPUの前記コンテキストを切り替えることと
    をさらに備える、請求項1に記載の方法。
  5. 前記GPUによって、前記2Dグラフィックス動作を実行することが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行することを含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
    請求項1に記載の方法。
  6. 前記GPUによって、前記2Dグラフィックス動作を実行することが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行することを含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
    請求項1に記載の方法。
  7. 前記GPUによって、前記2Dグラフィックス動作を実行することが、前記GPUの色プロセッサによって、ソースロケーションからのピクセルの第1のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行することを含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
    請求項1に記載の方法。
  8. 前記GPUによって、前記2Dグラフィックス動作を実行することが、前記GPUの色プロセッサによって、第1の色フォーマットから第2の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、前記GPUによって、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが前記色プロセッサを備える、
    請求項1に記載の方法。
  9. 前記GPUによって、前記2Dグラフィックス動作を実行することが、前記GPUのテクスチャプロセッサによって、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、前記GPUによって、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサと前記テクスチャプロセッサとを備える、
    請求項1に記載の方法。
  10. 2次元(2D)グラフィックス動作を記憶するように構成されたメモリと、
    第1の複数のグラフィックス処理ハードウェアユニットと第2の複数のグラフィックス処理ハードウェアユニットとを含むグラフィックス処理ユニット(GPU)と、ここにおいて、前記GPUが、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するように構成され、ここにおいて、前記GPUが、前記GPUの前記第2の複数のグラフィックス処理ハードウェアユニットと、前記第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して前記2Dグラフィックス動作を実行するようにさらに構成された、
    を備える、コンピューティングデバイス。
  11. 前記GPUが、
    前記GPUによって実行されるべき前記2Dグラフィックス動作に少なくとも部分的に基づいて、前記2Dグラフィックス動作を実行する際に使用される前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットを決定する
    ようにさらに構成された、請求項10に記載のコンピューティングデバイス。
  12. 前記GPUが、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットのうちのシェーダプロセッサを使用することなしに前記2D動作を実行するようにさらに構成された、請求項10に記載のコンピューティングデバイス。
  13. 前記GPUが、
    前記3Dグラフィックスパイプラインに従って前記3Dグラフィックス処理に関連付けられたコンテキスト情報を保存することと、
    前記2Dグラフィックス動作を実行するために前記GPUのコンテキストを切り替えることと、
    前記2Dグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記3Dグラフィカル処理の実行を再開するために前記GPUの前記コンテキストを切り替えることと
    を行うようにさらに構成された、請求項10に記載のコンピューティングデバイス。
  14. 前記GPUが、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するようにさらに構成され、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
    請求項10に記載のコンピューティングデバイス。
  15. 前記GPUが、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するようにさらに構成され、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
    請求項10に記載のコンピューティングデバイス。
  16. 前記GPUが、ソースロケーションからのピクセルの第1のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するようにさらに構成され、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
    請求項10に記載のコンピューティングデバイス。
  17. 前記GPUが、第1の色フォーマットから第2の色フォーマットへのピクセルのブロックのフォーマット変換を実行することと、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
    請求項10に記載のコンピューティングデバイス。
  18. 前記GPUが、ピクセルのブロックをスケーリングするためにスケーリング動作を実行することと、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行することとを行うようにさらに構成され、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
    請求項10に記載のコンピューティングデバイス。
  19. グラフィックス処理のための装置であって、
    第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するための手段と、
    前記3Dグラフィックス処理を実行する際に使用されない第2の複数のグラフィックス処理ハードウェアユニットと、前記第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットとを使用して2次元(2D)グラフィックス動作を実行するための手段と
    を備える、装置。
  20. 実行されるべき前記2Dグラフィックス動作に少なくとも部分的に基づいて、前記2Dグラフィックス動作を実行する際に使用される前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットを決定するための手段
    をさらに備える、請求項19に記載の装置。
  21. 前記3Dグラフィックスパイプラインに従って前記3Dグラフィックス処理に関連付けられたコンテキスト情報を保存するための手段と、
    前記2Dグラフィックス動作を実行するためにコンテキストを切り替えるための手段と、
    前記2Dグラフィックス動作を実行することの後に、前記保存されたコンテキスト情報に少なくとも部分的に基づいて前記3Dグラフィカル処理の実行を再開するために前記コンテキストを切り替えるための手段と
    をさらに備える、請求項19に記載の装置。
  22. 前記2Dグラフィックス動作を実行するための前記手段が、宛先ロケーションにデフォルト値を書き込むためにクリア動作を実行するための手段を含み、
    ここにおいて、前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
    請求項19に記載の装置。
  23. 前記2Dグラフィックス動作を実行するための前記手段が、ソースロケーションから宛先ロケーションにピクセルのブロックを転送するためにビットブロック転送動作を実行するための手段を含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備える、
    請求項19に記載の装置。
  24. 前記2Dグラフィックス動作を実行するための前記手段が、ソースロケーションからのピクセルの第1のブロックを宛先ロケーションにおけるピクセルの宛先ブロックとブレンドするためにブレンディング動作とともにビットブロック転送を実行するための手段を含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
    請求項19に記載の装置。
  25. 前記2Dグラフィックス動作を実行するための前記手段が、第1の色フォーマットから第2の色フォーマットへのピクセルのブロックのフォーマット変換を実行するための手段と、ピクセルの前記フォーマット変換されたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサを備える、
    請求項19に記載の装置。
  26. 前記2Dグラフィックス動作のための前記手段が、ピクセルのブロックをスケーリングするためにスケーリング動作を実行するための手段と、ピクセルの前記スケーリングされたブロックを宛先ロケーションに転送するためにビットブロック転送動作を実行するための手段とを含み、
    前記第2の複数のグラフィックス処理ハードウェアユニットがレベル1キャッシュを備え、
    前記第1の複数のグラフィックス処理ハードウェアユニットのうちの前記1つまたは複数のグラフィックス処理ハードウェアユニットが色プロセッサとテクスチャプロセッサとを備える、
    請求項19に記載の装置。
  27. グラフィックス処理ユニット(GPU)であって、
    第1の複数のグラフィックス処理ハードウェアユニットと第2の複数のグラフィックス処理ハードウェアユニットとを備え、ここにおいて、前記GPUが、前記GPUの前記第1の複数のグラフィックス処理ハードウェアユニットを使用して3次元(3D)グラフィックスパイプラインに従って3Dグラフィックス処理を実行するように構成され、ここにおいて、前記GPUが、前記GPUの前記第2の複数のグラフィックス処理ハードウェアユニットと、前記第1の複数のグラフィックス処理ハードウェアユニットのうちの1つまたは複数のグラフィックス処理ハードウェアユニットと、を使用して2次元(2D)グラフィックス動作を実行するようにさらに構成された、
    GPU。
  28. 前記GPUが、
    前記2Dグラフィックス動作を実行するために使用されない前記第1の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンするようにさらに構成された、請求項27に記載のGPU。
  29. 前記2Dグラフィックス動作を実行するために使用されない前記第1の複数のグラフィックス処理ハードウェアユニットの一部をパワーダウンすることが、
    1つまたは複数のシェーダプロセッサをパワーダウンすることを
    をさらに備える、請求項28に記載のGPU。
  30. 前記GPUが、
    前記2Dグラフィックス動作を実行するために使用されない前記第1の複数のグラフィックス処理ハードウェアユニットの一部をクロックゲートする
    ようにさらに構成された、請求項27に記載のGPU。
JP2017550860A 2015-03-31 2016-03-17 ハイブリッド2d/3dグラフィックスレンダリング Pending JP2018514855A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562141095P 2015-03-31 2015-03-31
US62/141,095 2015-03-31
US14/865,776 2015-09-25
US14/865,776 US20160292812A1 (en) 2015-03-31 2015-09-25 Hybrid 2d/3d graphics rendering
PCT/US2016/022908 WO2016160361A1 (en) 2015-03-31 2016-03-17 Hybrid 2d/3d graphics rendering

Publications (1)

Publication Number Publication Date
JP2018514855A true JP2018514855A (ja) 2018-06-07

Family

ID=55642906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017550860A Pending JP2018514855A (ja) 2015-03-31 2016-03-17 ハイブリッド2d/3dグラフィックスレンダリング

Country Status (6)

Country Link
US (1) US20160292812A1 (ja)
EP (1) EP3278300A1 (ja)
JP (1) JP2018514855A (ja)
KR (1) KR20170132758A (ja)
CN (1) CN107408311A (ja)
WO (1) WO2016160361A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021190098A (ja) * 2020-05-29 2021-12-13 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 画像前処理方法、装置、電子機器及び記憶媒体

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10817043B2 (en) * 2011-07-26 2020-10-27 Nvidia Corporation System and method for entering and exiting sleep mode in a graphics subsystem
US10074159B2 (en) * 2015-12-28 2018-09-11 Volkswagen Ag System and methodologies for super sampling to enhance anti-aliasing in high resolution meshes
US10322343B2 (en) * 2016-10-31 2019-06-18 Zynga Inc. G.P.U.-assisted character animation
KR102646906B1 (ko) * 2016-11-17 2024-03-12 삼성전자주식회사 타일 기반 렌더링 방법 및 장치
US10951890B1 (en) 2017-05-16 2021-03-16 Parsec Cloud, Inc. Low-latency, peer-to-peer streaming video
US10474408B2 (en) 2017-09-07 2019-11-12 Apple Inc. Image data processing pipeline bypass systems and methods
CN109508212A (zh) * 2017-09-13 2019-03-22 深信服科技股份有限公司 图形渲染方法、设备及计算机可读存储介质
CN108171644A (zh) * 2017-12-22 2018-06-15 天津麒麟信息技术有限公司 一种基于gcn架构显卡的二维图形加速方法
CN109413337A (zh) * 2018-08-30 2019-03-01 北京达佳互联信息技术有限公司 视频渲染方法、装置、电子设备及存储介质
WO2020107886A1 (en) * 2018-11-29 2020-06-04 Huawei Technologies Co., Ltd. Loading apparatus and method for convolution with stride or dilation of 2

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5861893A (en) * 1997-05-27 1999-01-19 Intel Corporation System and method for graphics data concurrency and coherency
US6891533B1 (en) * 2000-04-11 2005-05-10 Hewlett-Packard Development Company, L.P. Compositing separately-generated three-dimensional images
US6731288B2 (en) * 2002-03-01 2004-05-04 3Dlabs Inc., Ltd. Graphics engine with isochronous context switching
US8817029B2 (en) * 2005-10-26 2014-08-26 Via Technologies, Inc. GPU pipeline synchronization and control system and method
US8203564B2 (en) * 2007-02-16 2012-06-19 Qualcomm Incorporated Efficient 2-D and 3-D graphics processing
US9142057B2 (en) * 2009-09-03 2015-09-22 Advanced Micro Devices, Inc. Processing unit with a plurality of shader engines
CN102034265B (zh) * 2010-11-24 2012-07-18 清华大学 一种三维视图获取方法
US10013731B2 (en) * 2011-06-30 2018-07-03 Intel Corporation Maximizing parallel processing in graphics processors
US9829956B2 (en) * 2012-11-21 2017-11-28 Nvidia Corporation Approach to power reduction in floating-point operations
US9395804B2 (en) * 2013-02-08 2016-07-19 International Business Machines Corporation Branch prediction with power usage prediction and control
CN103606184B (zh) * 2013-11-21 2016-05-25 武大吉奥信息技术有限公司 一种基于二维和三维一体化矢量渲染引擎的装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021190098A (ja) * 2020-05-29 2021-12-13 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 画像前処理方法、装置、電子機器及び記憶媒体
JP7160495B2 (ja) 2020-05-29 2022-10-25 阿波▲羅▼智▲聯▼(北京)科技有限公司 画像前処理方法、装置、電子機器及び記憶媒体

Also Published As

Publication number Publication date
CN107408311A8 (zh) 2018-01-12
KR20170132758A (ko) 2017-12-04
CN107408311A (zh) 2017-11-28
US20160292812A1 (en) 2016-10-06
WO2016160361A1 (en) 2016-10-06
EP3278300A1 (en) 2018-02-07

Similar Documents

Publication Publication Date Title
JP2018514855A (ja) ハイブリッド2d/3dグラフィックスレンダリング
JP5866457B2 (ja) オーバドロー・トラッカを用いたグラフィック処理におけるダイレクト・レンダリングとビニングとの切替
JP6073533B1 (ja) タイルベースのアーキテクチャ上での最適化されたマルチパスレンダリング
JP6001221B1 (ja) グラフィックス処理のための任意の制御ポイントでのフォールトトレラントプリエンプションメカニズム
US10062139B2 (en) Vertex shaders for binning based graphics processing
KR102006584B1 (ko) 레이트 심도 테스팅과 컨서버티브 심도 테스팅 간의 동적 스위칭
KR20180098690A (ko) 그래픽 프로세싱에서 셰도우 레이들에 대한 트리 횡단을 위한 시작 노드 결정
US10078883B2 (en) Writing graphics data from local memory to system memory
US9852539B2 (en) Single pass surface splatting
US10580151B2 (en) Tile-based low-resolution depth storage
US9720691B2 (en) Speculative scalarization in vector processing
JP2018533137A (ja) ピクセルタイルレベルグラニュラリティをもつグラフィックス処理ユニットプリエンプション
US10416808B2 (en) Input event based dynamic panel mode switch
JP6271812B2 (ja) 透過的画素フォーマット変換器
CN107077716B (zh) 用于图形处理的动态管线
US10157443B1 (en) Deferred batching of incremental constant loads