JP2011123894A - Antialiasing using multiple display heads of graphics processor - Google Patents

Antialiasing using multiple display heads of graphics processor Download PDF

Info

Publication number
JP2011123894A
JP2011123894A JP2010275767A JP2010275767A JP2011123894A JP 2011123894 A JP2011123894 A JP 2011123894A JP 2010275767 A JP2010275767 A JP 2010275767A JP 2010275767 A JP2010275767 A JP 2010275767A JP 2011123894 A JP2011123894 A JP 2011123894A
Authority
JP
Japan
Prior art keywords
pixel
graphics processor
display
pixels
gpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010275767A
Other languages
Japanese (ja)
Other versions
JP5116125B2 (en
Inventor
Duncan A Riach
エー. リアチ ダンカン
Brijesh Tripathi
トリパシ ブリジェッシュ
Brett T Hannigan
ティー. ハンニガン ブレット
Philip Browning Johnson
ブラウニング ジョンソン フィリップ
Brian M Kelleher
エム. ケラハー ブライアン
Franck R Diard
アール. ディアード フランク
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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
Priority claimed from US11/383,048 external-priority patent/US8130227B2/en
Priority claimed from US11/680,554 external-priority patent/US20090085928A1/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of JP2011123894A publication Critical patent/JP2011123894A/en
Application granted granted Critical
Publication of JP5116125B2 publication Critical patent/JP5116125B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide the antialiasing of image data using multiple display heads of one graphic processor. <P>SOLUTION: Two display heads 206 of the same graphics processor 122 are coupled to each other in a master/slave configuration via a pixel transfer path. The "master" display head receives pixels from the "slave" display head in addition to its own pixels, and pixel selection logic in the master display head blends the two pixels or select one to the exclusion of the other. When the two pixels correspond to different sampling locations in the same display pixel, the blended pixel is an antialiased pixel. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

関連出願の相互参照Cross-reference of related applications

[0001]本願は、2006年5月12日に出願された「Antialiasing Using Multiple Display Heads of a Graphics
Processor」と題する米国仮出願第60/747,154号、および同一出願人による同時係属中の2006年5月12日に出願された「Distributed Antialiasing in a Multiprocessor Graphics
System」と題する米国特許出願第11/383,048号の利益を主張するものである。
[0001] This application is filed on May 12, 2006, entitled “Antialiasing Using Multiple Display Heads of a Graphics.
US Provisional Application No. 60 / 747,154 entitled "Processor" and "Distributed Antialiasing in a Multiprocessor Graphics" filed May 12, 2006, co-pending by the same applicant.
Claims the benefit of US patent application Ser. No. 11 / 383,048 entitled “System”.

発明の背景Background of the Invention

[0002]本発明は、概してコンピュータグラフィックスに関し、特にグラフィックスプロセッサの複数のディスプレイヘッドを用いた画像データのアンチエイリアシングに関する。   [0002] The present invention relates generally to computer graphics, and more particularly to anti-aliasing of image data using multiple display heads of a graphics processor.

[0003]当分野で既知のように、コンピュータ生成画像は、画像データを離散カラーサンプル(画素)のアレイへと変換するのに用いる有限サンプリング解像度から生じる様々なビジュアルアーチファクトに影響を受けやすい。一般に「エイリアシング」と呼ばれるこのようなアーチファクトには、平滑なラインのジャギー、規則的なパターンのムラ等が含まれる。   [0003] As is known in the art, computer-generated images are susceptible to various visual artifacts that result from the finite sampling resolution used to convert image data into an array of discrete color samples (pixels). Such artifacts commonly referred to as “aliasing” include smooth line jaggy, regular pattern irregularities, and the like.

[0004]エイリアシングを減らすために、カラーを「オーバーサンプリング」する、すなわち最終(例えばディスプレイまたは記憶)画像を構成する画素数を上回る数のサンプリング位置でサンプリングすることが多い。例えば、画素数の2倍または4倍で画像をサンプリングすることもある。当分野では、各サンプリング位置を別個の画素として扱うスーパーサンプリングや、画素の少なくとも一部をカバーする基本形状毎に1つのカラー値を計算するが、この基本形状による画素のカバレージは複数の位置で決定するマルチサンプリングを含む、各種のオーバーサンプリングが既知である。   [0004] To reduce aliasing, colors are often "oversampled", that is, sampled at a number of sampling locations that exceeds the number of pixels that make up the final (eg, display or storage) image. For example, an image may be sampled at twice or four times the number of pixels. In this field, super-sampling in which each sampling position is treated as a separate pixel, or one color value is calculated for each basic shape covering at least a part of the pixel. The pixel coverage by this basic shape is calculated at a plurality of positions. Various oversamplings are known, including multisampling to determine.

[0005]アンチエイリアシング(AA)フィルタは、1画素あたり複数のサンプルを混合して1つのカラー値を決定する。従来、AAフィルタは、画素を生成してフレームバッファに記憶するレンダリングパイプライン内、または、画素をフレームバッファから読み出してディスプレイ装置に送るディスプレイパイプライン内のいずれかに適用される。   An anti-aliasing (AA) filter mixes multiple samples per pixel to determine one color value. Conventionally, AA filters are applied either in a rendering pipeline that generates pixels and stores them in a frame buffer, or in a display pipeline that reads pixels from the frame buffer and sends them to a display device.

[0006]本発明の実施形態は、1つのグラフィックスプロセッサの複数のディスプレイヘッドを利用してアンチエイリアシングおよび他の処理タスクを行うシステムおよび方法を提供するものである。一実施形態では、同じグラフィックスプロセッサの2つのディスプレイヘッドが画素転送パスを介してマスター/スレーブ形式で互いに結合されている。「マスター」ディスプレイヘッドは、それ自体の画素に加えて「スレーブ」ディスプレイヘッドから画素を受信し、マスターディスプレイヘッド中の画素選択論理回路がこの2画素を混合するか、いずれか一方を選択して他方を除外する。2画素が同じ画像の異なるサンプリング位置に対応する場合には、混合した画素がAAフィルタ処理画素となる。   [0006] Embodiments of the present invention provide systems and methods that utilize multiple display heads of a single graphics processor to perform anti-aliasing and other processing tasks. In one embodiment, two display heads of the same graphics processor are coupled together in a master / slave fashion via a pixel transfer path. The “master” display head receives pixels from the “slave” display head in addition to its own pixels, and the pixel selection logic in the master display head mixes the two pixels and selects one of them. Exclude the other. When two pixels correspond to different sampling positions of the same image, the mixed pixel is an AA filter processing pixel.

[0007]本発明の一態様によれば、グラフィックス処理装置が、第1のディスプレイヘッドと、第2のディスプレイヘッドと、画素転送パスとを含む。第1のディスプレイヘッドは、第1の出力画素を生成するように構成され、集積回路内に配置される。第2のディスプレイヘッドは、第2の出力画素を生成するように構成されており、これも集積回路内に配置されている。第2のディスプレイヘッドは、外部画素を受信するように構成された第1の入力パスと、内部画素を受信するように構成された第2の入力パスと、上記第1の入力パスおよび上記第2の入力パスに結合され、上記外部画素と上記内部画素を混合して、上記混合画素を生成するように構成された画素合成器と、上記外部画素、上記内部画素、または上記混合画素の1つを第2の出力画素として選択するように構成された選択回路とを有利に含む。上記画素転送パスは、上記第1の出力画素が上記外部画素として上記第1の入力パスにより受信されるように、上記第1の出力画素を上記第1のディスプレイヘッドから上記第2のディスプレイヘッドの上記第1の入力パスへと送るように設定可能である。   [0007] According to one aspect of the invention, a graphics processing apparatus includes a first display head, a second display head, and a pixel transfer path. The first display head is configured to generate a first output pixel and is disposed in the integrated circuit. The second display head is configured to generate a second output pixel, which is also disposed in the integrated circuit. The second display head includes a first input path configured to receive external pixels, a second input path configured to receive internal pixels, the first input path, and the first input path. A pixel synthesizer coupled to two input paths and configured to mix the external pixel and the internal pixel to generate the mixed pixel; and one of the external pixel, the internal pixel, or the mixed pixel And a selection circuit configured to select one as the second output pixel. The pixel transfer path moves the first output pixel from the first display head to the second display head such that the first output pixel is received as the external pixel by the first input path. To the first input path.

[0008]いくつかの実施形態では、上記画素転送パスも集積回路内に配置される。他の実施形態では、上記画素転送パスの少なくとも一部が上記集積回路の外部にある。例えば、上記画素転送パスが取り外し可能なコネクタを含む。   [0008] In some embodiments, the pixel transfer path is also located in an integrated circuit. In other embodiments, at least a portion of the pixel transfer path is external to the integrated circuit. For example, the pixel transfer path includes a removable connector.

[0009]本発明の別の態様によれば、グラフィックスサブシステムが、画素出力コネクタおよび画素入力コネクタを有するグラフィックスアダプタを含む。グラフィックスプロセッサは、上記グラフィックスアダプタ上に実装することもできるが、上記画素出力コネクタに通信可能に結合された画素出力ポートと上記画素入力コネクタに通信可能に結合された画素入力ポートとを有する。グラフィックスサブシステムは、上記グラフィックスアダプタの上記画素出力コネクタを上記グラフィックスアダプタの上記画素入力コネクタに接続するように適合された取り外し可能なコネクタユニットも含む。   [0009] According to another aspect of the invention, a graphics subsystem includes a graphics adapter having a pixel output connector and a pixel input connector. A graphics processor may be implemented on the graphics adapter, but has a pixel output port communicatively coupled to the pixel output connector and a pixel input port communicatively coupled to the pixel input connector. . The graphics subsystem also includes a removable connector unit adapted to connect the pixel output connector of the graphics adapter to the pixel input connector of the graphics adapter.

[0010]本発明のまた別の態様によれば、画像を生成する方法が、グラフィックスプロセッサのレンダリングパイプラインを用いて、画像用の入力画素の第1セットおよび入力画素の第2セットをレンダリングするステップを含む。入力画素の第1セットをレンダリングするのに用いられる第1のレンダリング動作は、少なくとも一点で上記入力画素の第2セットをレンダリングするのに用いられる第2のレンダリング動作と異なる。例えば、上記2つのレンダリング動作は、各画素に適用されるサンプリングパターンに関して異なっても、またはレンダリングされる画像の視野域オフセットに関して異なってもよい。上記入力画素の第1セットが上記グラフィックスプロセッサの第1のディスプレイヘッドに送られ、上記入力画素の第2セットが上記グラフィックスプロセッサの第2のディスプレイヘッドに送られる。上記入力画素の第1セットは、さらに上記第1のディスプレイヘッドから上記第2のディスプレイヘッドに送られる。上記第2のディスプレイヘッドで、上記入力画素の第1セットおよび上記入力画素の第2セットの対応する画素が混合され出力画素のセットを生成する。   [0010] According to yet another aspect of the invention, a method for generating an image renders a first set of input pixels and a second set of input pixels for an image using a graphics processor's rendering pipeline. Including the steps of: The first rendering operation used to render the first set of input pixels differs from the second rendering operation used to render the second set of input pixels at least at one point. For example, the two rendering operations may differ with respect to the sampling pattern applied to each pixel or with respect to the field of view offset of the rendered image. The first set of input pixels is sent to the first display head of the graphics processor, and the second set of input pixels is sent to the second display head of the graphics processor. The first set of input pixels is further sent from the first display head to the second display head. In the second display head, corresponding pixels of the first set of input pixels and the second set of input pixels are mixed to generate a set of output pixels.

[0011]以下の詳細な説明が、添付の図面と併せて本発明の性質および利点のより良い理解を与えるであろう。   [0011] The following detailed description, together with the accompanying drawings, will provide a better understanding of the nature and advantages of the present invention.

発明の詳細な説明Detailed Description of the Invention

[0020]本発明の実施形態は、1つのグラフィックスプロセッサの複数のディスプレイヘッドを利用してアンチエイリアシングおよび他の処理タスクを行うシステムおよび方法を提供するものである。一実施形態では、同じグラフィックスプロセッサの2つのディスプレイヘッドが画素転送パスを介してマスター/スレーブ形式で互いに結合されている。「マスター」ディスプレイヘッドは、それ自体の画素に加えて「スレーブ」ディスプレイヘッドから画素を受信し、マスターディスプレイヘッド中の画素選択論理回路がこの2画素を混合するか、いずれか一方を選択して他方を除外する。2画素が同じ画像の異なるサンプリング位置に対応する場合には、混合した画素がAAフィルタ処理画素となる。[システム概観]   [0020] Embodiments of the present invention provide systems and methods that utilize multiple display heads of a graphics processor to perform anti-aliasing and other processing tasks. In one embodiment, two display heads of the same graphics processor are coupled together in a master / slave fashion via a pixel transfer path. The “master” display head receives pixels from the “slave” display head in addition to its own pixels, and the pixel selection logic in the master display head mixes the two pixels and selects one of them. Exclude the other. When two pixels correspond to different sampling positions of the same image, the mixed pixel is an AA filter processing pixel. [System overview]

[0021]図1は、本発明の実施形態によるコンピュータシステム100のブロック図である。コンピュータシステム100は、中央演算処理装置(CPU)102と、ノースブリッジチップ等のメモリブリッジ105を含むバスパスを介して通信するシステムメモリ104とを含む。メモリブリッジ105は、バスまたは他の通信パス106を介してサウスブリッジチップ等のI/O(入力/出力)ブリッジ107と接続されている。I/Oブリッジ107は、一又は複数のユーザ入力デバイス108(キーボード、マウス等)からユーザ入力を受信し、バス106およびメモリブリッジ105を介してその入力をCPU102へと転送する。ビジュアル出力は、バスまたは他の通信パス113を介してメモリブリッジ105に結合されたグラフィックスサブシステム112の制御下で動作する画素ベースディスプレイ装置110(従来のCRTまたはLCDベースモニタ)上で提供される。システムディスク114は、I/Oブリッジ107にも接続されている。スイッチ116は、I/Oブリッジ107とネットワークアダプタ118および各種アドインカード120、121等の他のコンポーネントとの間を接続する。USBまたは他のポート接続、CDドライブ、DVDドライブ等の他のコンポーネント(明示せず)をI/Oブリッジ107に接続することもできる。各種コンポーネント間の通信パスは、PCI(Peripheral Component Interconnect)、PCI Express(PCI−E)、AGP(Accelerated Graphics Port)、HyperTransport、または任意の他のバスまたはポイントツーポイントプロトコルを用いて実施することができ、異なるデバイス間の接続は当分野で既知の異なるプロトコルを用いることができる。   [0021] FIG. 1 is a block diagram of a computer system 100 according to an embodiment of the invention. The computer system 100 includes a central processing unit (CPU) 102 and a system memory 104 that communicates via a bus path including a memory bridge 105 such as a north bridge chip. The memory bridge 105 is connected to an I / O (input / output) bridge 107 such as a south bridge chip via a bus or other communication path 106. The I / O bridge 107 receives user input from one or more user input devices 108 (keyboard, mouse, etc.), and transfers the input to the CPU 102 via the bus 106 and the memory bridge 105. The visual output is provided on a pixel-based display device 110 (conventional CRT or LCD-based monitor) that operates under the control of a graphics subsystem 112 coupled to the memory bridge 105 via a bus or other communication path 113. The The system disk 114 is also connected to the I / O bridge 107. The switch 116 connects between the I / O bridge 107 and other components such as the network adapter 118 and various add-in cards 120 and 121. Other components (not explicitly shown) such as USB or other port connection, CD drive, DVD drive, etc. can also be connected to the I / O bridge 107. The communication path between the various components may be implemented using PCI (Peripheral Component Interconnect), PCI Express (PCI-E), AGP (Accelerated Graphics Port), HyperTransport, or any other bus or point-to-point protocol. The connection between different devices can use different protocols known in the art.

[0022]グラフィックスサブシステム112は、N個(一又は複数)のグラフィックス処理装置(GPU)122を含んでいる。(本明細書では、同様の物の複数の例は、その物を特定する参照番号および必要に応じてその例を特定する括弧付き番号で示す。)各GPU122は、関連付けられたグラフィックスメモリ124を有する。GPU122およびグラフィックスメモリ124は、例えば、プログラマブルプロセッサ、特定用途向け集積回路(ASIC)およびメモリデバイス等の一又は複数の集積回路デバイスを用いて実施することができる。いくつかの実施形態では、GPU122およびグラフィックスメモリ124が、システム100の拡張スロット(PCI−Eスロット等)に挿入または当該拡張スロットから取り外し可能な一又は複数の拡張カードまたは他のアダプタで実施される。任意の数NのGPU122を用いることができる。   The graphics subsystem 112 includes N (one or more) graphics processing units (GPUs) 122. (In this document, examples of similar objects are indicated by a reference number identifying the object and, optionally, parenthesized numbers identifying the example.) Each GPU 122 is associated with an associated graphics memory 124. Have GPU 122 and graphics memory 124 may be implemented using one or more integrated circuit devices such as, for example, programmable processors, application specific integrated circuits (ASICs), and memory devices. In some embodiments, the GPU 122 and graphics memory 124 are implemented with one or more expansion cards or other adapters that can be inserted into or removed from expansion slots (such as PCI-E slots) in the system 100. The Any number N of GPUs 122 may be used.

[0023]各GPU122は、メモリブリッジ105およびバス113を介してCPU102および/またはシステムメモリ104から供給されるグラフィックスデータから画素データ(本明細書では「画素」ともいう)を生成することに関連する各種タスクを行うように構成することができ、各グラフィックスメモリ124と情報をやりとりして画素データ等を記憶したり更新したりする。例えば、GPU122は、CPU102上で実行する各種プログラムにより提供される2Dまたは3Dシーンデータから画素データを生成することができる。GPU122は、メモリブリッジ105を介して受信した画素データをさらなる処理の有無を問わずグラフィックスメモリ124に書き込むこともできる。各GPU122は、画素データをグラフィックスメモリ124から後述するGPU122の出力ポートへと送るように構成可能なスキャンアウトモジュール(本明細書ではディスプレイパイプラインともいう)も含んでいる。出力ポートは、モニタまたは別のGPU122に接続してもしなくてもよい。   [0023] Each GPU 122 is associated with generating pixel data (also referred to herein as "pixels") from graphics data supplied from CPU 102 and / or system memory 104 via memory bridge 105 and bus 113. It can be configured to perform various tasks, and exchanges information with each graphics memory 124 to store or update pixel data or the like. For example, the GPU 122 can generate pixel data from 2D or 3D scene data provided by various programs executed on the CPU 102. The GPU 122 can also write pixel data received via the memory bridge 105 into the graphics memory 124 with or without further processing. Each GPU 122 also includes a scan-out module (also referred to herein as a display pipeline) that can be configured to send pixel data from the graphics memory 124 to an output port of the GPU 122 described below. The output port may or may not be connected to a monitor or another GPU 122.

[0024]分散レンダリングモードでの動作のために、1つのGPU(例えばGPU122(0))がスキャンアウトされた画素を別のGPU(例えばGPU122(N−1))に送るように好適に構成され、その後者のGPU(例えばGPU122(N−1))は、それ自体のディスプレイパイプラインからの内部画素およびGPU122(0)から受信した外部画素間で選択する。3つ以上のGPU122を、スレーブGPU122がその画素を中間GPU122に送るように「デイジーチェーン」式に相互接続可能であり、中間GPU122は、それ自体の内部画素およびスレーブからの外部画素間で選択して、最終のマスターGPU(すなわちモニタに接続されたGPU)が最終の選択画素をディスプレイ装置に送るまで、選択した画素を別のGPU等に転送する。   [0024] For operation in a distributed rendering mode, one GPU (eg, GPU 122 (0)) is preferably configured to send scanned out pixels to another GPU (eg, GPU 122 (N-1)). The latter GPU (eg, GPU 122 (N-1)) selects between the internal pixels from its own display pipeline and the external pixels received from GPU 122 (0). More than two GPUs 122 can be interconnected in a “daisy chain” fashion so that the slave GPU 122 sends its pixels to the intermediate GPU 122, which selects between its own internal pixels and external pixels from the slaves. Thus, the selected pixel is transferred to another GPU or the like until the final master GPU (that is, the GPU connected to the monitor) sends the final selected pixel to the display device.

[0025]いくつかの実施形態では、任意のGPU122を任意の他のGPU122のスレーブとなれるように、物理的接続を何ら変えることなくGPU122の配置設定を調整することによってGPU122を互いに相互接続可能である。例えば、GPU122は、単方向または双方向リングトポロジーで接続可能である。   [0025] In some embodiments, GPUs 122 can be interconnected with each other by adjusting the configuration settings of GPUs 122 without changing any physical connection so that any GPU 122 can be a slave of any other GPU 122. is there. For example, the GPU 122 can be connected in a unidirectional or bidirectional ring topology.

[0026]各種の分散レンダリングモードがサポート可能である。例えば、分割フレームレンダリングでは、同じ画像の異なる部分をレンダリングするために異なるGPU122が割り当てられ、交互フレームレンダリングでは、表示される一連の画像中の異なる画像に異なるGPU122が割り当てられる。本発明には、特定の分散レンダリングモードが必須ということはない。   [0026] Various distributed rendering modes can be supported. For example, in split frame rendering, different GPUs 122 are assigned to render different portions of the same image, and in alternating frame rendering, different GPUs 122 are assigned to different images in the displayed sequence of images. The invention does not require a particular distributed rendering mode.

[0027]本発明の実施形態によれば、GPU122は、「外部分散」AAモードでも動作可能である。このモードでは、GPU122の画素選択論理回路が、内部画素および外部画素の一方を選択して他方を除外するのではなくこれらを混合する。内部画素および外部画素が異なるサンプリング位置で同じ画像を表す場合には、画素混合の結果がAA解像動作(本明細書ではAAフィルタともいう)に相当する。本発明の別の実施形態によれば、1つのGPU122が、「内部分散」AAモードでも動作可能である。このモードでは、GPU122の画素選択論理回路が、同じGPU122の2つのディスプレイヘッドにより生成された画素を混合する。(外部分散モードおよび内部分散モードを含む)分散AAモードの例および関連する画素選択論理回路については後述する。   [0027] According to embodiments of the present invention, GPU 122 is also operable in "externally distributed" AA mode. In this mode, the pixel selection logic of the GPU 122 selects one of the internal and external pixels and mixes them instead of excluding the other. When the internal pixel and the external pixel represent the same image at different sampling positions, the result of pixel mixing corresponds to an AA resolution operation (also referred to as an AA filter in this specification). According to another embodiment of the invention, one GPU 122 can also operate in “internally distributed” AA mode. In this mode, the pixel selection logic of the GPU 122 mixes the pixels generated by two display heads of the same GPU 122. Examples of distributed AA modes (including external and internal distribution modes) and associated pixel selection logic are described below.

[0028]いくつかの実施形態では、GPU122のいくつかまたは全てを、複数のGPU122のうち異なるものが異なるディスプレイ装置用の画像をレンダリングする「独立レンダリング」モードでも動作可能とすることができる。独立レンダリングモードで異なるGPU122によってレンダリングされた画像を互いに関連させてもさせなくてもよい。当然のことながら、GPU122は、上記または他のモードのいずれでも動作するように設定可能である。   [0028] In some embodiments, some or all of the GPUs 122 may be operable in an "independent rendering" mode in which different ones of the plurality of GPUs 122 render images for different display devices. Images rendered by different GPUs 122 in independent rendering mode may or may not be related to each other. Of course, the GPU 122 can be configured to operate in any of the above or other modes.

[0029]CPU102は、システム100のマスタープロセッサとして動作し、他のシステムコンポーネントの動作を制御および調整する。特に、CPU102は、GPU122の動作を制御するコマンドを発する。いくつかの実施形態では、CPU102はGPU122用のコマンドストリームをコマンドバッファに書き込むが、これはシステムメモリ104、グラフィックスメモリ124、またはCPU102およびGPU122の両方にアクセス可能な別の記憶場所とすることができる。GPU122は、コマンドバッファからコマンドストリームを読み出し、CPU102の動作と非同期でコマンドを実行する。コマンドは、画像を生成するための従来のレンダリングコマンドと、CPU102上で実行するアプリケーションがGPU122の画像生成に関連しないようなデータ処理のための処理能力を活用できるようにする汎用コンピュータコマンドとを含むことができる。   [0029] The CPU 102 operates as a master processor of the system 100 and controls and coordinates the operation of other system components. In particular, the CPU 102 issues a command for controlling the operation of the GPU 122. In some embodiments, CPU 102 writes a command stream for GPU 122 to a command buffer, which may be system memory 104, graphics memory 124, or another storage location accessible to both CPU 102 and GPU 122. it can. The GPU 122 reads the command stream from the command buffer and executes the command asynchronously with the operation of the CPU 102. The commands include conventional rendering commands for generating images and general-purpose computer commands that allow applications running on the CPU 102 to take advantage of processing capabilities for data processing that are not related to GPU 122 image generation. be able to.

[0030]本明細書に示すシステムは例示的であって、変更および修正が可能であることが理解されよう。ブリッジの数および配列を含む相互接続トポロジーは、所望のとおりに修正可能である。例えば、いくつかの実施形態では、システムメモリ104がブリッジを介するのではなく直接CPU102に接続され、他のデバイスがメモリブリッジ105およびCPU102を介してシステムメモリ104と通信する。他の代替的なトポロジーでは、グラフィックスサブシステム112が、メモリブリッジ105ではなくI/Oブリッジ107に接続される。また他の実施形態では、I/Oブリッジ107およびメモリブリッジ105を1つのチップ内に集積することもできる。本明細書で示す特定のコンポーネントは任意であって、例えば、任意の数のアドインカードまたは周辺デバイスをサポートすることもできる。いくつかの実施形態では、スイッチ116をなくし、ネットワークアダプタ118およびアドインカード120、121が直接I/Oブリッジ107に接続する。   [0030] It will be appreciated that the system shown herein is illustrative and that changes and modifications are possible. The interconnect topology, including the number and arrangement of bridges, can be modified as desired. For example, in some embodiments, system memory 104 is connected directly to CPU 102 rather than via a bridge, and other devices communicate with system memory 104 via memory bridge 105 and CPU 102. In other alternative topologies, the graphics subsystem 112 is connected to the I / O bridge 107 instead of the memory bridge 105. In another embodiment, the I / O bridge 107 and the memory bridge 105 can be integrated in one chip. The particular components shown herein are optional, and may support any number of add-in cards or peripheral devices, for example. In some embodiments, switch 116 is eliminated and network adapter 118 and add-in cards 120, 121 connect directly to I / O bridge 107.

[0031]システム100の他の部分へのGPU122の接続も変更することができる。いくつかの実施形態では、グラフィックスシステム112が、システム100の拡張スロットに挿入可能な一又は複数の拡張またはアドインカードとして実施される。他の実施形態では、GPUがメモリブリッジ105またはI/Oブリッジ107等のバスブリッジとともに1つのチップ上に集積される。   [0031] The connection of the GPU 122 to other parts of the system 100 may also be changed. In some embodiments, graphics system 112 is implemented as one or more expansion or add-in cards that can be inserted into expansion slots of system 100. In other embodiments, the GPU is integrated on a single chip with a bus bridge such as the memory bridge 105 or I / O bridge 107.

[0032]各GPUには、任意の量のローカルグラフィックスメモリを設けることができ(ローカルメモリ無しの状況を含む)、ローカルメモリとシステムメモリを任意の組み合わせで用いることができる。例えば、統合メモリアーキテクチャ(UMA)実施形態では、専用グラフィックスメモリデバイスは設けないが、GPUのいくつかまたは全てがシステムメモリを専用またはほとんど専用で用いる。UMA実施形態では、GPUをバスブリッジチップに集積するか、またはGPUをブリッジチップおよびシステムメモリに接続する高速バス(例えばPCI−E)を持った個別チップとして設けることができる。   [0032] Each GPU can be provided with any amount of local graphics memory (including situations without local memory), and local memory and system memory can be used in any combination. For example, in a unified memory architecture (UMA) embodiment, no dedicated graphics memory device is provided, but some or all of the GPUs use system memory exclusively or almost exclusively. In UMA embodiments, the GPU can be integrated into a bus bridge chip, or it can be provided as a separate chip with a high speed bus (eg, PCI-E) that connects the GPU to the bridge chip and system memory.

[0033]加えて、本発明の態様を具現化するGPUは、汎用コンピュータシステム、ビデオゲームコンソールおよび他の特殊用途コンピュータシステム、DVDプレーヤー、携帯電話または携帯情報端末等のハンドヘルドデバイス等の各種デバイスに組み込むことができる。[複数のディスプレイヘッドを備えたGPU]   [0033] In addition, GPUs embodying aspects of the present invention may be used in various devices such as general purpose computer systems, video game consoles and other special purpose computer systems, handheld devices such as DVD players, mobile phones or personal digital assistants. Can be incorporated. [GPU with multiple display heads]

[0034]図2は、本発明の実施に使用可能なGPU122内の画素出力パスのブロック図である。マルチGPUグラフィックスシステムが本発明の実施形態には必要ない場合もあるが、GPU122は、このようなシステムで使用可能なように好適に構成されている。   [0034] FIG. 2 is a block diagram of a pixel output path within GPU 122 that can be used to implement the present invention. Although a multi-GPU graphics system may not be required for embodiments of the present invention, GPU 122 is preferably configured for use in such a system.

[0035]特に、図2に示すように、GPU122は、メモリインターフェース204に結合されたディスプレイ(またはスキャンアウト)パイプライン202を含んでいる。ディスプレイパイプライン202は、ディスプレイヘッド206a(「ヘッドA」)およびディスプレイヘッド206b(「ヘッドB」)にも結合されている。GPU122は、デジタル出力ポート210、211およびアナログ出力ポート212、213を含む複数の出力ポート210〜213を有する。GPU122は、別のGPUまたは別の外部デジタルデバイスとの通信を含む様々な目的用に設定可能な2つの多目的入力/出力(MIO)ポート214a(「MIOA」)および214b(「MIOB」)も有している。ディスプレイヘッド206aおよび206bは、クロスバー220を介してそれぞれ出力ポート210〜213およびMIOポート214a、214bに接続されている。   In particular, as shown in FIG. 2, GPU 122 includes a display (or scan-out) pipeline 202 coupled to memory interface 204. Display pipeline 202 is also coupled to display head 206a ("Head A") and display head 206b ("Head B"). The GPU 122 has a plurality of output ports 210 to 213 including digital output ports 210 and 211 and analog output ports 212 and 213. The GPU 122 also has two multipurpose input / output (MIO) ports 214a ("MIOA") and 214b ("MIOB") that can be configured for a variety of purposes, including communication with another GPU or another external digital device. is doing. The display heads 206a and 206b are connected to the output ports 210 to 213 and the MIO ports 214a and 214b via the crossbar 220, respectively.

[0036]メモリインターフェース204は、GPU122により生成される画素データを記憶するメモリ(図2には図示せず)、例えば図1のグラフィックスメモリ124に結合されている。ディスプレイパイプライン202は、メモリインターフェース204と通信して記憶された画素データにアクセスする。ディスプレイパイプライン202は、画素データをディスプレイヘッド206a、206bのいずれかまたは両方に送る。いくつかの実施形態では、ディスプレイパイプライン202がディスプレイヘッド206a、206bに送る前に画素データに各種の処理動作を施すが、ディスプレイヘッド206aに送られる画素データは、ディスプレイヘッド206b宛の画素データとは異なって処理されてもされなくてもよい。加えて、処理およびディスプレイヘッド206aへの送達用のディスプレイパイプライン202に提供される画素データは、処理およびディスプレイヘッド206bへの送達用のディスプレイパイプライン202に提供される画素データと同じでも異なってもよい。本発明には、ディスプレイパイプライン202およびメモリインターフェース204の特定の構成が必須ということはなく、詳細な説明は省略する。   [0036] The memory interface 204 is coupled to a memory (not shown in FIG. 2) that stores pixel data generated by the GPU 122, such as the graphics memory 124 of FIG. Display pipeline 202 communicates with memory interface 204 to access stored pixel data. The display pipeline 202 sends pixel data to either or both display heads 206a, 206b. In some embodiments, the display pipeline 202 performs various processing operations on the pixel data before sending it to the display heads 206a, 206b. The pixel data that is sent to the display head 206a includes pixel data addressed to the display head 206b and May or may not be treated differently. In addition, the pixel data provided to the display pipeline 202 for processing and delivery to the display head 206a is the same or different from the pixel data provided to the display pipeline 202 for processing and delivery to the display head 206b. Also good. In the present invention, specific configurations of the display pipeline 202 and the memory interface 204 are not essential, and a detailed description thereof will be omitted.

[0037]デジタル出力ポート210、211は、概して従来の設計のものとしてよく、画素データを修正してデジタル出力標準に準拠する回路を含むことができる。例えば、一実施形態では、ポート210、211のそれぞれが標準DVI(Digital Video Interface)コネクタ用のTMDS(Transition Minimized Differential Signaling)を実施する。同様に、アナログ出力ポート212、213は、概して従来の設計のものとしてよく、例えば、多数の例が当分野で既知のあらゆるアナログビデオ標準に準拠するデジタル/アナログコンバータを含むことができる。本発明には、特定のデジタルまたはアナログ出力ポートの有無、その数または性質が必須ということはないことが理解されよう。   [0037] The digital output ports 210, 211 may generally be of conventional design and may include circuitry that modifies pixel data to comply with a digital output standard. For example, in one embodiment, each of the ports 210 and 211 implements TMDS (Transition Minimized Differential Signaling) for a standard DVI (Digital Video Interface) connector. Similarly, the analog output ports 212, 213 may generally be of conventional design and may include, for example, digital to analog converters, many examples compliant with any analog video standard known in the art. It will be appreciated that the present invention does not require the presence, number or nature of a particular digital or analog output port.

[0038]MIOAポート214aおよびMIOBポート214bは、ディスプレイヘッド206a、206bのいずれかにより生成された画素データをGPU122の出力ライン上へと送り出す出力ポートとして設定可能である。MIOAポート214aおよびMIOBポート214bは、ディスプレイヘッドA206aまたはディスプレイヘッドB206bに外部画素データを送る入力ポートとしても設定可能である。いくつかの実施形態では、MIOAポート214aおよびMIOBポート214bをそれぞれ個別に入力ポートまたは出力ポートのいずれかとして設定可能である。MIOAポート214aおよびMIOBポート214bの設定は、システム起動中に決定するか、またはシステム動作中の様々な時点で動的に修正が可能である。例えば、各MIOポートは、ポート設定を特定する値を記憶する制御レジスターを含むことができ、新たな値を所望のとおりシステム起動時または他の時点でレジスターに書き込むことができる。   [0038] The MIOA port 214a and the MIOB port 214b can be set as output ports that send pixel data generated by either of the display heads 206a, 206b onto the output line of the GPU 122. The MIOA port 214a and the MIOB port 214b can also be set as input ports for sending external pixel data to the display head A 206a or the display head B 206b. In some embodiments, the MIOA port 214a and the MIOB port 214b can each be individually configured as either an input port or an output port. The settings of the MIOA port 214a and MIOB port 214b can be determined during system startup or dynamically modified at various times during system operation. For example, each MIO port can include a control register that stores a value that specifies the port setting, and a new value can be written to the register at system startup or at other times as desired.

[0039]ヘッドA206aおよびヘッドB206bは、クロスバー220を介してそれぞれMIOポート214a、214bだけでなく出力ポート210〜213に結合される。この実施形態では、クロスバー220が、ヘッドA206aからポート210〜213、214aまたは214bのいずれか1つへの任意の接続をサポートするように、また同時にヘッドB206bから現状ではクロスバー220によりヘッドA206aに接続されていないポート210〜213、214aまたは214bのいずれか1つへの任意の接続をサポートするように設定可能である。例えば、GPU122が、ヘッド206a、206bから2つの異なるモニタに(例えば、デジタル出力ポート210、211および/またはアナログ出力ポート212、213のいずれか2つを介して)同時に画素データを送り出すことが可能である。あるいは、GPU122が、ポート210〜213の1つを介してモニタに、またMIOAポート214aまたはMIOBポート214bを介して別のGPUに同時に画素データを送り出すことが可能である。例によっては、ディスプレイヘッド206a、206bの一方または両方をアイドル状態、すなわちどの出力ポートにも画素を送っていない状態にすることもできる。   [0039] Head A 206a and Head B 206b are coupled to output ports 210-213 as well as MIO ports 214a, 214b, respectively, via crossbar 220. In this embodiment, crossbar 220 supports any connection from head A 206a to any one of ports 210-213, 214a or 214b, and at the same time from head B 206b by crossbar 220 to head A 206a. Can be configured to support any connection to any one of ports 210-213, 214a, or 214b that are not connected to. For example, GPU 122 can send pixel data simultaneously from heads 206a, 206b to two different monitors (eg, via any two of digital output ports 210, 211 and / or analog output ports 212, 213). It is. Alternatively, the GPU 122 can send pixel data simultaneously to a monitor via one of the ports 210-213 and to another GPU via the MIOA port 214a or MIOB port 214b. In some examples, one or both of the display heads 206a, 206b can be idle, i.e., not sending pixels to any output port.

[0040]MIOポート214a、214bは、画素データをGPU122の別の1つから受信し、受信した画素データをディスプレイヘッド206a、206b内へと通信するようにも設定可能である。各GPU122は、各ディスプレイヘッド206a、206b内にMIOポート214a、214bの一方から受信した「外部」画素、それ自体のディスプレイパイプライン202から受信した「内部」画素、または内部画素および外部画素の組み合わせを選択するための画素選択論理回路(後述する)も有している。   [0040] The MIO ports 214a, 214b can also be configured to receive pixel data from another one of the GPUs 122 and communicate the received pixel data into the display heads 206a, 206b. Each GPU 122 has an “external” pixel received from one of the MIO ports 214a, 214b in each display head 206a, 206b, an “internal” pixel received from its own display pipeline 202, or a combination of internal and external pixels. A pixel selection logic circuit (to be described later).

[0041]いくつかの実施形態では、クロスバー220がシステム起動で設定され、また他の実施形態では、システム動作中に接続を変更可能なようにクロスバー220が動的に設定可能である。クロスバー220は、MIOポート214a、214bの一方で受信された入力された画素データをディスプレイヘッド206a、206bのいずれかに結合するように設定可能とすることもできる。   [0041] In some embodiments, the crossbar 220 is configured at system startup, and in other embodiments, the crossbar 220 can be dynamically configured so that connections can be changed during system operation. Crossbar 220 may also be configurable to couple input pixel data received on one of MIO ports 214a, 214b to either display head 206a, 206b.

[0042]図3Aは、本発明の実施形態によるGPU122のディスプレイヘッド206a内の画素選択論理回路300のブロック図である。当然のことながら、ディスプレイヘッド206bは類似の設計の画素選択論理回路を有することができる。いくつかの実施形態では、GPU122の各ディスプレイヘッド206a、206bがそれ自体の画素選択論理回路300を有している。   [0042] FIG. 3A is a block diagram of a pixel selection logic circuit 300 in the display head 206a of GPU 122 according to an embodiment of the present invention. Of course, the display head 206b can have a similar design of pixel selection logic. In some embodiments, each display head 206 a, 206 b of GPU 122 has its own pixel selection logic 300.

[0043]画素選択論理回路300は、第1のパス302上で図2のディスプレイパイプライン202から内部画素を受信する。図2のMIOAポート214a(または、いくつかの実施形態ではMIOBポート214b)が入力ポートとして設定される場合には、画素選択論理回路300は第2のパス304上で外部画素も受信する。   [0043] The pixel selection logic 300 receives internal pixels from the display pipeline 202 of FIG. If the MIOA port 214a of FIG. 2 (or MIOB port 214b in some embodiments) is configured as an input port, the pixel selection logic 300 also receives external pixels on the second path 304.

[0044]外部画素および内部画素は、それぞれ画素合成回路306へと伝播され、これが外部画素および内部画素を混合して混合画素を生成する。画素合成回路306は、例えば従来の演算論理回路を用いて実施することができる。一実施形態では、画素合成回路306が、内部画素を多くの候補除数(例えば1、2、4等)の1つにより除する第1の除算回路308と、(除算後の)内部画素を外部画素に加算して合計画素を生成する加算回路310と、制御信号(PSEL1)に応答して内部画素および合計画素間で選択をする選択回路312と、選択された画素を多くの候補除数(例えば1、2等)の1つにより除する第2の除算回路314とを含んでおり、パス316上に混合画素としての結果を与える。   [0044] The external and internal pixels are each propagated to the pixel composition circuit 306, which mixes the external and internal pixels to produce a mixed pixel. The pixel synthesis circuit 306 can be implemented using, for example, a conventional arithmetic logic circuit. In one embodiment, the pixel synthesis circuit 306 includes a first divider circuit 308 that divides the internal pixel by one of a number of candidate divisors (eg, 1, 2, 4, etc.) and the internal pixel (after division) as an external An addition circuit 310 that adds to the pixels to generate a total pixel, a selection circuit 312 that selects between the internal pixels and the total pixels in response to a control signal (PSEL1), and a number of candidate divisors (for example, And a second divider circuit 314 that divides by one of the two, and gives the result as a mixed pixel on path 316.

[0045]パス304上の外部画素およびパス316上の混合画素は、選択回路318(マルチプレクサ等)に渡される。制御信号(PSEL2)に応答して、選択回路318が図2のクロスバー220に接続する出力パス320に送るために内部画素、混合画素、または外部画素のいずれかを選択する。   [0045] External pixels on path 304 and mixed pixels on path 316 are passed to selection circuit 318 (such as a multiplexer). In response to the control signal (PSEL2), the selection circuit 318 selects either the internal pixel, the mixed pixel, or the external pixel to send to the output path 320 connected to the crossbar 220 of FIG.

[0046]PSEL1およびPSEL2信号は、ディスプレイヘッド206a中の制御論理回路(明示せず)により好適に生成される。いくつかの実施形態では、概して従来の設計のものとしてよいこの制御論理回路が、図1のGPU102上で実行するグラフィックスドライバプログラムにより生成される制御情報に応答する。例えば、除算回路308、314用の候補除数間で選択して特定用途向けの適当な加重平均を生成することによって、類似の制御情報を画素合成器308の動作を制御するためにも用いることができる。本発明の教示を利用可能な当業者であれば、PSELおよび画素合成器制御信号を生成するのに適した制御論理回路を実施可能なので、制御論理回路の詳細な説明は省略する。   [0046] The PSEL1 and PSEL2 signals are preferably generated by control logic (not explicitly shown) in the display head 206a. In some embodiments, this control logic, which may be of a generally conventional design, is responsive to control information generated by a graphics driver program executing on the GPU 102 of FIG. For example, similar control information can also be used to control the operation of the pixel synthesizer 308 by selecting between candidate divisors for the divider circuits 308, 314 to generate a suitable weighted average for a particular application. it can. Those skilled in the art who can utilize the teachings of the present invention can implement control logic suitable for generating PSEL and pixel synthesizer control signals, and thus a detailed description of the control logic is omitted.

[0047]図3Bは、本発明の代替的な実施形態による画素選択論理回路350のブロック図である。画素選択論理回路350は、図3Aの画素選択論理回路300と概ね同様であるが、ガンマ補正画素を混合する能力を持って好適に設計されている。画素選択論理回路350は、第1のパス352上で図2のディスプレイパイプライン202から内部画素を受信する。内部画素は画素合成器358へと伝播される。MIOAポート214aが入力ポートとして設定される場合には、画素選択論理回路350は第2のパス354上で外部画素も受信する。この外部画素も画素合成器358へと伝播される。   [0047] FIG. 3B is a block diagram of pixel selection logic 350 according to an alternative embodiment of the present invention. The pixel selection logic circuit 350 is generally similar to the pixel selection logic circuit 300 of FIG. 3A, but is suitably designed with the ability to mix gamma correction pixels. Pixel selection logic 350 receives internal pixels from display pipeline 202 of FIG. 2 on first path 352. Internal pixels are propagated to the pixel synthesizer 358. If the MIOA port 214a is set as an input port, the pixel selection logic circuit 350 also receives external pixels on the second path 354. This external pixel is also propagated to the pixel synthesizer 358.

[0048]画素合成器358は、内部画素および外部画素を混合し、結果として単一のパス360上に混合画素を供給する。画素合成器358は、図3Aの除算回路306に類似の除算回路および/または図3Aの加算回路308に類似の加算器を含むことができる。加えて(または代わりに)、画素合成器358は、パス352および354上で受信したガンマ補正画素を混合する演算論理回路を含むこともできる。当分野で既知のように、ガンマ補正は、例えば画素値Pを定数γについてPγに変換することによりディスプレイ装置で線形強度応答を生成する非線形スケールに合わせて画素値を調整する。(典型的なディスプレイ装置については、定数γがおよそ2.0〜2.5である。)このような一実施形態では、γ≒2.2についてγ補正出力画素P γが、以下の式を用いて算出可能である。
γ=(4P γ+4P γ+|P γ-P γ|)/4 (式1)
[0048] The pixel synthesizer 358 mixes the internal and external pixels, resulting in a mixed pixel on a single pass 360. Pixel synthesizer 358 may include a divider circuit similar to divider circuit 306 in FIG. 3A and / or an adder similar to adder circuit 308 in FIG. 3A. In addition (or alternatively), pixel synthesizer 358 may also include arithmetic logic that mixes the gamma correction pixels received on paths 352 and 354. As is known in the art, gamma correction adjusts pixel values to a non-linear scale that produces a linear intensity response at the display device, for example, by converting pixel value P to P γ for a constant γ. (For a typical display device, the constant γ is approximately 2.0 to 2.5.) In such an embodiment, for γ≈2.2, the γ corrected output pixel P o γ is It is possible to calculate using
P o γ = (4P i γ + 4P e γ + | P i γ -P e γ |) / 4

[0049]ここで、P γおよび4P γは、パス352および354上に供給されるガンマ補正画素を表す。当業者であれば、厳密な結果に必要な計算ではなく簡単なハードウェアを用いて式1が許容可能な近似を与えることが分かるだろう。(例えば、4による乗算および除算はビットシフトとして実施可能である)また、他の近似で代用可能なことも理解されよう。 [0049] where P i γ and 4P e γ represent the gamma correction pixels provided on paths 352 and 354. One skilled in the art will recognize that Equation 1 provides an acceptable approximation using simple hardware rather than the calculations required for exact results. (For example, multiplication and division by 4 can be implemented as a bit shift.) It will also be appreciated that other approximations can be substituted.

[0050]図3Bを再び参照すると、選択マルチプレクサ362が、パス352上で内部画素を、パス354上で外部画素を、及び、パス360上で混合画素を受信する。画素選択信号(PSEL)に応答して、選択マルチプレクサ362は、図2のクロスバー220に接続する出力パス364へ送るためにこれらの候補画素の1つを選択する。出力パス364は、第2の除算回路366を含むことができるが、これは図3Aの除算回路314と同様であってもよい。代替的な実施形態では、図3Aに示すものと同様の2つの選択マルチプレクサを出力画素の選択に用いるが、除算回路366を第2の選択マルチプレクサ前方に配置してもよい。他の選択回路構成も用いることができる。   [0050] Referring back to FIG. 3B, the selection multiplexer 362 receives internal pixels on path 352, external pixels on path 354, and mixed pixels on path 360. In response to the pixel selection signal (PSEL), the selection multiplexer 362 selects one of these candidate pixels for transmission to the output path 364 that connects to the crossbar 220 of FIG. The output path 364 can include a second divider circuit 366, which may be similar to the divider circuit 314 of FIG. 3A. In an alternative embodiment, two selection multiplexers similar to those shown in FIG. 3A are used for output pixel selection, but a divider circuit 366 may be placed in front of the second selection multiplexer. Other selection circuit configurations can also be used.

[0051]いくつかの実施形態では、画素合成器350は、画素がガンマ補正されない場合には簡単な加算を用いて、ガンマ補正画素および非ガンマ補正(線形)画素のいずれかに動作するように設定可能である。この設定は、起動動作中(システム起動時)にグラフィックスドライバにより有利に行われる。ガンマ補正フィルタが必要ないのは当然であるが、いくつかの実施形態では最終の画素選択後に任意のガンマ補正を適用することができる。[複数のGPUを用いた分散アンチエイリアシング]   [0051] In some embodiments, the pixel synthesizer 350 operates on either a gamma corrected pixel and a non-gamma corrected (linear) pixel using simple addition if the pixel is not gamma corrected. It can be set. This setting is advantageously performed by the graphics driver during the startup operation (system startup). Of course, no gamma correction filter is required, but in some embodiments, any gamma correction can be applied after final pixel selection. [Distributed anti-aliasing using multiple GPUs]

[0052]画素選択論理回路300または画素選択論理回路350を備えた図2のGPU122は、2つ以上のGPU122を備えたシステムでの分散アンチエイリアシング動作について好適に使用可能である。図4Aは、マスター/スレーブ読み出し構成の2つのGPU122(0)および122(1)を有するグラフィックスサブシステム400の簡略ブロック図である。(明確にするために、アクティブポートとディスプレイヘッドのみを示す。この例では、GPU1つにつきディスプレイヘッドが1つだけ用いられる。)スレーブGPU122(1)は、そのMIOAポート214a(1)が出力ポートとして設定され、マスターGPU122(0)は、そのMIOAポート214a(0)が入力ポートとして設定されている。MIOAポート214a(1)は、MIOAポート214a(0)に結合され、出力画素Po1をスレーブGPU122(1)からマスターGPU122(0)へと流す。 [0052] The GPU 122 of FIG. 2 with the pixel selection logic 300 or the pixel selection logic 350 can be suitably used for distributed anti-aliasing operations in a system with more than one GPU 122. FIG. 4A is a simplified block diagram of a graphics subsystem 400 having two GPUs 122 (0) and 122 (1) in a master / slave read configuration. (For clarity, only active ports and display heads are shown. In this example, only one display head is used per GPU.) Slave GPU 122 (1) has its MIOA port 214a (1) as its output port. The master GPU 122 (0) has its MIOA port 214a (0) set as an input port. MIOA port 214a (1) is coupled to the MIOA port 214a (0), passing the output pixel P o1 from the slave GPU 122 (1) and to the master GPU 122 (0).

[0053]スレーブGPU122(1)のヘッドA206a(1)は、スレーブGPU122(1)のディスプレイパイプライン202(1)により与えられた画素Pi1を出力画素としてMIOAポート214a(1)に転送する。スレーブGPU122(1)からの出力画素Po1は、マスターGPU122(0)のMIOAポート214a(0)により受信され、これが画素をディスプレイヘッドA206a(0)に転送する。ヘッドA206a(0)では、画素選択論理回路300(0)(図3の画素選択論理回路300の一例)が、マスターGPU122(0)のディスプレイパイプライン202(0)からの内部画素Pi0、スレーブGPU122(1)のディスプレイパイプライン202(1)由来の外部画素Po1、または、加算回路308により供給される合計(例えば、Pi0+Po1)を選択するように動作する。 [0053] The head A 206a (1) of the slave GPU 122 (1) transfers the pixel P i1 provided by the display pipeline 202 (1) of the slave GPU 122 (1) to the MIOA port 214a (1) as an output pixel. The output pixel P o1 from the slave GPU 122 (1) is received by the MIOA port 214a (0) of the master GPU 122 (0), which transfers the pixel to the display head A 206a (0). In the head A 206 a (0), the pixel selection logic circuit 300 (0) (an example of the pixel selection logic circuit 300 in FIG. 3) is connected to the internal pixel Pi 0 and the slave GPU 122 from the display pipeline 202 (0) of the master GPU 122 (0). It operates to select the external pixel P o1 derived from the display pipeline 202 (1) of (1) or the sum (eg, P i0 + P o1 ) supplied by the adder circuit 308.

[0054]マスターGPU122(0)のヘッドA206a(0)は、選択された画素(Pfinal)を出力ポート、この場合はデジタル出力ポート210(0)に送る。GPU122(0)のヘッドA206a(0)がMIOAポート214b(0)(図2Cに明示せず)に画素データを送るように設定することもでき、これを第3のGPU122のMIOポートに接続し、それで第3のGPU122がGPU122(0)をマスターとすることが理解されよう。このように、任意の数のGPU122をデイジーチェーン式に接続することができる。 [0054] Head A 206a (0) of master GPU 122 (0) sends the selected pixel (P final ) to an output port, in this case, digital output port 210 (0). The head A 206a (0) of the GPU 122 (0) can also be set to send pixel data to the MIOA port 214b (0) (not explicitly shown in FIG. 2C), which is connected to the MIO port of the third GPU 122. Thus, it will be appreciated that the third GPU 122 is mastered by GPU 122 (0). In this way, any number of GPUs 122 can be connected in a daisy chain manner.

[0055]本発明の実施形態によれば、GPU122(0)および122(1)は、外部分散アンチエイリアシング(AA)モードで用いることが可能である。このモードでは、各GPU122が、GPU122(0)によって用いられるサンプリング位置がGPU122(1)によって用いられるサンプリング位置と異なるように、表示パラメータまたはサンプリングパラメータにいくらかの変化量をもって、同じ画像をレンダリングする。例えば、若干異なる表示域または表示面の法線を2つのGPU122について画成し、2つの画像の画素境界に小さいオフセットを作り出すこともできる。あるいは、画素内のサンプリング位置が(例えばグラフィックスドライバにより)設定可能な場合には、各GPU122を同じ表示パラメータの組と各画素内の異なるサンプリング位置を用いるように設定することもできる。   [0055] According to embodiments of the present invention, GPUs 122 (0) and 122 (1) may be used in an external distributed anti-aliasing (AA) mode. In this mode, each GPU 122 renders the same image with some change in display parameters or sampling parameters such that the sampling position used by GPU 122 (0) is different from the sampling position used by GPU 122 (1). For example, a slightly different display area or display surface normal may be defined for the two GPUs 122 to create a small offset at the pixel boundary of the two images. Alternatively, if the sampling position within a pixel can be set (eg, by a graphics driver), each GPU 122 can be set to use the same set of display parameters and a different sampling position within each pixel.

[0056]分散AAモードでは、GPU122(0)のディスプレイヘッド206aで画素選択論理回路300(0)により受信された外部画素Po1および内部画素Pi0が、最終画像の同じ画素についての異なるサンプリング位置に対応する。内部画素および外部画素を平均することによって、表示解像度の2倍のアンチエイリアシングが得られる。より具体的には、選択マルチプレクサ310が加算回路308により提供される画素合計Po1+Pi0を選択するように設定されており、除算回路316が選択された画素合計を2で除するように設定されているため、最終画素がPfinal=(Po1+Pi0)/2となる。このようにして、画素選択論理回路300は2×AAフィルタを実施可能である。 [0056] In the distributed AA mode, the external pixel P o1 and the internal pixel P i0 received by the pixel selection logic circuit 300 (0) at the display head 206a of the GPU 122 (0) are different sampling positions for the same pixel of the final image. Corresponding to By averaging the internal and external pixels, anti-aliasing twice the display resolution is obtained. More specifically, the selection multiplexer 310 is set to select the pixel sum P o1 + P i0 provided by the addition circuit 308, and the division circuit 316 is set to divide the selected pixel sum by two. Therefore , the final pixel is P final = (P o1 + P i0 ) / 2. In this way, the pixel selection logic circuit 300 can implement a 2 × AA filter.

[0057]GPU122(0)および122(1)が、内部画素または外部画素の一方が他方を除外するように選択されるモードを含む他の分散レンダリングモードでも動作可能であることに留意されたい。特定の選択は、分散レンダリングモードの詳細、例えば、異なるGPU122が同じフレーム異なる部分と異なる連続的なフレームのいずれをレンダリングするかに依存することになるが、本発明とは関係ない。また、3つ以上のGPU122があれば、より高度なアンチエイリアシングを達成可能である。例えば、任意の数のGPU122をそれぞれのMIOAおよびMIOBポートを用いてデイジーチェーン式に接続可能であり、デイジーチェーン内の各GPUが、適切な重み係数を用いてそれ自体の内部画像を上流のGPUから受信する外部画像と混合可能である。   [0057] Note that GPUs 122 (0) and 122 (1) are also operable in other distributed rendering modes, including a mode in which one of the internal or external pixels is selected to exclude the other. The particular choice will depend on details of the distributed rendering mode, for example whether different GPUs 122 render different parts of the same frame or different consecutive frames, but are not relevant to the present invention. If there are three or more GPUs 122, more advanced anti-aliasing can be achieved. For example, any number of GPUs 122 can be daisy-chained using their respective MIOA and MIOB ports, and each GPU in the daisy chain uses its appropriate weighting factor to transmit its own internal image to the upstream GPU. Can be mixed with external images received from

[0058]本明細書に記載のディスプレイヘッド、画素選択論理回路、および分散AA動作は例示的なものであり、変更および修正が可能であることが理解されよう。例えば、本明細書の除算回路は、少数の離散除数による除算をサポートするものである。他の実施形態では、広範囲のアンチエイリアシングフィルタがサポートされるように、除算回路が(任意に選択された除数を含む)より多くの離散除数をサポートすることもある。また、除算回路は、本明細書に記載のものとは異なる位置に配置することができ、除算回路の数を修正することもできる。例えば、除算回路を内部画素パスに加えて、またはその代わりに外部画素パス上に配置することもできる。   [0058] It will be appreciated that the display head, pixel selection logic, and distributed AA operation described herein are exemplary and can be changed and modified. For example, the division circuit of the present specification supports division by a small number of discrete divisors. In other embodiments, the divider circuit may support more discrete divisors (including arbitrarily selected divisors) so that a wide range of anti-aliasing filters are supported. In addition, the division circuits can be arranged at positions different from those described in this specification, and the number of division circuits can be modified. For example, a divider circuit can be placed on the external pixel path in addition to or instead of the internal pixel path.

[0059]選択回路318の特定の構成を修正することもできる。当業者であれば、内部画素および外部画素の両方から得られた内部画素、外部画素および混合画素間で制御可能に選択できるあらゆる回路素子または回路素子の組み合わせを選択回路として使用可能であることが分かるであろう。   [0059] The particular configuration of the selection circuit 318 may be modified. A person skilled in the art can use any circuit element or combination of circuit elements that can be controllably selected between internal pixels, external pixels and mixed pixels obtained from both internal and external pixels as a selection circuit. You will understand.

[0060]本明細書で用いるように、「画素」は、概して画像内のある位置でサンプリングされたカラー値のあらゆる表現またはこのような値(例えば図3の加算回路308により生成されたような)の組み合わせを指す。GPUでパイプラインをレンダリングすることにより、名目上の解像度(ここで解像度は画像内の画素数を指す)で画素が生成されるが、これがディスプレイ装置の解像度と一致することもしないこともある。いくつかの実施形態では、ディスプレイパイプラインが、名目上の解像度をディスプレイ解像度に変換するために必要とされるあらゆるアップフィルタリングまたはダウンフィルタリングを行う。   [0060] As used herein, a "pixel" is generally any representation of a color value sampled at a location in an image or such value (eg, as generated by the adder circuit 308 of FIG. 3). ). By rendering the pipeline with the GPU, pixels are generated at a nominal resolution (where resolution refers to the number of pixels in the image), which may or may not match the resolution of the display device. In some embodiments, the display pipeline performs any up-filtering or down-filtering required to convert nominal resolution to display resolution.

[0061]本明細書中のMIOポートおよびディスプレイヘッドを本明細書中の「A」および「B」とするラベリングは、単に説明の利便性のためである。当然のことながら、任意のMIOポートを任意の他のMIOポートに接続可能であり、そのポートが出力ポートとして設定される場合にいずれかのディスプレイヘッドがいずれかのMIOポートを駆動可能である。加えて、いくつかのGPUが2つ超または2つ未満のMIOポートおよび/または2つ超または2つ未満のディスプレイヘッドを含むことができる。   [0061] The labeling of the MIO port and display head herein as "A" and "B" herein is for convenience of description only. Of course, any MIO port can be connected to any other MIO port, and any display head can drive any MIO port when that port is configured as an output port. In addition, some GPUs may include more than two or less than two MIO ports and / or more than two or less than two display heads.

[0062]一般に、1つのGPUに別のGPUとの画素データ通信を可能にする任意の1つのポートまたは複数のポートをI/Oポートとして用いて本発明を実施することができる。いくつかの実施形態では、上述のように、MIOポートが別のGPUと通信する以外の目的のためにも設定可能である。例えば、MIOポートは、TVエンコーダ等の各種外部デバイスと通信するように設定可能である。いくつかの実施形態では、DVO(インテル社製Digital Video Output Interface)または他のビデオ出力標準をサポート可能である。いくつかの実施形態では、グラフィックスアダプタをアセンブルする際に各MIOポートの設定を決定する。システム起動時に、アダプタがシステムにそのMIOポートの設定について通知する。他の実施形態では、MIOポートを専用入力または出力ポートを置き換えることもできる。   [0062] In general, the present invention can be implemented using any one port or multiple ports allowing one GPU to communicate pixel data with another GPU as an I / O port. In some embodiments, as described above, the MIO port can also be configured for purposes other than communicating with another GPU. For example, the MIO port can be set to communicate with various external devices such as a TV encoder. Some embodiments may support DVO (Intel Digital Video Output Interface) or other video output standards. In some embodiments, the settings for each MIO port are determined when assembling the graphics adapter. At system startup, the adapter informs the system about its MIO port settings. In other embodiments, the MIO port can be replaced with a dedicated input or output port.

[0063]I/Oポート、ディスプレイヘッド、および他のグラフィックスサブシステムのアスペクトの設定は、全てのグラフィックスプロセッサと通信するように構成されたシステム設定ユニットにより達成することができる。いくつかの実施形態では、システム設定ユニットが、マルチプロセッサグラフィックスサブシステムを含むシステムのCPU上で実行するグラフィックスドライバプログラムで実施される。ハードウェアおよび/またはソフトウェアコンポーネントのあらゆる組み合わせを含む他の任意の適当なエージェントを、システム設定ユニットとして用いることができる。[内部分散アンチエイリアシング]   [0063] Aspect settings for I / O ports, display heads, and other graphics subsystems can be accomplished by a system settings unit configured to communicate with all graphics processors. In some embodiments, the system configuration unit is implemented in a graphics driver program that runs on the CPU of a system that includes a multiprocessor graphics subsystem. Any other suitable agent including any combination of hardware and / or software components can be used as the system configuration unit. [Internally distributed anti-aliasing]

[0064]本発明の実施形態によれば、1つのGPU122の2つのディスプレイヘッド206a、206bをマスター/スレーブ形式で互いに結合することができる。この形式では、GPU122が、マスターとして動作するディスプレイヘッド(例えばディスプレイヘッドA206a)の画素選択論理回路300を用いて「内部分散」AAフィルタリングを実行可能である。   [0064] According to embodiments of the present invention, two display heads 206a, 206b of one GPU 122 can be coupled together in a master / slave fashion. In this format, the GPU 122 can perform “internally distributed” AA filtering using the pixel selection logic 300 of the display head (eg, display head A 206a) operating as a master.

[0065]図4Bは、本発明の実施形態によるマスター/スレーブ形式でディスプレイヘッド206bに接続されたディスプレイヘッド206aを示すGPU122のブロック図である。当然のことながら、図4BのGPU122は図2のGPU122と同一である。図4BではアクティブなI/Oポートのみを示しており、クロスバー220は示していない。図4Bのディスプレイパイプライン202は、2つの平行なセクションを有して示されている。画素をディスプレイヘッド206aへと送るディスプレイパイプラインA402aと、画素をディスプレイヘッド206bへと送るディスプレイパイプラインB402bである。ディスプレイパイプラインA402aおよびB402bは、それぞれ従来の設計とすることができ、それぞれ各種の画素処理動作を行うようにすることができる。ディスプレイパイプライン402aおよび402bは、所望のとおりに同じ動作を行うことも異なる動作を行うこともできる。   [0065] FIG. 4B is a block diagram of GPU 122 showing display head 206a connected to display head 206b in a master / slave format in accordance with an embodiment of the present invention. Of course, the GPU 122 of FIG. 4B is identical to the GPU 122 of FIG. In FIG. 4B, only active I / O ports are shown, and the crossbar 220 is not shown. The display pipeline 202 of FIG. 4B is shown having two parallel sections. A display pipeline A 402a that sends pixels to the display head 206a and a display pipeline B 402b that sends pixels to the display head 206b. The display pipelines A 402a and B 402b can each be a conventional design, and each can perform various pixel processing operations. Display pipelines 402a and 402b can perform the same or different operations as desired.

[0066]MIOBポート214bは、画素転送パス400を介して同じGPU122のMIOAポート214aに結合されている。画素転送パス400は、ディスプレイヘッドB206bにより生成された画素をMIOBポート214bからMIOAポート214aへ転送する。MIOAポート214aは、受信した画素をGPU122のディスプレイヘッドA206aに送る。画素転送パス400は、任意の適当な信号転送技術を用いて実施することができる。以下で例を説明する。   [0066] The MIOB port 214b is coupled to the MIOA port 214a of the same GPU 122 via the pixel transfer path 400. The pixel transfer path 400 transfers the pixels generated by the display head B 206b from the MIOB port 214b to the MIOA port 214a. The MIOA port 214 a sends the received pixel to the display head A 206 a of the GPU 122. The pixel transfer path 400 can be implemented using any suitable signal transfer technique. An example is described below.

[0067]ディスプレイヘッドA206aの観点からは、ディスプレイヘッドB206bから受信した画素は、異なるGPUから受信した画素と区別ができない。よって、例えば、ヘッドA206a由来の「内部」画素(P)、ヘッドB206b由来の「外部」画素(P)、または、画素合成回路308により画素PおよびPから作り出した混合画素のいずれか1つを出力画素として選択するようにディスプレイヘッドA206aの画素選択論理回路300が動作可能である。(画素Pが画素Pとは異なりディスプレイパイプラインA402aによりディスプレイヘッドA206aに提供されないという意味で、画素PはディスプレイヘッドA206aに対して「外部」である。) [0067] From the perspective of display head A 206a, pixels received from display head B 206b are indistinguishable from pixels received from different GPUs. Thus, for example, any of the “internal” pixel (P A ) derived from the head A 206 a, the “external” pixel (P B ) derived from the head B 206 b , or a mixed pixel created from the pixels P A and P B by the pixel synthesis circuit 308 The pixel selection logic circuit 300 of the display head A 206a is operable to select one as the output pixel. (Pixel P B is “external” to display head A 206a in the sense that pixel P B is not provided to display head A 206a by display pipeline A 402a, unlike pixel PA.)

[0068]この構成では、GPU122が、ディスプレイヘッドA206の画素選択論理回路300により混合されるサンプル値を供給する2つのディスプレイパイプライン402a、402bによる「内部分散」AAの実行に使用可能である。動作においては、GPU122のレンダリングパイプライン(明示せず)が、2つの画像について用いられるサンプリング位置が互いに異なるように、表示パラメータまたはサンプリングパラメータにいくらかの変化量をもって、同じシーンの2つの画像をレンダリングする。例えば、若干異なる表示域または表示面の法線を2つのGPU122について画成し、2つの画像の画素境界に小さいオフセットを作り出すこともできる。あるいは、画素内のサンプリング位置が(例えばグラフィックスドライバにより)設定可能な場合には、各GPU122を同じ表示パラメータの組と各画素内の異なるサンプリング位置を用いて各画像を生成することもできる。   [0068] In this configuration, the GPU 122 can be used to perform "internal dispersion" AA by two display pipelines 402a, 402b that supply sample values that are mixed by the pixel selection logic 300 of the display head A206. In operation, the rendering pipeline (not explicitly shown) of the GPU 122 renders two images of the same scene with some change in display parameters or sampling parameters so that the sampling positions used for the two images are different from each other. To do. For example, a slightly different display area or display surface normal may be defined for the two GPUs 122 to create a small offset at the pixel boundary of the two images. Alternatively, if the sampling position in the pixel can be set (for example, by a graphics driver), each GPU 122 can generate each image using the same set of display parameters and a different sampling position in each pixel.

[0069]レンダリングした画像の一方がフレームバッファ「A」404に記憶され、他方がフレームバッファ「B」406に記憶される。フレームバッファA404およびB406は、GPU122のオンチップメモリを含む任意の1つのメモリデバイスまたは複数のメモリデバイス、図1のグラフィックスメモリ124および/またはシステムメモリ104で実施可能である。この2つのフレームバッファは所望のとおりに同じメモリデバイス中にも異なるデバイス中にも配置することができる。   [0069] One of the rendered images is stored in frame buffer “A” 404 and the other is stored in frame buffer “B” 406. Frame buffers A 404 and B 406 may be implemented in any one or more memory devices, including GPU 122 on-chip memory, graphics memory 124 and / or system memory 104 of FIG. The two frame buffers can be located in the same memory device or in different devices as desired.

[0070]ディスプレイパイプラインB402bは、フレームバッファB406から画素を読み出し、各種の処理動作(概して従来の性質のものでよい)を画素に施し、得られた画素PをディスプレイヘッドB206bに転送する。ディスプレイヘッドB206bは、画素Pを選択するように動作する画素選択論理回路300を有しており、それらの画素がクロスバー220(図4に明示せず)を介してMIOBポート214bへと転送される。画素Pは、画素パス400を介して同じGPU122のMIOAポート214aへと転送され、これが画素PをディスプレイヘッドA206aに転送する。 [0070] The display pipeline B 402b reads the pixels from the frame buffer B 406, performs various processing operations (generally of conventional nature) on the pixels, and transfers the resulting pixels P B to the display head B 206b. The display head B 206b has a pixel selection logic circuit 300 that operates to select the pixel P B and these pixels are transferred to the MIOB port 214b via the crossbar 220 (not explicitly shown in FIG. 4). Is done. Pixel P B is transferred via pixel path 400 to MIOA port 214a of the same GPU 122, which transfers pixel P B to display head A 206a.

[0071]この動作と平行して、ディスプレイパイプラインA402aがフレームバッファAから画素を読み出し、画素に(概して従来の性質のものでよい)各種の処理動作を施し、得られた画素PをディスプレイヘッドA206aに転送する。ディスプレイパイプラインB402b、ディスプレイヘッドB206b、および画素パス400は、同じスクリーン画素に対応する画素値PおよびPが同時に(例えば、同じクロックサイクルで)ディスプレイヘッドA206aの画素選択論理回路300に送られるように、適切なタイミングで好適に設定される。 [0071] In parallel with this operation, the display pipeline A402a reads the pixel from the frame buffer A, pixel (generally may be of conventional nature) performs various processing operations, the pixel P A obtained display Transfer to head A 206a. Display pipeline B 402b, display head B 206b, and pixel path 400 send pixel values P A and P B corresponding to the same screen pixel to pixel selection logic 300 of display head A 206a simultaneously (eg, in the same clock cycle). Thus, it is suitably set at an appropriate timing.

[0072]画素合成回路308内では、加算回路310が画素PとPを加算し、マルチプレクサ312が合計画素を選択し、除算回路314が合計を2で除し、こうしてパス316上の混合画素が画素PおよびPの平均となる。マルチプレクサ318は、混合画素を出力画素Pfinalとして選択する。ディスプレイヘッドA206aが出力画素Pfinalをディスプレイ装置への送信のために出力ポート(例えばデジタル出力ポート210)に送る。 [0072] Within the pixel combining circuit 308, adding circuit 310 adds the pixel P A and P B, the multiplexer 312 selects the sum pixel, the division circuit 314 by dividing the total of 2, thus mixed on the path 316 pixel is the average of the pixel P a and P B. The multiplexer 318 selects the mixed pixel as the output pixel P final . Display head A 206a sends output pixel P final to an output port (eg, digital output port 210) for transmission to the display device.

[0073]GPU122のレンダリングパイプラインが各フレームを2回レンダリングするため、本明細書に記載の内部分散AAモードで動作する際のGPU122の最大フレームレートが非AAモードで動作する際の最大フレームレートよりも概して低いことに留意されたい。いくつかの実施形態では、この内部分散AAモードのフレームレートはおよそ非AAモードのフレームレートの約1/2である。リアルタイムアニメーションについては、内部分散AAモードのフレームレートが約毎秒30フレーム(以上)であれば、フレームレートの低下はアニメーションの平滑性にほとんどあるいは全く悪影響を与えない。また、非AAモードで生成される画質は、内部分散AAモードで生成される画質よりも概して低くなる。このように、内部分散AAは高画質化と引き換えにフレームレートが低下する。   [0073] Since the rendering pipeline of the GPU 122 renders each frame twice, the maximum frame rate of the GPU 122 when operating in the internally distributed AA mode described herein is the maximum frame rate when operating in the non-AA mode. Note that it is generally lower than. In some embodiments, the frame rate of this internally distributed AA mode is approximately half that of the non-AA mode. For real-time animation, if the frame rate of the internal distributed AA mode is about 30 frames per second (or more), a decrease in the frame rate has little or no adverse effect on the smoothness of the animation. Also, the image quality generated in the non-AA mode is generally lower than the image quality generated in the internal dispersion AA mode. In this way, the internal dispersion AA has a reduced frame rate in exchange for higher image quality.

[0074]本明細書に記載の内部分散AAモードを用いて得られるフレームレートが、単一のGPUにおいて従来のAA技術(例えば、レンダリングパイプラインおよび/またはディスプレイパイプラインでのフィルタリング)を用いて得られるフレームレートに匹敵することについても留意されたい。単一のGPUを用いた従来のAAには、単一の画像を生成するが、1画素あたり複数のサンプルを用いるGPUのレンダリングパイプラインが必要となる。1画素あたりより多くのサンプルを処理することによって、画質の改善と引き換えに非AAモードに対するフレームレートも低下する。2画像のレンダリングの方法によって、レンダリングパイプラインにおいて管理され、内部分散AAモードを用いたGPUのスループットは、従来のAAを用いるGPUのスループットに匹敵することができる。   [0074] The frame rate obtained using the internally distributed AA mode described herein can be achieved using conventional AA techniques (eg, filtering in the rendering pipeline and / or the display pipeline) on a single GPU. Note also that it is comparable to the resulting frame rate. Conventional AA using a single GPU generates a single image, but requires a GPU rendering pipeline that uses multiple samples per pixel. By processing more samples per pixel, the frame rate for the non-AA mode is also reduced in exchange for improved image quality. A two-image rendering method manages in the rendering pipeline and the throughput of the GPU using the internal distributed AA mode can be comparable to the throughput of the GPU using the conventional AA.

[0075]より高次のAAフィルタを実施することもできるが、このようなフィルタは単一パイプラインおよび内部分散アンチエイリアシング動作の組み合わせを採用することができる。一実施形態では、ディスプレイパイプラインA402aおよびディスプレイパイプラインB402bがそれぞれ内部N×AAフィルタを実施するフィルタオンスキャン(FOS)モジュール(明示せず)を含んでいる。より具体的には、レンダリングされる画像の各バージョンについて、GPU122のレンダリングパイプラインが、例えば従来のスーパーサンプリングおよび/またはマルチサンプリング技術を用いて、1画素あたりN個(例えば2、4または1より大きい任意の他の数)のサンプルを生成する。画像の一方のバージョン用のサンプルがフレームバッファA404に記憶され、画像の他方のバージョン用のサンプルがフレームバッファB406に記憶される。   [0075] Although higher order AA filters may be implemented, such filters may employ a combination of single pipeline and internal distributed anti-aliasing operations. In one embodiment, display pipeline A 402a and display pipeline B 402b each include a filter on scan (FOS) module (not explicitly shown) that implements an internal N × AA filter. More specifically, for each version of the rendered image, the GPU 122 renders a pipeline of N (e.g., 2, 4, or 1 per pixel) using, for example, conventional supersampling and / or multisampling techniques. Generate any other number of samples). Samples for one version of the image are stored in frame buffer A 404, and samples for the other version of the image are stored in frame buffer B 406.

[0076]ディスプレイパイプラインA402aは、各画素についてのN個のサンプル全てをフレームバッファAから受信する。ディスプレイパイプラインA402a内では、第1のフィルタオンスキャン(FOS)モジュール(図4には明示せず)が、N×AAフィルタを実施し、N個のサンプルを混合して1画素あたり1つのカラー値を生成する。FOSモジュールにより決定されたカラー値は、画素PとしてディスプレイヘッドA206aに(場合によってはさらなる処理の後で)供給される。 [0076] Display pipeline A 402a receives all N samples for each pixel from frame buffer A. Within the display pipeline A 402a, a first filter-on-scan (FOS) module (not explicitly shown in FIG. 4) implements an N × AA filter, mixing N samples, one color per pixel. Generate a value. The color value determined by the FOS module is supplied to the display head A 206a (possibly after further processing) as a pixel PA.

[0077]同様に、ディスプレイパイプライン402bは、各画素についてのN個のサンプル全てをフレームバッファB406から受信する。ディスプレイパイプライン402b内では、第2のFOSモジュール(これも図4には明示せず)が、N×AAフィルタを実施し、N個のサンプルを混合して1画素あたり1つのカラー値を決定する。第2のFOSモジュールにより決定されたカラー値は、画素PとしてディスプレイヘッドB206bに(場合によってはさらなる処理の後で)供給される。 [0077] Similarly, the display pipeline 402b receives all N samples for each pixel from the frame buffer B406. Within the display pipeline 402b, a second FOS module (also not explicitly shown in FIG. 4) performs an N × AA filter and mixes N samples to determine one color value per pixel. To do. The color value determined by the second FOS module is supplied to the display head B 206b (possibly after further processing) as a pixel P B.

[0078]このように、ディスプレイパイプ402aおよび402bによりそれぞれ生成された画素PおよびPは、それぞれN×オーバーサンプリング画像からのフィルタ処理画素とすることが可能である。フレームバッファA404を埋めるために用いられるサンプリング点がフレームバッファB406を埋めるために用いられるものと一致しない限り、各ディスプレイパイプ402a、402b内のN×AAフィルタを上述の内部分散AAフィルタ技術に組み合わせることによって、(2N)×AAフィルタが得られる。例えば、各ディスプレイパイプ402a、402b内のFOSモジュールが4×AAフィルタであれば、GPU122は8×AAを提供可能である。 [0078] Thus, the pixel P A and P B respectively generated by the display pipes 402a and 402b, it is possible respectively to filtered pixels from N × oversampling image. As long as the sampling points used to fill frame buffer A 404 do not match those used to fill frame buffer B 406, combine the N × AA filters in each display pipe 402a, 402b with the internal variance AA filter technique described above. (2N) × AA filter is obtained. For example, if the FOS module in each display pipe 402a, 402b is a 4 × AA filter, the GPU 122 can provide 8 × AA.

[0079]本発明には、特定のFOSモジュールまたはAAフィルタリングアルゴリズムが必須ということはなく、従来のモジュールおよびアルゴリズムを用いることができる。したがって、詳細な説明は省略する。いくつかの実施形態では、得られる最終画像が特定のディスプレイパイプラインによって処理される画像のバージョンに依存しないように、ディスプレイパイプラインA402aおよび402b内のFOSモジュールが同一のフィルタアルゴリズムに適合する。また、画像生成プロセスの初期にN×AAフィルタリングを行うことが可能である。例えば、代替的な一実施形態では、従来の技術を用いてGPU122のレンダリングパイプライン内でN×AAフィルタリングを行うこともできる。   [0079] The present invention does not require a specific FOS module or AA filtering algorithm, and conventional modules and algorithms can be used. Therefore, detailed description is omitted. In some embodiments, the FOS modules in display pipelines A 402a and 402b are adapted to the same filter algorithm so that the final image obtained does not depend on the version of the image processed by a particular display pipeline. It is also possible to perform N × AA filtering early in the image generation process. For example, in an alternative embodiment, N × AA filtering may be performed within the rendering pipeline of GPU 122 using conventional techniques.

[0080]いくつかの実施形態では、異なるフレームバッファを埋めるサンプリング点が、一致するサンプリング点がないように選択される。例えば、図5Aは画素500に適用される「グリッド」サンプリングパターンを図示している。画素は、画素内の位置501〜504(丸で示す)で4回サンプリングされる。図5Bは画素500に適用される「回転グリッド」サンプリングパターンを図示している。画素は、画素内の位置501〜504とは異なる位置511〜514(ひし形で示す)で4回サンプリングされる。   [0080] In some embodiments, sampling points that fill different frame buffers are selected such that there are no matching sampling points. For example, FIG. 5A illustrates a “grid” sampling pattern applied to pixel 500. Pixels are sampled four times at positions 501-504 (shown as circles) within the pixel. FIG. 5B illustrates a “rotating grid” sampling pattern applied to pixel 500. The pixels are sampled four times at positions 511-514 (indicated by diamonds) that are different from the positions 501-504 within the pixels.

[0081]一実施形態では、フレームバッファA404内の画素データが図5Aのグリッドサンプリングパターンを用いて生成され、フレームバッファB406内の画素データが図5Bの回転グリッドサンプリングパターンを用いて生成される。ディスプレイパイプA402aのFOSモジュールは、4つのサンプル値(501〜504)にフィルタをかけて1つの値Pとし、ディスプレイパイプB402bのFOSモジュールは、4つのサンプル値(511〜514)にフィルタをかけて1つの値Pとする。ディスプレイヘッド206aの画素選択論理回路300が上述のように値PおよびPを混合して、全部で8つのサンプルの平均に相当する最終画像を得る。この手順は、図5Cの8点パターンを用いて各画素をサンプリングする単一のレンダリングプロセスと同じアンチエイリアシングパワーをもたらす。 [0081] In one embodiment, pixel data in frame buffer A 404 is generated using the grid sampling pattern of FIG. 5A, and pixel data in frame buffer B 406 is generated using the rotated grid sampling pattern of FIG. 5B. FOS module display pipe A402a may filter the four sample values (501 to 504) as a single value P A, FOS module displays pipe B402b filters the four sample values (511 to 514) a single value P B Te. Pixel selection logic 300 in display head 206a is a mixture of values P A and P B as described above, to obtain a final image corresponding to an average of eight samples in total. This procedure results in the same anti-aliasing power as a single rendering process that samples each pixel using the 8-point pattern of FIG. 5C.

[0082]本明細書に記載の内部分散AA技術は例示的なものであって、変更および修正が可能であることが理解されよう。例えば、本明細書に記載のGPU122は、それぞれが最大限で1つの出力ポートを駆動可能な丁度2つのディスプレイヘッドを有しており、その結果、両方のディスプレイヘッドを内部分散アンチエイリアシングに用いれば、GPU122がディスプレイ装置に最大限で1つの画素ストリームを送ることができる。しかしながら、本発明の実施形態は、少なくとも2つのディスプレイヘッドならびに適当な画素選択論理回路およびI/Oポートを有する任意のGPUで実施することができる。GPUが3つ以上のディスプレイヘッドを有する場合には、GPUが内部分散AAをサポート可能であり、2つ以上のディスプレイデバイスに個々の画素ストリームを供給することも可能である。加えて、GPUが3つ以上のディスプレイヘッドを有する場合には、GPUのAAパワーを一層高めるために、GPUのディスプレイヘッドの全てをマスター/スレーブデイジーチェーン式に互いに接続できるようになる。   [0082] It will be appreciated that the internally distributed AA technique described herein is exemplary and that changes and modifications are possible. For example, the GPU 122 described herein has exactly two display heads each capable of driving a maximum of one output port, so that both display heads can be used for internal distributed anti-aliasing. , GPU 122 can send a maximum of one pixel stream to the display device. However, embodiments of the present invention can be implemented with any GPU having at least two display heads and appropriate pixel selection logic and I / O ports. If the GPU has more than two display heads, the GPU can support internally distributed AA and can supply individual pixel streams to more than one display device. In addition, if the GPU has more than two display heads, all of the GPU display heads can be connected together in a master / slave daisy chain fashion to further increase the AA power of the GPU.

[0083]また、本明細書に記載のGPU122は、いずれも内部分散AAに用いられる2つのMIOポートを有している。この実施形態では、ヘッドA206aとヘッドB206bのどちらも任意の他のGPUまたはディスプレイヘッドに対してマスターあるいはスレーブとして使用できなくなる。他の実施形態では、GPUが追加のMIOポートを有することができ、このMIOポートが1つのポートに画素の受信送信を同時に行わせ、内部分散AAと組み合わせて他のGPUとの相互接続を可能にする動作モードを有することができる。例えば、第3のMIOポートがある場合、そのポートは、外部画素を別のGPUからディスプレイヘッドB206bに送る入力ポートまたはディスプレイヘッドA206aにより生成された画素を別のGPUに送る出力ポートとして設定することもできる。このような実施形態において、他のGPUはそれ自体の内部分散AAフィルタリングを行うように設定されることもされないこともある。[画素転送パス]   [0083] Also, the GPU 122 described in this specification has two MIO ports, both of which are used for internal distributed AA. In this embodiment, neither head A 206a nor head B 206b can be used as a master or slave to any other GPU or display head. In other embodiments, the GPU can have an additional MIO port that allows one port to simultaneously receive and transmit pixels and combine with internal distributed AA to interconnect with other GPUs. Can have an operation mode. For example, if there is a third MIO port, that port should be set as an input port that sends external pixels from another GPU to display head B 206b or an output port that sends pixels generated by display head A 206a to another GPU. You can also. In such embodiments, other GPUs may or may not be configured to perform their own internal distributed AA filtering. [Pixel transfer path]

[0084]本発明の実施形態による画素転送パス実施の例について説明する。明らかなように、画素転送パスはGPUの外部にあっても内部にあってもよい。   [0084] An example of a pixel transfer path implementation according to an embodiment of the present invention will be described. As is apparent, the pixel transfer path may be external or internal to the GPU.

[0085]図6は、本発明の実施形態によるプリント基板カードとして実施され、外部画素転送パスを用いて構成されたグラフィックスアダプタ600を示す。グラフィックスアダプタ600は、PCI−Eまたは別の相互接続標準に適合するプリント回路基板(PCB)602を用いて拡張カードとして実施される。GPU122は、PCB602上に実装され、PCB602上で配線(図示せず)を介してシステムコネクタ604と電気的に結合される。システムコネクタ604は、PCI−E拡張スロット(または任意の他種の拡張スロット)に挿入可能なように設計され、GPU122と図1のシステム100等のコンピュータシステムの他の部分の間の通信を可能にする。GPU122は、PCB602上で配線(図示せず)を介してディスプレイ出力コネクタ606とも電気的に結合されている。ディスプレイ出力コネクタ606は、GPU122のデジタル出力ポート210、211またはアナログ出力ポート212、213(図2参照)の1つと好適に結合される。いくつかの実施形態では、当分野で既知のように、PCB602が、それぞれが出力ポート210〜213の異なる1つに結合された複数のディスプレイ出力コネクタ606を提供することができる。   [0085] FIG. 6 illustrates a graphics adapter 600 implemented as a printed circuit board card according to an embodiment of the invention and configured with an external pixel transfer path. Graphics adapter 600 is implemented as an expansion card using a printed circuit board (PCB) 602 that conforms to PCI-E or another interconnect standard. The GPU 122 is mounted on the PCB 602 and electrically coupled to the system connector 604 on the PCB 602 through wiring (not shown). System connector 604 is designed to be insertable into a PCI-E expansion slot (or any other type of expansion slot) to allow communication between GPU 122 and other portions of a computer system such as system 100 of FIG. To. The GPU 122 is also electrically coupled to the display output connector 606 via wiring (not shown) on the PCB 602. Display output connector 606 is preferably coupled to one of digital output ports 210, 211 or analog output ports 212, 213 (see FIG. 2) of GPU 122. In some embodiments, as is known in the art, the PCB 602 can provide multiple display output connectors 606, each coupled to a different one of the output ports 210-213.

[0086]PCB602は、同一設計が可能な2つのグラフィックスエッジコネクタ614a、614bも含んでいる。グラフィックスエッジコネクタ614aは、配線616を介してGPU122のMIOAポート214aに接続しており、グラフィックスエッジコネクタ614bは、配線618を介してGPU122のMIOBポート214bに接続している。各グラフィックスエッジコネクタ614a、614bは、取り外し可能な相互接続デバイスとの電気的かつ機械的接続用に構成されている。いくつかの実施形態では、グラフィックスエッジコネクタ614a、614bが同一の構成を有し、交換して用いることができる。   [0086] The PCB 602 also includes two graphics edge connectors 614a, 614b that can be designed identically. The graphics edge connector 614a is connected to the MIOA port 214a of the GPU 122 via a wiring 616, and the graphics edge connector 614b is connected to the MIOB port 214b of the GPU 122 via a wiring 618. Each graphics edge connector 614a, 614b is configured for electrical and mechanical connection with a removable interconnect device. In some embodiments, graphics edge connectors 614a, 614b have the same configuration and can be used interchangeably.

[0087]一実施形態のグラフィックスアダプタ600は、2つ以上のGPUが協働してレンダリングタスクの異なる部分を行う分散レンダリングシステムでの使用のために設計されている。このようなシステムは、例えば、各CPUが画像の異なる部分をレンダリングする分割フレームモード、各CPUが一連の画像中の異なる画像をレンダリングする代替フレームモード、または分散アンチエイリアシングモードで動作させることができる。これらモードのそれぞれにおいて、1つのGPU(マスター)がもう1つのGPU(スレーブ)から画素を受信し、マスターGPU内の画素選択論理回路300が上述のようにディスプレイ用の画素を選択する。異なるグラフィックスアダプタ600のGPUは、適当な相互接続デバイスを用いてそれぞれのグラフィックスエッジコネクタ614a、614bを介して有利に接続される。   [0087] The graphics adapter 600 of one embodiment is designed for use in a distributed rendering system in which two or more GPUs cooperate to perform different parts of a rendering task. Such a system can be operated, for example, in a split frame mode where each CPU renders a different portion of the image, an alternate frame mode where each CPU renders a different image in a series of images, or a distributed anti-aliasing mode. . In each of these modes, one GPU (master) receives pixels from another GPU (slave), and the pixel selection logic circuit 300 in the master GPU selects pixels for display as described above. The GPUs of different graphics adapters 600 are advantageously connected through their respective graphics edge connectors 614a, 614b using a suitable interconnect device.

[0088]本発明の実施形態では、取り外し可能な相互接続デバイス620が、図6に示すように、同じグラフィックスアダプタ600のグラフィックスエッジコネクタ614a、614bに接続可能なように構成かつ形成されている。相互接続デバイス620は、例えば、グラフィックスエッジコネクタ614a、614bを受容するレセプタクルを片側に有するリボンケーブルや長さに沿ってプリントされた配線付きPCBとすることが可能であり、2つのグラフィックスエッジコネクタ614a、614bを互いに接続する。   [0088] In an embodiment of the present invention, a removable interconnect device 620 is configured and configured to be connectable to graphics edge connectors 614a, 614b of the same graphics adapter 600, as shown in FIG. Yes. The interconnect device 620 can be, for example, a ribbon cable having a receptacle on one side for receiving graphics edge connectors 614a, 614b or a PCB with wiring printed along its length, such as two graphics edges. Connectors 614a and 614b are connected to each other.

[0089]この実施形態では、相互接続デバイス620が、グラフィックスアダプタ600によりサポートされる分散レンダリングシステムのタイミング特性を利用して画素転送パス400(図4)を構築する。より具体的には、分散レンダリング構成において、GPU122のMIOBポート214bから異なるグラフィックスアダプタ600上のGPUのMIOAポート(またはMIOBポート)への画素転送パスが、転送パスの任意のセグメントに沿って含まれ得る任意の電子コンポーネント(FIFO、ラッチ等)だけでなく、配線618および/または616の長さおよび2つのアダプタ間の相互接続デバイス由来の特性転送時間を有する。分散レンダリング動作では、スレーブGPUおよびマスターGPUからの画素がマスターGPUのディスプレイヘッドにほぼ同時に(例えば同じクロックサイクル中に)到達するように、スレーブGPUのディスプレイヘッドからマスターGPUのディスプレイヘッドへの画素の転送が有利に調整される。   [0089] In this embodiment, the interconnect device 620 builds the pixel transfer path 400 (FIG. 4) utilizing the timing characteristics of the distributed rendering system supported by the graphics adapter 600. More specifically, in a distributed rendering configuration, a pixel transfer path from the MIOB port 214b of the GPU 122 to the MIOA port (or MIOB port) of the GPU on a different graphics adapter 600 is included along any segment of the transfer path. As well as any electronic components that can be (FIFO, latches, etc.), the length of the wiring 618 and / or 616 and the characteristic transfer time from the interconnect device between the two adapters. In a distributed rendering operation, the pixels from the slave GPU display head to the master GPU display head so that the pixels from the slave GPU and master GPU reach the master GPU display head almost simultaneously (eg, during the same clock cycle). The transfer is advantageously adjusted.

[0090]相互接続デバイス620は、異なるGPUを接続する分散レンダリング相互接続デバイスとの送信時間マッチングを与え、相互接続デバイス620により提供される画素転送パスは、信号を正しいタイミングでMIOAポート214aに送る。このように、外部相互接続デバイスを用いた内部分散AAの実施には、元々分散レンダリング用に設計されたGPU122またはアダプタカード600に何ら内部修正を必要とするものではない。   [0090] The interconnect device 620 provides transmission time matching with distributed rendering interconnect devices that connect different GPUs, and the pixel transfer path provided by the interconnect device 620 sends the signal to the MIOA port 214a at the correct timing. . Thus, implementation of internal distributed AA using external interconnect devices does not require any internal modifications to GPU 122 or adapter card 600 originally designed for distributed rendering.

[0091]本明細書に記載のグラフィックスアダプタおよび相互接続デバイスは、例示的なものであって、変更および修正が可能であることが理解されよう。アダプタおよび相互接続デバイスの形状、レイアウト、および材料組成は、本明細書で示し記載したものから修正することができ、MIOポート間のデータ転送用にあらゆる通信プロトコルを実施することができる。   [0091] It will be appreciated that the graphics adapters and interconnect devices described herein are illustrative and that changes and modifications are possible. The shape, layout, and material composition of the adapters and interconnect devices can be modified from those shown and described herein, and any communication protocol can be implemented for data transfer between MIO ports.

[0092]代替的な一実施形態では、例えばパス618〜パス616を接続する配線を用いて、相互接続デバイス620をPCB602の一部として実施することもできる。この実施形態では、パス618からパス616へまたは逆方向のデータ転送を有効または無効とするように、制御デバイス(例えば取り外し可能なジャンパまたはドライバ制御スイッチ)が有利に用いられる。   [0092] In an alternative embodiment, the interconnect device 620 may be implemented as part of the PCB 602, for example using wiring connecting paths 618 to 616. In this embodiment, a control device (eg, a removable jumper or driver control switch) is advantageously used to enable or disable data transfer from path 618 to path 616 or in the reverse direction.

[0093]いくつかの実施形態では、同じGPUの2つのMIOポート間の相互接続デバイス620または他の外部接続の存在が自動的に内部分散AAを有効にするわけではないことにも留意されたい。上述のように、画素選択論理回路300の動作が内部分散AAを行うか否かを決定するが、画素選択論理回路300の動作はグラフィックスドライバを介して制御される。   [0093] Note also that in some embodiments, the presence of an interconnect device 620 or other external connection between two MIO ports of the same GPU does not automatically enable internal distributed AA. . As described above, the operation of the pixel selection logic circuit 300 determines whether or not to perform internal distribution AA, but the operation of the pixel selection logic circuit 300 is controlled via the graphics driver.

[0094]代替的な別の実施形態では、内部分散AAに用いられる画素転送パスがGPU内に構築される。図7は、本発明のこのような一実施形態によるGPU700のブロック図である。GPU700は、図4のGPU122とほぼ同様であり、同じ参照番号が対応するコンポーネントを識別するのに用いられている。GPU122とは異なり、GPU700は、ディスプレイヘッドB206bの出力パス702をディスプレイヘッドA206aの外部画素入力パス704に接続する内部画素転送パスを含んでいる。   [0094] In another alternative embodiment, the pixel transfer path used for internal distribution AA is built in the GPU. FIG. 7 is a block diagram of a GPU 700 according to one such embodiment of the invention. GPU 700 is substantially similar to GPU 122 of FIG. 4, and the same reference numerals are used to identify corresponding components. Unlike GPU 122, GPU 700 includes an internal pixel transfer path that connects output path 702 of display head B 206b to external pixel input path 704 of display head A 206a.

[0095]この実施形態では、画素転送パスが、ディスプレイヘッドB206bからの画素およびクロスバー220を介してMIOポート(例えばMIOAポート214a)の一方からのパス708上で受信した画素の間で選択する選択ユニット(例えばマルチプレクサ)706を含んでいる。選択された画素は、ディスプレイヘッドA206aの外部画素入力パス704に提供される。   [0095] In this embodiment, the pixel transfer path selects between pixels from display head B 206b and pixels received on path 708 from one of the MIO ports (eg, MIOA port 214a) via crossbar 220. A selection unit (eg, multiplexer) 706 is included. The selected pixel is provided to the external pixel input path 704 of the display head A 206a.

[0096]選択ユニット706は、制御信号(明示せず)に応答して動作する。制御信号は、GPU700が内部分散AAモードで動作している場合には選択ユニット706がパス702上の画素を選択するように、GPU700のディスプレイヘッドA206aが別のGPUに対してマスターとして動作している場合にはパス708上の画素を選択するように設定する。この制御信号は、グラフィックスドライバから発せられたコマンドに応答して生成することができ、グラフィックソフトウェアにアクセスする必要なく適切なソフトウェアインターフェースを通じて、ユーザ(またはアプリケーション開発者)が内部分散AAを有効または無効にすることを可能にする。   [0096] The selection unit 706 operates in response to a control signal (not explicitly shown). The control signal is such that when the GPU 700 is operating in the internal distributed AA mode, the display head A 206a of the GPU 700 operates as a master for another GPU so that the selection unit 706 selects a pixel on the path 702. If so, the pixel on the path 708 is set to be selected. This control signal can be generated in response to a command issued from the graphics driver, enabling the user (or application developer) to enable the internal distributed AA through an appropriate software interface without having to access the graphics software. Enable to disable.

[0097]この実施形態では、分散レンダリングモードにおいて外部GPUから画素が到着するのと同じタイミングでディスプレイヘッドB206bからの画素が選択回路706に到達するように、ディスプレイヘッドB206bから選択回路706へのパス702がFIFO、ラッチ、および他のタイミング制御デバイスを含むことができることに留意されたい。この場合、ディスプレイヘッドB206bおよびディスプレイヘッドA206aの動作タイミングは、GPUが分散レンダリングモードまたは内部分散AAモードに依存しない。   [0097] In this embodiment, the path from the display head B 206b to the selection circuit 706 so that the pixel from the display head B 206b reaches the selection circuit 706 at the same timing as the pixel arrives from the external GPU in the distributed rendering mode. Note that 702 can include FIFOs, latches, and other timing control devices. In this case, the operation timing of the display head B 206b and the display head A 206a does not depend on the GPU in the distributed rendering mode or the internal distributed AA mode.

[0098]内部画素転送パスは、GPUに修正を要するものの、GPUのI/Oポートのいずれの使用も必要としない。故に、例えば、GPU700が内部分散AAフィルタリングを実行し続ける間、GPU700のディスプレイヘッドA206aは別のGPUのディスプレイヘッドに対してスレーブ化可能であり、あるいはGPU700のディスプレイヘッドB206bは別のGPUのディスプレイヘッドに対してマスター化可能である。   [0098] Although the internal pixel transfer path requires modification to the GPU, it does not require the use of any of the GPU's I / O ports. Thus, for example, while GPU 700 continues to perform internal distributed AA filtering, GPU 700 display head A 206a can be slaved to another GPU display head, or GPU 700 display head B 206b can be another GPU display head. Can be mastered.

[0099]本明細書に記載の内部画素転送パスは例示的なものであって、変更および修正が可能であることが理解されよう。例えば、(ディスプレイヘッドA206aからディスプレイヘッドB206bへの)「逆方向」画素転送パスを示したパスに追加して設けることもできる。[他の実施形態]   [0099] It will be appreciated that the internal pixel transfer paths described herein are exemplary and can be changed and modified. For example, a “reverse” pixel transfer path (from display head A 206a to display head B 206b) may be provided in addition to the path indicated. [Other embodiments]

[0100]上述のように、本発明の実施形態は、AAフィルタ処理画像を生成するために、1つのGPUだけでなく、複数のGPUにわたって分散レンダリングに広く関連付けられた読み出し技術およびコンポーネントを用いることが可能なマルチGPUシステム用の分散アンチエイリアシング技術を提供する。適当なグラフィックスドライバインターフェースを介して、任意のグラフィックスプログラムについてプログラムそれ自体に与えられたAA(またはその欠如)に関係なく、適切に設定されたGPUのエンドユーザが内部分散AAを有効にすることを選択可能である。プログラムがAAを提供する場合、本明細書に記載の内部分散AAは、AA解像度を上げる(例えば2倍にする)ために用いることが可能である。   [0100] As noted above, embodiments of the present invention use readout techniques and components that are widely associated with distributed rendering across multiple GPUs, not just one GPU, to generate AA filtered images. To provide distributed anti-aliasing technology for multi-GPU systems. Appropriately configured GPU end-users enable internal distributed AA, regardless of the AA (or lack thereof) given to the program itself for any graphics program via the appropriate graphics driver interface You can choose that. If the program provides AA, the internally distributed AA described herein can be used to increase (eg, double) AA resolution.

[0101]本発明を特定の実施形態に関連して説明してきたが、当業者であれば多数の修正が可能であることが理解されよう。例えば、本発明はAAフィルタリングを参照して説明してきたが、本明細書に記載の単一GPUのディスプレイヘッド間または複数GPUのディスプレイヘッド間の結合を別の方法で用いることもできる。   [0101] Although the present invention has been described with reference to particular embodiments, those skilled in the art will recognize that numerous modifications are possible. For example, although the present invention has been described with reference to AA filtering, the coupling between single GPU display heads or multiple GPU display heads described herein may be used in other ways.

[0102]代替的な一実施形態では、ステレオアナグリフを生成するために分散フィルタリングを用いることが可能である。当分野で既知のように、ステレオアナグリフはシーンの左目視野および右目視野を重ねて1つの画像を作り出す。通常、左目画素と右目画素には異なるカラーフィルタが適用されるが、例えば、右目画素を赤色パスフィルタでフィルタ処理し、左目画素を青/緑色パスフィルタを用いてフィルタ処理することができる。左目視野および右目視野間の視野域または視点オフセットにより、シーンの同じ点に対応する左目画素と右目画素はアナグリフの異なる位置にくる。故に、裸眼には、アナグリフが歪んだ色の二重画像に見える。画像を正確に観るには、観察者が、右目画素用に用いた色をフィルタで除外する左レンズと左目画素用に用いた色をフィルタで除外する左レンズの特殊なメガネを着用する。   [0102] In an alternative embodiment, distributed filtering can be used to generate stereo anaglyphs. As is known in the art, stereo anaglyphs superimpose the left and right eye views of a scene to create a single image. Normally, different color filters are applied to the left eye pixel and the right eye pixel. For example, the right eye pixel can be filtered with a red pass filter, and the left eye pixel can be filtered with a blue / green pass filter. Due to the field of view or viewpoint offset between the left and right eye fields, the left and right eye pixels corresponding to the same point in the scene are at different positions in the anaglyph. Therefore, the naked eye can see an anaglyph double-distorted color image. In order to view the image accurately, the observer wears special glasses for the left lens that excludes the color used for the right eye pixel with a filter and the left lens that excludes the color used for the left eye pixel with a filter.

[0103]図4Aを参照すると、シーンの右目視野を生成するためにGPU122(0)のレンダリングパイプライン(図示せず)を用い、シーンの左目視野を生成するためにGPU122(1)のレンダリングパイプライン(図示せず)を用いることができる。右目および左目視野用のレンダリングパラメータを決定するのに既知の技術を用いることができる。   [0103] Referring to FIG. 4A, the rendering pipeline (not shown) of GPU 122 (0) is used to generate the right eye view of the scene, and the rendering pipe of GPU 122 (1) is used to generate the left eye view of the scene. A line (not shown) can be used. Known techniques can be used to determine the rendering parameters for the right and left eye views.

[0104]右目画素Pi1および左目画素Pi0は、GPU122(0)およびGPU122(1)のそれぞれのレンダリングパイプラインまたはそれぞれのディスプレイパイプライン202(0)および202(1)のいずれかにおいて、有利にカラーフィルタ処理される。一実施形態では、異なる赤、緑および青色成分を用いて画素色が特定される。右目画素は、例えば赤色成分をゼロまで減らし、緑および青色成分を不変のままにすることによりフィルタ処理可能である。同様に、左目画素は、緑および青色成分をゼロまで減らし、赤色成分を不変のままにすることによりフィルタ処理可能である。 [0104] The right eye pixel P i1 and the left eye pixel P i0 are advantageous in either the rendering pipeline of GPU 122 (0) and GPU 122 (1) or in the respective display pipelines 202 (0) and 202 (1). Color filter processing. In one embodiment, pixel colors are identified using different red, green and blue components. The right eye pixel can be filtered, for example, by reducing the red component to zero and leaving the green and blue components unchanged. Similarly, the left eye pixel can be filtered by reducing the green and blue components to zero and leaving the red component unchanged.

[0105]右目画素Pi1は、GPU122(1)のディスプレイヘッドA206aに送られる。ディスプレイヘッド206(a)は、画素Pi1をMIOAポート214a(1)に転送し、これが画素をPo1としてGPU122(0)のMIOAポート214a(0)へと送る。ディスプレイヘッド206a(0)は、このようにして右目画素を外部画素として受信する。 [0105] The right-eye pixel P i1 is sent to the display head A 206a of the GPU 122 (1). The display head 206 (a) transfers the pixel P i1 to the MIOA port 214a (1), which sends the pixel as P o1 to the MIOA port 214a (0) of the GPU 122 (0). In this way, the display head 206a (0) receives the right eye pixel as an external pixel.

[0106]左目画素Pi0は、内部画素としてディスプレイヘッド206a(0)に送られる。一般に、対応する左目画素および右目画素はシーンの異なる位置を再生するが、右目視野および左目視野を生成するのに用いられる視野域または視点オフセットによって、画素選択論理回路300により処理される対応する左目画素および右目画素がアナグリフフレーム内の同じ位置にある画素となることに留意されたい。 [0106] The left-eye pixel P i0 is sent to the display head 206a (0) as an internal pixel. In general, the corresponding left eye pixel and right eye pixel reproduce different positions in the scene, but the corresponding left eye processed by the pixel selection logic 300 depending on the field of view or viewpoint offset used to generate the right eye field and the left eye field. Note that the pixel and the right eye pixel are the pixels at the same position in the anaglyph frame.

[0107]一実施形態では、ディスプレイヘッド206a(0)が図3の画素選択論理回路300を含んでいる。アナグリフを生成するために、除算回路306および314がともに1の除数を選択するように設定される。加算回路308は、左目画素Pi0と右目画素Pi1を加算し、初期のカラーフィルタリングの結果として、左目画素の赤色成分と右目画素の青色および緑色成分を有する合計画素をパス310上に生成する。選択マルチプレクサ312がパス310から合計画素を選択し、選択マルチプレクサ316がパス315上で混合画素を出力画素として選択する。 [0107] In one embodiment, the display head 206a (0) includes the pixel selection logic 300 of FIG. To generate an anaglyph, both divider circuits 306 and 314 are set to select a divisor of one. The addition circuit 308 adds the left eye pixel P i0 and the right eye pixel P i1 , and generates a total pixel on the path 310 having the red component of the left eye pixel and the blue and green components of the right eye pixel as a result of the initial color filtering. . The selection multiplexer 312 selects the total pixels from the path 310, and the selection multiplexer 316 selects the mixed pixels as output pixels on the path 315.

[0108]他の実施形態では、画素選択論理回路300の前のカラーフィルタは用いない。例えば、選択が各色成分について独立に制御可能であるように選択マルチプレクサ312および/または316を設定可能である。このような一実施形態では、選択マルチプレクサ312がパス302から左目画素Pi0の全ての色成分を通過し、選択マルチプレクサ316が左目画素Pi0の赤色成分と右目画素Pi1の青色および緑色成分を通過する。結果はパス318上の左目画素の赤色成分と右目画素の青色および緑色成分を有する出力画素となる。 [0108] In other embodiments, the color filter in front of the pixel selection logic circuit 300 is not used. For example, the selection multiplexers 312 and / or 316 can be set such that the selection can be controlled independently for each color component. In one such embodiment, the selection multiplexer 312 passes all the color components of the left eye pixel P i0 from the path 302, and the selection multiplexer 316 passes the red component of the left eye pixel P i0 and the blue and green components of the right eye pixel P i1. pass. The result is an output pixel having a red component of the left eye pixel and a blue and green component of the right eye pixel on path 318.

[0109]当業者であれば、アナグリフレンダリングに3つ以上のGPUを使用可能であることを理解することができる。4つのGPU(例えば図4B)の実施形態では、2つのGPUを右目視野生成用に用い、2つのGPUを左目視野生成用に用いることが可能である。各視野を生成する2つのGPUは、アナグリフの画質を高めるために上述したような分散アンチエイリアシング技術を採用することが可能である。   [0109] One skilled in the art can appreciate that more than two GPUs can be used for anaglyph rendering. In an embodiment of four GPUs (eg, FIG. 4B), two GPUs can be used for right eye field generation and two GPUs can be used for left eye field generation. The two GPUs that generate each field of view can employ distributed anti-aliasing techniques as described above to enhance the image quality of anaglyphs.

[0110]ステレオアナグリフは、内部分散フィルタリングを用いてもレンダリング可能である。図4Bを参照すると、GPU122(0)のレンダリングパイプライン(図示せず)が両方の視野を生成可能であり、左目視野をフレームバッファAに、右目視野をフレームバッファBに(あるいはその反対に)記憶する。ディスプレイパイプラインB402bおよびディスプレイヘッドB206bが右目視野を画素PとしてディスプレイヘッドA206aに送り、ディスプレイパイプラインA402aが左目視野を画素PとしてディスプレイヘッドA206aに送る。ディスプレイヘッドA206aでは、画素合成器308(図3)がアナグリフを生成するように適切に画素を混合する。 [0110] Stereo anaglyphs can also be rendered using internal distributed filtering. Referring to FIG. 4B, the rendering pipeline (not shown) of GPU 122 (0) can generate both views, the left eye view into frame buffer A and the right eye view into frame buffer B (or vice versa). Remember. Display pipeline B 402b and display head B 206b send right eye field of view as pixel P B to display head A 206a, and display pipeline A 402a sends left eye field of view as pixel PA to display head A 206a. In display head A 206a, pixel combiner 308 (FIG. 3) mixes the pixels appropriately to produce an anaglyph.

[0111]フェードイン、フェードアウト、またはディゾルブ等の遷移効果を発生させるためにも分散フィルタリングを用いることが可能である。例えば、内部分散の場合、フレームバッファBはフェードアウトする画像を記憶することができ、フレームバッファAはフェードインする画像を記憶する。各フレームでは、画素合成器308が画素の相対的な重みをフレームバッファAおよびフレームバッファBから調整し、それによってフレームAからの画像が徐々に最高強度まで上がり、フレームバッファBからの画像がゼロ強度まで弱まる。(フレームバッファBの画像がベタ色領域であったら効果はフェードインとなり、フレームバッファAの画像がベタ色領域であったら効果はフェードアウトとなる。)遷移の平滑性は、一部には、画素合成器308が形成可能な画素Pおよび画素Pの異なる加重平均の数に依存するが、これは設計上の選択の問題である。外部分散フィルタリングの複数のGPUも同様の効果を達成するのに用いることが可能である。 [0111] Distributed filtering can also be used to generate transition effects such as fade-in, fade-out, or dissolve. For example, in the case of internal dispersion, the frame buffer B can store an image that fades out, and the frame buffer A stores an image that fades in. For each frame, the pixel synthesizer 308 adjusts the relative weights of the pixels from frame buffer A and frame buffer B, so that the image from frame A gradually increases to maximum intensity and the image from frame buffer B is zero. It weakens to strength. (If the image in the frame buffer B is a solid color area, the effect is fade-in, and if the image in the frame buffer A is a solid color area, the effect is fade-out.) depends on the number of different weighted average of the synthesizer 308 is capable of forming pixel P a and the pixel P B, which is a matter of design choice. Multiple GPUs with external distributed filtering can be used to achieve the same effect.

[0112]別の実施形態では、分散フィルタリングを各ディスプレイヘッドのルックアップテーブルと組み合わせて用いることにより、このような遷移効果を達成可能である。当分野で既知のように、ディスプレイヘッドは、内部画素表現をディスプレイ装置に適したカラー強度に変換するルックアップテーブルを含んでいることが多く、時には異なる値をルックアップテーブルにロードしたりリロードしたりすることが可能である。ルックアップテーブル内の値のカラー強度をあるフレームから次のフレームへと下げる(または上げる)ことによってフェードアウト(またはフェードイン)を達成可能である。故に、フレームバッファB内の画像からフレームバッファA内の画像へとディゾルブするには、従来のフェードアウトルックアップテーブルをディスプレイヘッドBに適用することも可能であり、従来のフェードインルックアップテーブルをディスプレイヘッドAに適用する。画素合成器308は、2つの画像を一定の(例えば等しい)重みで合成し、ディゾルブ効果を作り出す。   [0112] In another embodiment, such transition effects can be achieved by using distributed filtering in combination with a look-up table for each display head. As is known in the art, display heads often include a look-up table that converts the internal pixel representation to a color intensity suitable for the display device, sometimes loading and reloading different values into the look-up table. It is possible to Fade out (or fade in) can be achieved by lowering (or increasing) the color intensity of values in the lookup table from one frame to the next. Thus, to dissolve from the image in frame buffer B to the image in frame buffer A, a conventional fade-out look-up table can be applied to display head B, and the conventional fade-in look-up table is displayed. Applies to head A. The pixel synthesizer 308 synthesizes two images with a constant (eg, equal) weight to create a dissolve effect.

[0113]他の実施形態では、同じGPUのディスプレイヘッド間の画素転送が、混合とは関係ないディスプレイ特性を実施するために用いられる。例えば、ディスプレイヘッド間の画素転送は、LCDオーバードライブ(当分野では「LCDフィードフォワード」または「応答時間補正」(RTC)ともいう)機能を制御するために用いることが可能である。当分野で既知のように、LCD画面は、画素を駆動する信号が部分的には所望の新たな強度また部分的には所望の新たな強度と前の強度との差分に基づいて、フレーム毎に調整される場合に、より速く応答するようにすることが可能である。   [0113] In other embodiments, pixel transfers between display heads of the same GPU are used to implement display characteristics that are independent of mixing. For example, pixel transfer between display heads can be used to control LCD overdrive (also referred to in the art as “LCD feedforward” or “response time correction” (RTC)) functions. As is known in the art, LCD screens are based on a frame-by-frame basis where the signal driving the pixel is based in part on the desired new intensity or in part on the difference between the desired new intensity and the previous intensity. It is possible to respond faster when adjusted.

[0114]LCDオーバードライブ機能を実施するには、フレームバッファBが前の画像の画素を記憶するのに対し、フレームバッファAを新たな画像の画素を記憶するように用いることが可能である。ディスプレイヘッドBは前の画素値をディスプレイヘッドAに送り、ディスプレイヘッドAの画素合成器308は、例えば従来のLCDオーバードライブ信号を計算するための記述を用いて新たな値および前の値に基づいてオーバードライブ値を計算するように設定可能である。   [0114] To implement the LCD overdrive function, the frame buffer B can store the pixels of the previous image, whereas the frame buffer A can be used to store the pixels of the new image. Display head B sends the previous pixel value to display head A, and pixel synthesizer 308 of display head A is based on the new value and the previous value using, for example, a description for calculating a conventional LCD overdrive signal. Can be set to calculate the overdrive value.

[0115]あるGPUのディスプレイヘッド間の画素転送は、合成画像を生成するためにも用いることができる。例えば、フレームバッファBは、フレームバッファAに記憶された画像の一部に重ねられるオーバーレイ画像用の画素を含むことができる。ディスプレイヘッドBがディスプレイヘッドAにオーバーレイ画素を送り、ディスプレイヘッドAの画素選択論理回路300が、外部画素が選択されるオーバーレイ領域以外で内部画素を選択する。   [0115] Pixel transfer between display heads of a GPU can also be used to generate a composite image. For example, the frame buffer B can include pixels for an overlay image that is overlaid on a portion of the image stored in the frame buffer A. The display head B sends an overlay pixel to the display head A, and the pixel selection logic circuit 300 of the display head A selects an internal pixel outside the overlay region where the external pixel is selected.

[0116]このように、本発明を特定の実施形態に関連して説明してきたが、本発明が特許請求項の範囲内の全ての変形物および均等物を対象とするように意図されていることが理解されよう。   [0116] Thus, while the invention has been described with reference to specific embodiments, the invention is intended to cover all modifications and equivalents within the scope of the claims. It will be understood.

本発明の実施形態によるコンピュータシステムのブロック図である。1 is a block diagram of a computer system according to an embodiment of the present invention. 本発明の実施形態で使用可能なグラフィックス処理ユニット(GPU)内の画素出力パスのブロック図である。FIG. 3 is a block diagram of a pixel output path within a graphics processing unit (GPU) that can be used with embodiments of the present invention. 本発明の実施形態で使用可能なGPUのディスプレイヘッド内の画素選択論理回路のブロック図である。FIG. 3 is a block diagram of a pixel selection logic circuit in a GPU display head that can be used in embodiments of the present invention. 本発明の実施形態で使用可能なGPUのディスプレイヘッド内の画素選択論理回路のブロック図である。FIG. 3 is a block diagram of a pixel selection logic circuit in a GPU display head that can be used in embodiments of the present invention. 本発明の実施形態による2つのGPUを有するグラフィックスサブシステムのブロック図である。1 is a block diagram of a graphics subsystem having two GPUs according to an embodiment of the invention. FIG. 本発明の実施形態によるマスター/スレーブ形式で結合された2つのディスプレイヘッドを示すGPUのブロック図である。FIG. 3 is a block diagram of a GPU showing two display heads combined in a master / slave format according to an embodiment of the present invention. 本発明のいくつかの実施形態で使用可能なサンプリングパターンを示す図である。FIG. 3 illustrates a sampling pattern that can be used in some embodiments of the present invention. 本発明のいくつかの実施形態で使用可能なサンプリングパターンを示す図である。FIG. 3 illustrates a sampling pattern that can be used in some embodiments of the present invention. 本発明のいくつかの実施形態で使用可能なサンプリングパターンを示す図である。FIG. 3 illustrates a sampling pattern that can be used in some embodiments of the present invention. 本発明の実施形態によるプリント基板カードとして実施され、外部画素転送パスを用いて構成されたグラフィックスアダプタである。1 is a graphics adapter implemented as a printed circuit board card according to an embodiment of the present invention and configured using an external pixel transfer path. 本発明の実施形態による内部画素転送パスを持ったGPUのブロック図である。2 is a block diagram of a GPU having an internal pixel transfer path according to an embodiment of the present invention; FIG.

100…コンピュータシステム、102…中央演算処理装置(CPU)、104…システムメモリ、105…メモリブリッジ、106、113…バス、107…I/O(入力/出力)ブリッジ、112…グラフィックスサブシステム、110…ディスプレイ装置、114…システムディスク、122…グラフィックス処理装置(GPU)、124…グラフィックスメモリ、202、402…ディスプレイパイプライン、206a、206b…ディスプレイヘッド、210、211…デジタル出力ポート、212、213…アナログ出力ポート、214a、214b…多目的入力/出力(MIO)ポート、220…クロスバー、300、350…画素選択論理回路、302、352…第1のパス、304、354…第2のパス、306、358…画素合成回路、308…第1の除算回路、310…加算回路、312…選択回路、314、366…第2の除算回路、316、360…パス、318…選択回路、320、364…出力パス、362…選択マルチプレクサ、400…画素転送パス、404…フレームバッファA、406…フレームバッファB。

DESCRIPTION OF SYMBOLS 100 ... Computer system, 102 ... Central processing unit (CPU), 104 ... System memory, 105 ... Memory bridge, 106, 113 ... Bus, 107 ... I / O (input / output) bridge, 112 ... Graphics subsystem, DESCRIPTION OF SYMBOLS 110 ... Display apparatus, 114 ... System disk, 122 ... Graphics processing unit (GPU), 124 ... Graphics memory, 202, 402 ... Display pipeline, 206a, 206b ... Display head, 210, 211 ... Digital output port, 212 213 ... Analog output port, 214a, 214b ... Multi-purpose input / output (MIO) port, 220 ... Crossbar, 300, 350 ... Pixel selection logic, 302, 352 ... First pass, 304, 354 ... Second Path, 306, 358 Pixel synthesis circuit, 308... First division circuit, 310... Addition circuit, 312... Selection circuit, 314, 366... Second division circuit, 316, 360. 362 ... selection multiplexer, 400 ... pixel transfer path, 404 ... frame buffer A, 406 ... frame buffer B.

Claims (18)

グラフィックスプロセッサ用のディスプレイヘッドであって、
第1のグラフィックスプロセッサにより生成された、ガンマ補正された第1の画素を伝播するように構成された第1の入力パスと、
第2のグラフィックスプロセッサにより生成された、ガンマ補正された第2の画素を伝播するように構成された第2の入力パスと、
前記第1の入力パスおよび前記第2の入力パスに結合され、前記ガンマ補正された第1の画素と前記ガンマ補正された第2の画素を混合して、混合画素を生成するように構成された画素合成器と、
前記ガンマ補正された第1の画素、前記ガンマ補正された第2の画素、又は、前記混合画素の1つを出力画素として選択するように構成された選択回路と、を備える、ディスプレイヘッド。
A display head for a graphics processor,
A first input path configured to propagate a gamma corrected first pixel generated by a first graphics processor;
A second input path configured to propagate a gamma corrected second pixel generated by the second graphics processor;
Coupled to the first input path and the second input path and configured to mix the gamma corrected first pixel and the gamma corrected second pixel to generate a mixed pixel. A pixel synthesizer,
And a selection circuit configured to select one of the gamma corrected first pixel, the gamma corrected second pixel, or the mixed pixel as an output pixel.
前記ディスプレイヘッドが、除数により混合画素を除するように構成された除算回路をさらに含む、請求項1に記載のグラフィックスプロセッサ。   The graphics processor of claim 1, wherein the display head further comprises a divider circuit configured to divide the mixed pixel by a divisor. 前記除数は、1及び2を除数として含む候補除数から選択される、請求項2に記載のグラフィックスプロセッサ。   The graphics processor of claim 2, wherein the divisor is selected from candidate divisors including 1 and 2 as divisors. 前記除数は、1、2及び4を除数として含む候補除数から選択される、請求項1に記載のグラフィックスプロセッサ。   The graphics processor of claim 1, wherein the divisor is selected from candidate divisors including 1, 2, and 4 as divisors. 前記画素合成器が、前記ガンマ補正された第1の画素および前記ガンマ補正された第2の画素を加算することによって前記混合画素を生成するように構成される、請求項1に記載のグラフィックスプロセッサ。   The graphics of claim 1, wherein the pixel synthesizer is configured to generate the mixed pixel by adding the gamma corrected first pixel and the gamma corrected second pixel. Processor. 前記第1の画素及び前記第2の画素がガンマ補正画素であり、
前記画素合成器が、前記第1の画素および前記第2の画素のガンマ補正混合を計算することによって前記混合画素を生成するように構成される、請求項1に記載のグラフィックスプロセッサ。
The first pixel and the second pixel are gamma correction pixels;
The graphics processor of claim 1, wherein the pixel synthesizer is configured to generate the blended pixel by calculating a gamma correction blend of the first pixel and the second pixel.
前記ガンマ補正混合の近似は、前記ガンマ補正された第1の画素をP、前記ガンマ補正された第2の画素をP、としたときに、下記式
(4P+4P+|P−P|)/4
により計算される、請求項6に記載のグラフィックスプロセッサ。
The gamma correction approximation of mixing, the gamma-corrected first pixel P i, the gamma-corrected second pixel when P e, and the following formula (4P i + 4P e + | P i -P e |) / 4
The graphics processor of claim 6, calculated by:
前記画素合成器が、前記ガンマ補正された第1の画素と前記ガンマ補正された第2の画素との混合より前に、前記ガンマ補正された第1の画素を除数を用いて除するように構成された除算回路を含む、請求項1に記載のグラフィックスプロセッサ。   The pixel synthesizer may divide the gamma corrected first pixel using a divisor prior to mixing the gamma corrected first pixel and the gamma corrected second pixel. The graphics processor of claim 1, comprising a configured divider circuit. ガンマ補正された第1の画素を生成するように構成されたディスプレイパイプラインと、
ガンマ補正された第2の画素を外部画素の供給源から受信するように構成された入力ポートと、
ディスプレイヘッドとを備え、
前記ディスプレイヘッドは、
前記ディスプレイパイプラインに結合され、前記ディスプレイパイプラインから前記ガンマ補正された第1の画素を受信するように構成された第1の入力パスと、
前記入力ポートに結合され、前記入力ポートから前記ガンマ補正された第2の画素を受信するように構成された第2の入力パスと、
前記第1の入力パスおよび前記第2の入力パスに結合され、前記ガンマ補正された第1の画素と前記ガンマ補正された第2の画素を混合して、混合画素を生成するように構成された画素合成器と、
前記ガンマ補正された第1の画素、前記ガンマ補正された第2の画素、又は、前記混合画素の1つを出力画素として選択するように構成された選択回路とを有する、グラフィックスプロセッサ。
A display pipeline configured to generate a gamma corrected first pixel;
An input port configured to receive a gamma corrected second pixel from a source of external pixels;
With a display head,
The display head is
A first input path coupled to the display pipeline and configured to receive the first gamma corrected pixel from the display pipeline;
A second input path coupled to the input port and configured to receive the second gamma corrected pixel from the input port;
Coupled to the first input path and the second input path and configured to mix the gamma corrected first pixel and the gamma corrected second pixel to generate a mixed pixel. A pixel synthesizer,
A graphics processor comprising: a selection circuit configured to select one of the gamma corrected first pixel, the gamma corrected second pixel, or the mixed pixel as an output pixel.
前記ディスプレイパイプラインは、前記ガンマ補正された第1の画素に関連付けられた複数のサンプル値に対するアンチエイリアシングフィルタに適合するフィルタユニットを含む、請求項9に記載のグラフィックスプロセッサ。   The graphics processor of claim 9, wherein the display pipeline includes a filter unit adapted to an anti-aliasing filter for a plurality of sample values associated with the gamma corrected first pixel. 複数の出力ポートと、
前記ディスプレイヘッドと複数の出力ポートとの間に結合された外部回路とを更に含み、
前記外部回路は、出力画素を前記出力ポートの一つに選択的に転送するように構成された、請求項9に記載のグラフィックスプロセッサ。
Multiple output ports,
An external circuit coupled between the display head and a plurality of output ports;
The graphics processor of claim 9, wherein the external circuit is configured to selectively transfer an output pixel to one of the output ports.
前記複数の出力ポートは、他のグラフィックスプロセッサの入力ポートに接続されるように構成された第1の出力ポートを含む、請求項11に記載のグラフィックスプロセッサ。   The graphics processor of claim 11, wherein the plurality of output ports includes a first output port configured to be connected to an input port of another graphics processor. 画像を生成する方法であって、
第1のグラフィックスプロセッサを用いて、画像用のガンマ補正された入力画素の第1セットをレンダリングするステップと、
第2のグラフィックスプロセッサを用いて、画像用のガンマ補正された入力画素の第2セットをレンダリングするステップであって、前記第1のグラフィックスプロセッサ及び前記第2のグラフィックスプロセッサの各々のレンダリング動作は、少なくとも一つの点で異なるステップと、
前記ガンマ補正された入力画素の第1セット及び前記ガンマ補正された入力画素の第2セットを第1のディスプレイヘッドに送るステップと、
前記第1のディスプレイヘッドで、前記ガンマ補正された入力画素の第1セット及び前記ガンマ補正された入力画素の第2セットの対応する画素を混合して、出力画素の第1セットを生成するステップと、を含む方法。
A method for generating an image, comprising:
Rendering a first set of gamma corrected input pixels for an image using a first graphics processor;
Rendering a second set of gamma corrected input pixels for an image using a second graphics processor, each rendering of the first graphics processor and the second graphics processor The operation differs in at least one point and
Sending the first set of gamma corrected input pixels and the second set of gamma corrected input pixels to a first display head;
Mixing corresponding pixels of the first set of gamma corrected input pixels and the second set of gamma corrected input pixels with the first display head to generate a first set of output pixels. And a method comprising:
前記第1のディスプレイヘッドは、前記第1のグラフィックスプロセッサに設けられた、請求項13に記載の方法。   The method of claim 13, wherein the first display head is provided in the first graphics processor. 前記第1のグラフィックスプロセッサ及び前記第2のグラフィックスプロセッサの各々のレンダリング動作は、各画素に適用されるサンプリングパターンに関して異なる、請求項13に記載の方法。   The method of claim 13, wherein a rendering operation of each of the first graphics processor and the second graphics processor is different with respect to a sampling pattern applied to each pixel. 前記第1のグラフィックスプロセッサ及び前記第2のグラフィックスプロセッサの各々のレンダリング動作は、レンダリングされる画像の視野域オフセットに関して異なる、請求項13に記載の方法。   The method of claim 13, wherein the rendering operation of each of the first graphics processor and the second graphics processor is different with respect to a field of view offset of the rendered image. 前記第1のグラフィックスプロセッサ及び前記第2のグラフィックスプロセッサの各々のレンダリング動作は、前記第1のグラフィックスプロセッサによるレンダリング動作が、ステレオアナグリフの左目視野を生成し、前記第2のグラフィックスプロセッサによるレンダリング動作が、ステレオアナグリフの右目視野を生成するという点で異なる、請求項13に記載の方法。   The rendering operation of each of the first graphics processor and the second graphics processor is such that the rendering operation by the first graphics processor generates a left eye field of stereo anaglyph, and the second graphics processor 14. The method of claim 13, wherein the rendering operation according to is different in that it produces a right eye field of stereo anaglyphs. 前記出力画素の第1セットをディスプレイ装置に送るステップを更に含む、請求項13に記載の方法。
The method of claim 13, further comprising sending the first set of output pixels to a display device.
JP2010275767A 2006-05-12 2010-12-10 Anti-aliasing using multiple display heads of graphics processor Active JP5116125B2 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US74715406P 2006-05-12 2006-05-12
US11/383048 2006-05-12
US60/747154 2006-05-12
US11/383,048 US8130227B2 (en) 2006-05-12 2006-05-12 Distributed antialiasing in a multiprocessor graphics system
US11/680,554 US20090085928A1 (en) 2006-05-12 2007-02-28 Antialiasing using multiple display heads of a graphics processor
US11/680554 2007-02-28

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007128378A Division JP4748483B2 (en) 2006-05-12 2007-05-14 Anti-aliasing using multiple display heads of graphics processor

Publications (2)

Publication Number Publication Date
JP2011123894A true JP2011123894A (en) 2011-06-23
JP5116125B2 JP5116125B2 (en) 2013-01-09

Family

ID=44147265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010275767A Active JP5116125B2 (en) 2006-05-12 2010-12-10 Anti-aliasing using multiple display heads of graphics processor

Country Status (3)

Country Link
JP (1) JP5116125B2 (en)
CN (1) CN102693712B (en)
TW (1) TWI343020B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013137756A (en) * 2011-12-05 2013-07-11 Arm Ltd Method for processing computer graphics and device for processing computer graphics
JP7389602B2 (en) 2019-09-30 2023-11-30 株式会社ソニー・インタラクティブエンタテインメント Image display system, image processing device, and video distribution method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678775B1 (en) 2008-04-09 2017-06-13 Nvidia Corporation Allocating memory for local variables of a multi-threaded program for execution in a single-threaded environment
US9324294B2 (en) * 2009-04-07 2016-04-26 Nvidia Corporation Graphics system for supporting multiple digital display interface standards
US9779534B2 (en) * 2013-08-28 2017-10-03 Qualcomm Incorporated Prefixed summed length in graphics processing

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319669A (en) * 1993-03-16 1995-12-08 Matsushita Electric Ind Co Ltd Window-managed image blending circuit and weighted mean circuit used for the same
JPH08154201A (en) * 1994-11-29 1996-06-11 Matsushita Electric Ind Co Ltd Image composite method and image composite device
JPH10124038A (en) * 1996-10-18 1998-05-15 Fujitsu General Ltd Picture synthesizing device
JPH11345218A (en) * 1998-04-03 1999-12-14 Sony Corp Image processor and its method
JP2000050315A (en) * 1998-07-28 2000-02-18 Nippon Hoso Kyokai <Nhk> Method and device for controlling gradation display of stereoscopic image
JP2001283213A (en) * 2000-02-29 2001-10-12 Canon Inc Image processor and its method
JP2004247873A (en) * 2003-02-12 2004-09-02 Fuji Photo Film Co Ltd Picture display program
JP2004349842A (en) * 2003-05-20 2004-12-09 Fuji Photo Film Co Ltd Method and program for correcting composite image

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319669A (en) * 1993-03-16 1995-12-08 Matsushita Electric Ind Co Ltd Window-managed image blending circuit and weighted mean circuit used for the same
JPH08154201A (en) * 1994-11-29 1996-06-11 Matsushita Electric Ind Co Ltd Image composite method and image composite device
JPH10124038A (en) * 1996-10-18 1998-05-15 Fujitsu General Ltd Picture synthesizing device
JPH11345218A (en) * 1998-04-03 1999-12-14 Sony Corp Image processor and its method
JP2000050315A (en) * 1998-07-28 2000-02-18 Nippon Hoso Kyokai <Nhk> Method and device for controlling gradation display of stereoscopic image
JP2001283213A (en) * 2000-02-29 2001-10-12 Canon Inc Image processor and its method
JP2004247873A (en) * 2003-02-12 2004-09-02 Fuji Photo Film Co Ltd Picture display program
JP2004349842A (en) * 2003-05-20 2004-12-09 Fuji Photo Film Co Ltd Method and program for correcting composite image

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013137756A (en) * 2011-12-05 2013-07-11 Arm Ltd Method for processing computer graphics and device for processing computer graphics
JP7389602B2 (en) 2019-09-30 2023-11-30 株式会社ソニー・インタラクティブエンタテインメント Image display system, image processing device, and video distribution method

Also Published As

Publication number Publication date
CN102693712B (en) 2015-01-14
CN102693712A (en) 2012-09-26
TW200816039A (en) 2008-04-01
TWI343020B (en) 2011-06-01
JP5116125B2 (en) 2013-01-09

Similar Documents

Publication Publication Date Title
US8130227B2 (en) Distributed antialiasing in a multiprocessor graphics system
US20090085928A1 (en) Antialiasing using multiple display heads of a graphics processor
US8212838B2 (en) Antialiasing system and method
JP4748483B2 (en) Anti-aliasing using multiple display heads of graphics processor
JP5116125B2 (en) Anti-aliasing using multiple display heads of graphics processor
US7623131B1 (en) Graphics processing systems with multiple processors connected in a ring topology
JP5061227B2 (en) Video signal processing apparatus and virtual reality generation system
JP2007251914A (en) Image signal processing apparatus, and virtual reality creating system
TWI539430B (en) Low motion blur liquid crystal display
JP3888478B2 (en) Data synchronizer
US20100039562A1 (en) Source and output device-independent pixel compositor device adapted to incorporate the digital visual interface (DVI)
US20030001857A1 (en) Method and apparatus for determining logical texture coordinate bindings
WO2012142309A2 (en) Method and apparatus for fast data delivery on a digital pixel cable
JP2019532319A (en) Composite user interface
JP2009111969A (en) Divided video processing apparatus and method, or control factor calculating apparatus
JP2003141095A (en) Information processing system, method and computer program
JP2003051023A (en) Device, method and program for plotting and computer readable recording medium with the same program recorded
GB2479067A (en) Antialiasing Using Multiple Display HeadsOf A Graphics Processor
US20030164842A1 (en) Slice blend extension for accumulation buffering
JP2006171736A (en) Image display device and method therefor
JP2007312420A (en) Video signal processing apparatus and virtual reality creating system
Friston et al. Ultra low latency dataflow renderer
JP4635379B2 (en) Image processing device
JP4115879B2 (en) Image display device
JP2003225415A (en) Device and method for displaying picture for pachinko machine

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120611

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120706

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120711

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120806

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120816

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5116125

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

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