DE102007021546A1 - Antialiasing with the help of multiple display heads of a graphics processor - Google Patents

Antialiasing with the help of multiple display heads of a graphics processor Download PDF

Info

Publication number
DE102007021546A1
DE102007021546A1 DE102007021546A DE102007021546A DE102007021546A1 DE 102007021546 A1 DE102007021546 A1 DE 102007021546A1 DE 102007021546 A DE102007021546 A DE 102007021546A DE 102007021546 A DE102007021546 A DE 102007021546A DE 102007021546 A1 DE102007021546 A1 DE 102007021546A1
Authority
DE
Germany
Prior art keywords
pixel
pixels
display
gpu
display head
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.)
Ceased
Application number
DE102007021546A
Other languages
German (de)
Inventor
Duncan A. Riach
Brijesh Santa Clara Tripathi
Brett T. Menlo Park Hannigan
Philip Browning Campbell Johnson
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 DE102007021546A1 publication Critical patent/DE102007021546A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1438Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using more than one graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

Es werden mehrere Anzeigeköpfe eines einzelnen Grafikprozessors genutzt, um Kantenglättung und andere Verarbeitungsaufgaben auszuführen. In einer Ausführungsform sind zwei Anzeigeköpfe desselben Grafikprozessors über einen Pixelübertragungspfad in einer Master-Slave-Konfiguration miteinander gekoppelt. Der "Master"-Anzeigekopf empfängt zusätzlich zu seinen eigenen Pixeln Pixel vom "Slave"-Anzeigekopf, und eine Pixelauswahllogik im Master-Anzeigekopf kann die zwei Pixel mischen oder eines der beiden unter Ausschluss des anderen auswählen. Falls die zwei Pixel unterschiedlichen Abtastorten im selben Anzeigepixel entsprechen, ist das gemischte Pixel ein kantengeglättetes Pixel.It be multiple display heads of a single GPU used to anti-aliasing and other processing tasks perform. In one embodiment are two display heads the same GPU over a pixel transmission path coupled together in a master-slave configuration. The "master" display head receives additionally to its own pixels pixels from the "slave" display head, and a Pixel selection logic in the master display head can mix the two pixels or select one of them, excluding the other. If the two pixels of different scan locations in the same display pixel the blended pixel is an edge smoothed pixel.

Figure 00000001
Figure 00000001

Description

QUERVERWEISE ZU VERWANDTEN ANMELDUNGENCROSS-REFERENCES TO RELATED REGISTRATIONS

Diese Anmeldung beansprucht den Zeitrang der US-Provisional-Patentanmeldung Nr. 60/747,154, die am 12. Mai 2006 eingereicht wurde, mit dem Titel „Antialiasing Using Multiple Display Heads of a Graphics Processor" und der ebenfalls anhängigen US-Patentanmeldung Nr. 11/383,048 der gleichen Anmelderin, die am 12. Mai 2006 eingereicht wurde, mit dem Titel „Distributed Antialiasing in a Multiprocessor Graphics System".These Application claims the benefit of US Provisional Patent Application No. 60 / 747,154, filed on May 12, 2006, entitled "Antialiasing Using Multiple Display Heads of a Graphics Processor "and co-pending US patent application No. 11 / 383,048 of the same Applicant filed on May 12, 2006 was titled "Distributed Antialiasing in a Multiprocessor Graphics System ".

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Die vorliegende Erfindung betrifft im Allgemeinen Computergrafik und im Besonderen Kantenglättung von Bilddaten mit Hilfe mehrerer Anzeigeköpfe (Display Heads) eines Grafikprozessors.The The present invention relates generally to computer graphics and in particular, antialiasing of image data using multiple display heads (display heads) of a graphics processor.

Wie auf dem Fachgebiet bekannt ist, sind computergenerierte Bilder für verschiedene visuelle Artefakte anfällig, die aus der endlichen Abtastauflösung resultieren, die beim Umwandeln der Bilddaten in eine Anordnung diskreter Farbelemente (Pixel) verwendet wird. Zu derartigen Artefakten, die im Allgemeinen als „Aliasing" bezeichnet werden, zählen Zacken in glatten Linien, Unregelmäßigkeiten in regelmäßigen Mustern und so fort.As As is known in the art, computer generated images are for various susceptible to visual artifacts, those from the finite sampling resolution resulting in converting the image data into an array discrete color elements (pixels) is used. To such artifacts, generally referred to as "aliasing", count spikes in smooth lines, irregularities in regular patterns and so on.

Zur Verringerung des Aliasings wird Farbe oft „überabgetastet", d.h. an einer Anzahl von Abtastorten abgetastet, welche die Anzahl der Pixel überschreitet, die das endgültige (z.B. angezeigte oder gespeicherte) Bild ausmachen. Zum Beispiel mag ein Bild mit der doppelten oder vierfachen Anzahl der Pixel abgetastet werden. Auf dem Fachgebiet sind verschiedene Typen der Überabtastung bekannt, unter anderem Supersampling (Hochrechnung), wobei jeder Abtastort als separates Pixel behandelt wird, und Multisampling, wobei ein einzelner Farbwert für jedes Primitiv berechnet wird, die mindestens einen Teil des Pixels abdeckt, die Abdeckung des Pixels durch das Primitiv wird hingegen an mehreren Orten ermittelt.to Reduction of aliasing is often over-sampled in color, i.e., in number sampled from sample locations that exceeds the number of pixels, the final one (e.g., displayed or saved) image. For example like a picture with twice or four times the number of pixels be scanned. There are several types of oversampling in the art known, among others supersampling (extrapolation), each one Sample location is treated as a separate pixel, and multisampling, where a single color value for each primitive is calculated to be at least part of the pixel covering, however, the coverage of the pixel by the primitive becomes determined in several places.

Ein Kantenglättungsfilter (Antialiasingfilter, AA-Filter) mischt die mehreren Abtastungen pro Pixel, um einen einzelnen Farbwert zu ermitteln. In herkömmlicher Weise werden AA-Filter entweder innerhalb der Renderpipeline, die Pixel generiert und sie in einen Einzelbildpuffer speichert, oder innerhalb Anzeigepipeline angewendet, die Pixel aus dem Einzelbildpuffer liest und diese an ein Anzeigegerät liefert.One Antialiasing filter (Antialiasing filter, AA filter) mixes the multiple samples per pixel to determine a single color value. In conventional Way, either AA filters within the render pipeline, the Generates pixels and saves them to a frame buffer, or within display pipeline, the pixels from the frame buffer are applied reads and delivers them to a display device.

ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Ausführungsformen der vorliegenden Erfindung stellen Systeme und Verfahren zum Nutzen mehrerer Anzeigeköpfe eines einzelnen Grafikprozessors. bereit, um Kantenglättung und andere Verarbeitungsaufgaben auszuführen. In einer Ausführungsform sind zwei Anzeigeköpfe desselben Grafikprozessors über einen Pixelübertragungspfad in einer Master-Slave-Konfiguration miteinander gekoppelt. Der „Master"-Anzeigekopf empfängt zusätzlich zu seinen eigenen Pixeln Pixel vom „Slave"-Anzeigekopf, und eine Pixelauswahllogik im Master-Anzeigekopf kann die zwei Pixel mischen oder eines der beiden unter Ausschluss des anderen auswählen. Falls die zwei Pixel unterschiedlichen Abtastorten im selben Bild entsprechen, ist das gemischte Pixel ein AA-gefiltertes Pixel.embodiments The present invention provides systems and methods for the benefit of several display heads a single graphics processor. ready to anti - aliasing and perform other processing tasks. In one embodiment are two display heads the same GPU over a pixel transmission path coupled together in a master-slave configuration. The "master" display header receives in addition to its own pixels are pixels from the "slave" display head, and pixel selection logic in the master display head can mix the two pixels or one of the select both to the exclusion of the other. If the two pixels different scanning locations in the same picture, that is mixed pixels an AA-filtered pixel.

Gemäß einem Aspekt der vorliegenden Erfindung beinhaltet ein Grafikverarbeitungsgerät einen ersten Anzeigekopf, einen zweiten Anzeigekopf und einen Pixelübertragungspfad. Der erste Anzeigekopf ist konfiguriert, ein erstes Ausgangspixel zu generieren, und ist innerhalb einer integrierten Schaltung angeordnet. Der zweite Anzeigekopf, der eingerichtet ist, ein zweites Ausgangspixel zu generieren, ist ebenfalls innerhalb der integrierten Schaltung angeordnet. Der zweite Anzeigekopf beinhaltet vorteilhafterweise einen ersten Eingangspfad, der eingerichtet ist, ein externes Pixel zu empfangen; einen zweiten Eingangspfad, der konfiguriert ist, ein internes Pixel zu empfangen; einen Pixelkombinierer, der mit dem ersten Eingangspfad und dem zweiten Eingangspfad gekoppelt und konfiguriert ist, das externe Pixel und das interne Pixel zu mischen, um ein Mischpixel zu generieren; und eine Auswahlschaltung, die konfiguriert ist, unter dem externen Pixel, dem internen Pixel oder dem Mischpixel eines als zweites Ausgangspixel auszuwählen. Der Pixelübertragungspfad ist so konfigurierbar, dass er das erste Ausgangspixel vom ersten Anzeigekopf derart an den ersten Eingangspfad des zweiten Anzeigekopfes liefert, dass das erste Ausgangspixel vom ersten Eingangspfad als das externe Pixel empfangen wird.According to one Aspect of the present invention includes a graphic processing apparatus a first Display head, a second display head, and a pixel transfer path. The first display head is configured, a first output pixel and is located within an integrated circuit. The second display head that is set up has a second output pixel is also within the integrated circuit arranged. The second display head advantageously includes a first input path set up, an external pixel to recieve; a second input path that is configured to receive an internal pixel; a pixel combiner using coupled to the first input path and the second input path and is configured to mix the external pixel and the internal pixel, to generate a mixed pixel; and a selection circuit that is configured under the external pixel, the internal pixel or select one of the mixing pixels as a second output pixel. Of the Pixel transmission path is configurable to take the first output pixel from the first one Display head in such a way to the first input path of the second display head provides that the first output pixel from the first input path as the external pixel is received.

In einigen Ausführungsformen ist der Pixelübertragungspfad ebenfalls innerhalb der integrierten Schaltung angeordnet. In anderen Ausführungsformen liegt mindestens ein Abschnitt des Pixelübertragungspfades außerhalb der integrierten Schaltung. Zum Beispiel kann der Pixelübertragungspfad einen lösbaren Konnektor beinhalten.In some embodiments is the pixel transmission path also disposed within the integrated circuit. In other embodiments At least a portion of the pixel transmission path is outside the integrated circuit. For example, the pixel transmission path a detachable Connector include.

Gemäß einem anderen Aspekt der vorliegenden Erfindung beinhaltet ein Grafik-Subsystem einen Grafikadapter, der einen Pixelausgangskonnektor und einen Pixeleingangskonnektor aufweist. Ein Grafikprozessor, der auf dem Grafikadapter montiert sein kann, weist einen Pixelausgangsport, der kommunikationsfähig mit dem Pixelausgangskonnektor gekoppelt ist, und einen Pixeleingangsport auf, der kommunikationsfähig mit dem Pixeleingangskonnektor gekoppelt ist. Das Grafik-Subsystem beinhaltet außerdem eine lösbaren Konnektoreinheit, die ausgelegt ist, den Pixelausgangskonnektor des Grafikadapters mit dem Pixeleingangskonnektor des Grafikadapters zu verbinden.In accordance with another aspect of the present invention, a graphics subsystem includes a graphics adapter having a pixel output connector and a pixel input connector. A graphics processor that may be mounted on the graphics adapter has a pixel output port that is communicably coupled to the pixel output connector and a pixel input port that is communicable with the pixel is coupled to the output connector. The graphics subsystem also includes a detachable connector unit configured to connect the graphics adapter's pixel output connector to the graphics adapter's pixel input connector.

Gemäß noch einem anderen Aspekt der vorliegenden Erfindung beinhaltet ein Verfahren des Generierens eines Bildes Rendern eines ersten Satzes von Eingangspixeln und eines zweiten Satzes von Eingangspixeln für das Bild unter Verwendung einer Renderpipeline eines Grafikprozessors. Eine erste Renderoperation, die dazu dient, den ersten Satz von Eingangspixeln zu rendern, unterscheidet sich in mindestens einer Beziehung von einer zweiten Renderoperation, die dazu dient, den zweiten Satz von Eingangspixeln zu rendern; zum Beispiel können sich die zwei Renderoperationen hinsichtlich eines Abtastmusters, das auf jedes Pixel angewendet wird, oder hinsichtlich eines Darstellungsfeldversatzes des gerenderten Bildes unterscheiden. Der erste Satz von Eingangspixeln wird an einen ersten Anzeigekopf des Grafikprozessors geliefert, und der zweite Satz von Eingangspixeln wird an einen zweiten Anzeigekopf des Grafikprozessors geliefert. Der erste Satz von Eingangspixeln wird ferner vom ersten Anzeigekopf an den zweiten Anzeigekopf geliefert. Im zweiten Anzeigekopf werden entsprechende Pixel des ersten Satzes von Eingangspixeln und des zweiten Satzes von Eingangspixeln gemischt, um einen Satz von Ausgangspixeln zu generieren.According to one more Another aspect of the present invention includes a method generating an image rendering a first set of input pixels and a second set of input pixels for the image using a rendering pipeline of a graphics processor. A first render operation, which is used to render the first set of input pixels in at least one relationship from a second render operation, which serves to render the second set of input pixels; for example, can themselves the two rendering operations with respect to a sample, the is applied to each pixel, or to a viewport offset of the rendered image. The first set of input pixels is delivered to a first display head of the graphics processor, and the second set of input pixels is applied to a second display head supplied by the graphics processor. The first set of input pixels is also supplied from the first display head to the second display head. In the second display head are corresponding pixels of the first sentence mixed from input pixels and the second set of input pixels, to generate a set of output pixels.

Die folgende ausführliche Beschreibung bietet zusammen mit den zugehörigen Zeichnungen ein besseres Verständnis der Natur und der Vorteile der vorliegenden Erfindung.The following detailed Description, together with the accompanying drawings, offers a better one understanding the nature and advantages of the present invention.

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

1 ist ein Blockschaltbild eines Computersystems gemäß einer Ausführungsform der vorliegenden Erfindung; 1 Fig. 12 is a block diagram of a computer system according to an embodiment of the present invention;

2 ist ein Blockschaltbild eines Pixelausgangspfades in einer Grafikverarbeitungseinheit (Graphics Processing Unit, GPU), gemäß einer Ausführungsform der vorliegenden Erfindung; 2 FIG. 10 is a block diagram of a pixel output path in a Graphics Processing Unit (GPU) according to one embodiment of the present invention; FIG.

3A und 3B sind Blockschaltbilder von Pixelauswahllogik in einem Anzeigekopf einer GPU, verwendbar in Ausführungsformen der vorliegenden Erfindung; 3A and 3B FIG. 13 are block diagrams of pixel selection logic in a display head of a GPU usable in embodiments of the present invention; FIG.

4A ist ein Blockschaltbild eines Grafik-Subsystems mit zwei GPUs gemäß einer Ausführungsform der vorliegenden Erfindung; 4A FIG. 12 is a block diagram of a graphics subsystem with two GPUs according to an embodiment of the present invention; FIG.

4B ist ein Blockschaltbild einer GPU, zwei Anzeigeköpfe zeigend, die in einer Master-Slave-Konfiguration gekoppelt sind, gemäß einer Ausführungsform der vorliegenden Erfindung; 4B Figure 12 is a block diagram of a GPU showing two display heads coupled in a master-slave configuration, according to an embodiment of the present invention;

5A5C stellen Abtastmuster dar, die in einigen Ausführungsformen der vorliegenden Erfindung verwendbar sind; 5A - 5C represent scanning patterns useful in some embodiments of the present invention;

6 stellt einen Grafikadapter dar, der als Leiterplattenkarte implementiert und mit einem externen Pixelübertragungspfad konfiguriert ist, gemäß einer Ausführungsform der vorliegenden Erfindung; und 6 FIG. 12 illustrates a graphics adapter implemented as a circuit board card and configured with an external pixel transmission path, according to one embodiment of the present invention; FIG. and

7 ist ein Blockschaltbild einer GPU mit einem internen Pixelübertragungspfad gemäß einer Ausführungsform der vorliegenden Erfindung. 7 Figure 12 is a block diagram of a GPU having an internal pixel transmission path according to an embodiment of the present invention.

AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNGDETAILED DESCRIPTION OF THE INVENTION

Ausführungsformen der vorliegenden Erfindung stellen Systeme und Verfahren zum Nutzen mehrerer Anzeigeköpfe eines einzelnen Grafikprozessors bereit, um Kantenglättung und andere Verarbeitungsaufgaben auszuführen. In einer Ausführungsform sind zwei Anzeigeköpfe desselben Grafikprozessors über einen Pixelübertragungspfad in einer Master-Slave-Konfiguration miteinander gekoppelt. Der „Master"-Anzeigekopf empfängt zusätzlich zu seinen eigenen Pixeln Pixel vom „Slave"-Anzeigekopf, und eine Pixelauswahllogik im Master-Anzeigekopf kann die zwei Pixel mischen oder eines der beiden unter Ausschluss des anderen auswählen. Falls die zwei Pixel unterschiedlichen Abtastorten im selben Bild entsprechen, ist das gemischte Pixel ein AA-gefiltertes Pixel.embodiments The present invention provides systems and methods for the benefit of several display heads a single graphics processor ready to anti - aliasing and perform other processing tasks. In one embodiment are two display heads the same GPU over a pixel transmission path coupled together in a master-slave configuration. The "master" display header receives in addition to its own pixels are pixels from the "slave" display head, and pixel selection logic in the master display head can mix the two pixels or one of the select both to the exclusion of the other. If the two pixels different scanning locations in the same picture, that is mixed pixels an AA-filtered pixel.

Übersicht über das SystemOverview of the system

1 ist ein Blockschaltbild eines Computersystems 100 gemäß einer Ausführungsform der vorliegenden Erfindung. Das Computersystem 100 beinhaltet eine Zentraleinheit (Central Processing Unit, CPU) 102 und einen Systemspeicher 104, die über einen Buspfad kommunizieren, der eine Speicherbrücke 105 beinhaltet, z.B. einen Northbridge-Chip. Die Speicherbrücke 105 ist über einen Bus oder einen anderen Kommunikationspfad 106 mit einer E/A-Brücke (Ein- und Ausgangs-Brücke) 107 verbunden, z.B. einem Southbridge-Chip. Die E/A-Brücke 107 empfängt Benutzereingaben von einem oder mehreren Benutzereingabegeräten 108 (z.B. Tastatur, Maus) und leitet die Eingabe über Bus 106 und Speicherbrücke 105 an CPU 102 weiter. Die visuelle Ausgabe wird auf einem pixelbasierten Anzeigegerät 110 bereitgestellt (z.B. einem herkömmlichen CRT- oder LCD-basierten Monitor), das unter Steuerung eines Grafik-Subsystems 112 arbeitet, das über einen Bus oder einen anderen Kommunikationspfad 113 mit Speicherbrücke 105 gekoppelt ist. Ebenfalls mit der E/A-Brücke 107 verbunden ist eine Systemplatte 114. Ein Switch 116 stellt Verbindungen zwischen der E/A-Brücke 107 und anderen Komponenten wie z.B. einem Netzwerkadapter 118 und verschiedenen Zusatzkarten 120, 121 bereit. Andere (nicht explizit gezeigte) Komponenten, zu denen USB- oder andere Port-Verbindungen, CD-Laufwerke, DVD-Laufwerke und dergleichen zählen, mögen ebenfalls mit E/A-Brücke 107 verbunden sein. Kommunikationspfade unter den verschiedenen Komponenten können mit Hilfe von Protokollen wie z.B. PCI (Peripheral Component Interconnect), PCI Express (PCI-E), AGP (Accelerated Graphics Port), HyperTransport oder (einem) anderen Bus- oder Punkt-zu-Punkt-Protokollen) implementiert sein, und Verbindungen zwischen unterschiedlichen Geräten können unterschiedliche Protokolle verwenden, wie auf dem Fachgebiet bekannt ist. 1 is a block diagram of a computer system 100 according to an embodiment of the present invention. The computer system 100 includes a central processing unit (CPU) 102 and a system memory 104 that communicate over a bus path that is a memory bridge 105 includes, for example, a northbridge chip. The memory bridge 105 is over a bus or another communication path 106 with an I / O bridge (input and output bridge) 107 connected, for example, a southbridge chip. The I / O bridge 107 receives user input from one or more user input devices 108 (eg keyboard, mouse) and forwards the input via bus 106 and memory bridge 105 to CPU 102 further. The visual output is on a pixel-based display device 110 provided (eg, a conventional CRT or LCD based monitor) under the control of a graphics subsystem 112 works that over a bus or another communication path 113 with memory bridge 105 is coupled. Also with the I / O bridge 107 connected is one system board 114 , A switch 116 makes connections between the I / O bridge 107 and other components such as a network adapter 118 and different additional cards 120 . 121 ready. Other components (not explicitly shown), including USB or other port connections, CD drives, DVD drives, and the like, may also be I / O bridge 107 be connected. Communication paths among the various components may be through protocols such as PCI (Peripheral Component Interconnect), PCI Express (PCI-E), AGP (Accelerated Graphics Port), HyperTransport, or other bus or point-to-point protocols ), and connections between different devices may use different protocols, as is known in the art.

Das Grafik-Subsystem 112 beinhaltet eine Anzahl N (eine oder mehrere) Grafikverarbeitungseinheiten (Graphics Processing Units, GPUs) 122. (Hierin sind mehrfache Vorkommen ähnlicher Objekte mit Bezugszeichen, die das Objekt identifizieren, und mit eingeklammerten Zahlen bezeichnet, die erforderlichenfalls das Vorkommen bezeichnen.) Jede GPU 122 weist einen zugeordneten Grafikspeicher 124 auf. GPUs 122 und Grafikspeicher 124 mögen z.B. mit Hilfe eines oder mehrerer integrierter Schaltungsgeräte wie z.B. programmierbarer Prozessoren, anwendungsspezifischer integrierter Schaltkreise (Application Specific Integrated Circuits, ASICs) und von Speichergeräten implementiert sein. In einigen Ausführungsformen sind GPUs 122 und Grafikspeicher 124 in einer oder mehreren Erweiterungskarten oder anderen Adaptern implementiert, die in Erweiterungssteckplätze (z.B. PCI-E-Steckplätze) in System 100 eingesetzt und aus diesen entfernt werden mögen. Es mag eine beliebige Anzahl N von GPUs 122 verwendet werden.The graphics subsystem 112 includes a number N (one or more) graphics processing units (GPUs) 122 , (This refers to multiple occurrences of similar objects with reference numbers identifying the object, and bracketed numbers indicating occurrence, if necessary.) Each GPU 122 has an associated graphics memory 124 on. GPUs 122 and graphics memory 124 may be implemented by, for example, one or more integrated circuit devices such as programmable processors, application specific integrated circuits (ASICs), and storage devices. In some embodiments, GPUs 122 and graphics memory 124 in one or more expansion cards or other adapters implemented in expansion slots (eg, PCI-E slots) in system 100 may be used and removed from these. It likes any number N of GPUs 122 be used.

Jede GPU 122 mag konfiguriert sein, verschiedene Aufgaben bezüglich des Generierens von Pixeldaten (die hierin ebenfalls als „Pixel" bezeichnet werden) aus Grafikdaten, die durch die CPU 102 und/oder den Systemspeicher 104 über Speicherbrücke 105 und Bus 113 zugeführt werden, des Interagierens mit einem jeweiligen Grafikspeicher 124, um Pixeldaten zu speichern und zu aktualisieren, und dergleichen wahrzunehmen. Beispielsweise mag eine GPU 122 Pixeldaten aus 2-D- oder 3-D-Szenendaten generieren, die durch verschiedene Programme bereitgestellt werden, die aus der CPU 102 ausgeführt werden. Auch kann eine GPLT 122 Pixeldaten, die über Speicherbrücke 105 empfangen werden, mit oder ohne weitere Verarbeitung in Grafikspeicher 124 schreiben. Jede GPU 122 beinhaltet außerdem ein Ausgabemodul (hierin auch als Anzeigepipeline bezeichnet), das eingerichtet sein mag, Pixeldaten vom Grafikspeicher 124 an einen Ausgangsport der GPU 122 zu liefern, wie unten beschrieben. Der Ausgangsport kann mit einem Monitor oder einer anderen GPU 122 verbunden sein oder auch nicht.Every GPU 122 may be configured to perform various tasks related to generating pixel data (also referred to herein as "pixels") from graphics data provided by the CPU 102 and / or the system memory 104 over memory bridge 105 and bus 113 supplied, of interacting with a respective graphics memory 124 to store and update pixel data, and the like. For example, like a GPU 122 Generate pixel data from 2-D or 3-D scene data provided by various programs coming from the CPU 102 be executed. Also, a GPLT 122 Pixel data over memory bridge 105 received, with or without further processing in graphics memory 124 write. Every GPU 122 also includes an output module (also referred to herein as a display pipeline) that may be configured to store pixel data from the graphics memory 124 to an output port of the GPU 122 to deliver, as described below. The output port can work with a monitor or other GPU 122 be connected or not.

Bei Operationen in einer verteilten Renderbetriebsart ist eine GPU (z.B. GPU 122(0)) vorteilhafterweise eingerichet, ausgetastete Pixel an eine andere GPU (z.B. GPU 122(N-1)) zu liefern, die zwischen internen Pixeln aus ihrer eigenen Anzeigepipeline und externen Pixeln auswählt, die von GPU 122(0) empfangen werden. Mehr als zwei GPUs 122 können in der An einer „Daisy-Chain" miteinander verbunden sein, sodass eine Slave-GPU 122 ihre Pixel an eine Zwischen-GPU 122 liefert, die zwischen ihrem internen Pixel und dem externen Pixel vom Slave auswählt, dann das ausgewählte Pixel an eine andere GPU weiterleitet und so weiter, bis die letzte Master-GPU (d.h., die GPU, die mit einem Monitor verbunden ist) die endgültigen ausgewählten Pixel an ein Anzeigegerät liefert.For operations in a distributed render mode, a GPU (eg GPU 122 (0) ) advantageously, blanked pixels to another GPU (eg GPU 122 (N-1) ), which selects between internal pixels from their own display pipeline and external pixels from GPU 122 (0) be received. More than two GPUs 122 can be connected to each other in a "daisy-chain", so that a slave GPU 122 their pixels to an intermediate GPU 122 which selects between its internal pixel and the external pixel from the slave, then forwards the selected pixel to another GPU, and so on until the last master GPU (ie, the GPU connected to a monitor) selects the final ones selected Pixels to a display device supplies.

In einigen Ausführungsformen mögen die GPUs 122 auf derartige Weise miteinander verbunden sein, dass ohne irgendeine Änderung der physikalischen Verbindungen eine beliebige GPU 122 durch Einstellen der Konfigurationseinstellungen der GPUs 122 zum Slave einer beliebigen anderen GPU 122 werden kann. Zum Beispiel mögen die GPUs 122 in einer unidirektionalen oder bidirektionalen Ringtopologie verbunden sein.In some embodiments, the GPUs may be like 122 be connected in such a way that without any change in the physical connections any GPU 122 by adjusting the configuration settings of the GPUs 122 to the slave of any other GPU 122 can be. For example, like the GPUs 122 be connected in a unidirectional or bidirectional ring topology.

Es mögen verschiedene verteilte Renderbetriebsarten unterstützt werden. Zum Beispiel sind beim Split-Frame-Rendering unterschiedliche GPUs 122 dem Rendern unterschiedlicher Abschnitte desselben Bildes zugewiesen; beim Alternate-Frame-Rendering sind unterschiedliche GPUs 122 dem Rendern unterschiedlicher Bilder in einer Folge anzuzeigender Bilder zugewiesen. Für die vorliegende Erfindung ist keine bestimmte verteilte Renderbetriebsart von entscheidender Bedeutung.Various distributed rendering modes may be supported. For example, split-frame rendering uses different GPUs 122 assigned to render different sections of the same image; Alternate Frame Rendering has different GPUs 122 assigned to rendering different images in a sequence of images to be displayed. No particular distributed rendering mode is critical to the present invention.

Gemäß einer Ausführungsform der vorliegenden Erfindung sind die GPUs 122 auch in einer „extern verteilten" AA-Betriebsart betreibbar. In dieser Betriebsart mischt die Pixelauswahllogik in den GPUs 122 interne und externe Pixel, statt eines der Pixel unter Ausschluss des anderen auszuwählen. Dort, wo die internen und externen Pixel dasselbe Bild mit unterschiedlichen Abtastorten repräsentieren, entspricht das Resultat des Mischens der Pixel einer AA-Lösungsoperation (hierin auch als AA-Filter bezeichnet). Gemäß einer anderen Ausführungsform der vorliegenden Erfindung mag eine GPU 122 in einer „intern verteilten" AA-Betriebsart betrieben werden. In dieser Betriebsart mischt die Pixelauswahllogik in der GPU 122 Pixel, die durch zwei Anzeigeköpfe derselben GPU 122 generiert worden sind. Beispiele verteilter AA-Betriebsarten (einschließlich intern und extern verteilter Betriebsarten) und zugeordneter Pixelauswahllogik sind unten beschrieben.According to one embodiment of the present invention, the GPUs are 122 also operable in an "externally distributed" AA mode In this mode, pixel selection logic is mixed in the GPUs 122 internal and external pixels, instead of selecting one of the pixels to the exclusion of the other. Where the internal and external pixels represent the same image with different scan locations, the result of mixing the pixels corresponds to an AA solution operation (also referred to herein as an AA filter). According to another embodiment of the present invention, a GPU may 122 operate in an "internally distributed" AA mode In this mode, pixel selection logic is mixed in the GPU 122 Pixels passing through two display heads of the same GPU 122 have been generated. Examples of distributed AA modes (including internally and externally distributed modes) and assigned The pixel selection logic is described below.

In einigen Ausführungsformen mögen einige oder alle GPUs 122 auch in einer „unabhängigen Renderbetriebsart" betreibbar sein, in der Unterschiedliche der GPUs 122 Bilder für unterschiedliche Anzeigegeräte rendern; die Bilder, die durch unterschiedliche GPUs 122 in einer unabhängigen Renderbetriebsart gerendert werden, mögen zueinander in Bezug stehen oder auch nicht. Es versteht sich, dass die GPUs 122 konfigurierbar sein können, in irgendeiner der obigen oder in anderen Betriebsarten zu arbeiten.In some embodiments, some or all of the GPUs may be like 122 also be operable in an "independent rendering mode", in the different of the GPUs 122 Render images for different display devices; the pictures taken by different GPUs 122 rendered in an independent rendering mode may or may not be related to each other. It is understood that the GPUs 122 may be configurable to operate in any of the above or other modes.

Die CPU 102 arbeitet als Masterprozessor des Systems 100, wobei sie den Betrieb anderer Systemkomponenten steuert und koordiniert. Insbesondere gibt die CPU 102 Befehle aus, die den Betrieb der GPU 122 steuern. In einigen Ausführungsformen schreibt die CPU 102 einen Stream von Befehlen für die GPU 122 in einen Befehlspuffer, der sich im Systemspeicher 104, im Grafikspeicher 124 oder an einem anderen Speicherort befinden mag, auf den sowohl die CPU 102 als auch die GPU 122 zugreifen mögen. Die GPU 122 liest den Befehlsstream aus dem Befehlspuffer und führt Befehle asynchron zum Betrieb der CPU 102 aus. Die Befehle können herkömmliche Renderbefehle zum Generieren von Bildern sowie allgemeine Rechenbefehle beinhalten, die Anwendungen, die auf der CPU 102 ausgeführt werden, in die Lage versetzen, die Rechenleistung der GPU 122 für Datenverarbeitung auszunutzen, die nicht zur Bildgenerierung verwendet wird.The CPU 102 works as the master processor of the system 100 while controlling and coordinating the operation of other system components. In particular, the CPU gives 102 Commands out the operation of the GPU 122 Taxes. In some embodiments, the CPU writes 102 a stream of commands for the GPU 122 into a command buffer that resides in system memory 104 , in graphics memory 124 or may be located in a different location to which both the CPU 102 as well as the GPU 122 like to access. The GPU 122 reads the command stream from the command buffer and executes commands asynchronously to the operation of the CPU 102 out. The commands may include conventional rendering commands for generating images, as well as general compute commands, the applications running on the CPU 102 be able to put into effect the processing power of the GPU 122 for data processing that is not used for image generation.

Man wird verstehen, dass das hierin gezeigte System veranschaulichend ist und dass Variationen und Modifikationen möglich sind. Die Verbindungs-Topologie einschließlich der Anzahl und der Anordnung der Brücken mag wie gewünscht modifiziert werden. Zum Beispiel ist in einigen Ausführungsformen der Systemspeicher 104 direkt statt durch eine Brücke mit CPU 102 verbunden, und andere Geräte kommunizieren mit dem Systemspeicher 104 über Speicherbrücke 105 und CPU 102. In anderen alternativen Topologien ist das Grafik-Subsystem 112 mit E/A-Brücke 107 statt mit Speicherbrücke 105 verbunden. In noch anderen Ausführungsformen mögen E/A-Brücke 107 und Speicherbrücke 105 in einen einzelnen Chip integriert sein. Die hierin gezeigten bestimmten Komponenten sind optional; zum Beispiel könnte jedwede Anzahl von Zusatzkarten oder Peripheriegeräten unterstützt werden. In einigen Ausführungsformen entfällt Switch 116, und der Netzwerkadapter 118 und die Zusatzkarten 120, 121 sind direkt mit E/A-Brücke 107 verbunden.It will be understood that the system shown herein is illustrative and that variations and modifications are possible. The connection topology, including the number and arrangement of the bridges, may be modified as desired. For example, in some embodiments, system memory is 104 directly instead of a bridge with CPU 102 and other devices communicate with system memory 104 over memory bridge 105 and CPU 102 , In other alternative topologies, the graphics subsystem is 112 with I / O bridge 107 instead of with memory bridge 105 connected. In still other embodiments, I / O bridge 107 and memory bridge 105 be integrated into a single chip. The particular components shown herein are optional; For example, any number of add-on cards or peripherals could be supported. In some embodiments, switch is eliminated 116 , and the network adapter 118 and the additional cards 120 . 121 are directly with I / O bridge 107 connected.

Die Verbindung der GPU(s) 122 mit dem Rest von System 100 mag ebenfalls variiert werden. In einigen Ausführungsformen ist das Grafiksystem 112 als eine oder mehrere Erweiterungs- oder Zusatzkarten implementiert, die in Erweiterungssteckplätze von System 100 eingesetzt werden können. In anderen Ausführungsformen ist eine GPU auf einem einzelnen Chip mit einer Busbrücke integriert, wie z.B. Speicherbrücke 105 oder E/A-Brücke 107.The connection of the GPU (s) 122 with the rest of system 100 may also be varied. In some embodiments, the graphics system is 112 as one or more expansion or add-in cards implemented in system expansion slots 100 can be used. In other embodiments, a GPU is integrated on a single chip with a bus bridge, such as a memory bridge 105 or I / O bridge 107 ,

Jede GPU mag mit einer beliebigen Menge an lokalem Grafikspeicher, einschließlich keines lokalen Speichers, versehen sein und kann lokalen Speicher und Systemspeicher in einer beliebigen Kombination verwenden. Zum Beispiel ist in einer Ausführungsform mit Unified-Memory-Architektur (UMA) kein dediziertes Grafikspeichergerät bereitgestellt, und einige oder alle GPUs nutzen ausschließlich oder nahezu ausschließlich Systemspeicher. In UMA-Ausführungsformen mag eine GPU in einen Busbrückenchip integriert oder als diskreter Chip mit einem Hochgeschwindigkeitsbus (z.B. PCI-E) bereitgestellt sein, der die GPU mit dem Brückenchip und dem Systemspeicher verbindet.each GPU likes with any amount of local graphics memory, including none local memory, and can be local memory and system memory use in any combination. For example, in one embodiment No dedicated graphics storage device provided with Unified Memory Architecture (UMA), and some or all of the GPUs use system memory exclusively or almost exclusively. In UMA embodiments Like a GPU in a bus bridge chip integrated or as a discrete chip with a high-speed bus (e.g., PCI-E) having the GPU with the bridge chip and the system memory.

Darüber hinaus mögen GPUs, die Aspekte der vorliegenden Erfindung verkörpern, in verschiedene Geräte einbezogen sein, einschließlich Mehrzweck-Computersystemen, Videospielekonsolen und anderer Spezial-Computersysteme, DVD-Abspielgeräten, Handgeräten wie z.B. Mobiltelefonen oder Taschencomputern und so fort.Furthermore like GPUs, embody the aspects of the present invention incorporated into various devices be inclusive Purpose computer systems, Video game consoles and other specialized computer systems, DVD players, handheld devices such as e.g. Cell phones or pocket computers and so on.

GPU mit mehreren AnzeigeköpfenGPU with multiple display heads

2 ist ein Blockschaltbild eines Pixelausgangspfades in einer GPU 122, verwendbar zur praktischen Umsetzung der vorliegenden Erfindung. Obgleich ein Mehr-GPU-Grafiksystem für einige Ausführungsformen der vorliegenden Erfindung nicht erforderlich ist, ist die GPU 122 vorteilhafterweise eingerichtet, in einem derartigen System benutzbar zu sein. 2 Figure 12 is a block diagram of a pixel output path in a GPU 122 , useful for practicing the present invention. Although a multi-GPU graphics system is not required for some embodiments of the present invention, the GPU is 122 advantageously arranged to be usable in such a system.

Insbesondere beinhaltet, wie in 2 gezeigt, die GPU 122 eine Anzeige(oder Ausgabe-)-pipeline 202, die mit einer Speicherschnittstelle 204 gekoppelt ist. Die Anzeigepipeline 202 ist außerdem mit Anzeigeköpfen 206a („Kopf A") und 206b („Kopf B") gekoppelt. GPU 122 weist mehrere Ausgangsports 210213 auf, einschließlich Digitalausgangsports 210, 211 und Analogausgangsports 212, 213. GPU 122 weist außerdem zwei Mehrzweck-Ein- und Ausgangsports (MEA-Ports/„multipurpose input/output ports" MIO-Ports) 214a („MEA A") und 214b („MEA B") auf, die für verschiedene Zwecke konfigurierbar sind, einschließlich für Kommunikation mit einer anderen GPU oder mit einem anderen externen digitalen Gerät. Die Anzeigeköpfe 206a und 206b sind jeweils über eine Kreuzschiene 220 mit Ausgangsports 210213 und MEA-Ports 214a, 214b gekoppelt.In particular, as in 2 shown the GPU 122 an ad (or output) pipeline 202 working with a storage interface 204 is coupled. The display pipeline 202 is also with display heads 206a ("Head A") and 206b ("Head B") coupled GPU 122 has several output ports 210 - 213 on, including digital output ports 210 . 211 and analog output ports 212 . 213 , GPU 122 also has two multipurpose input and output ports (MIO ports / multipurpose input / output ports) 214a ("MEA A") and 214b ("MEA B"), which are configurable for various purposes, including communication with another GPU or with another external digital device 206a and 206b are each via a crossbar 220 with output ports 210 - 213 and MEA ports 214a . 214b coupled.

Die Speicherschnittstelle 204 ist mit einem (in 2 nicht gezeigten) Speicher gekoppelt, z.B. Grafikspeicher 124 nach 1, der Pixeldaten speichert, die durch GPU 122 generiert werden. Die Anzeigepipeline 202 kommuniziert mit der Speicherschnittstelle 204, um auf die gespeicherten Pixeldaten zuzugreifen. Die Anzeigepipeline 202 liefert die Pixeldaten an einen oder beide der Anzeigeköpfe 206a, 206b. In einigen Ausführungsformen kann die Anzeigepipeline 202 die Pixeldaten verschiedenen Verarbeitungsoperationen unterziehen, bevor sie diese an die Anzeigeköpfe 206a, 206b liefert, und Pixeldaten, die für Anzeigekopf 206a bestimmt sind, mögen gegenüber Pixeldaten, die für Anzeigekopf 206b bestimmt sind, unterschiedlich verarbeitet werden oder auch nicht. Darüber hinaus mögen Pixeldaten, die der Anzeigepipeline 202 zur Verarbeitung und Lieferung an Anzeigekopf 206a bereitgestellt werden, dieselben wie die Pixeldaten, die der Anzeigepipeline 202 zur Verarbeitung und Lieferung an Anzeigekopf 206b bereitgestellt werden, oder von diesen verschieden sein. Die jeweilige Konfiguration von Anzeigepipeline 202 und Speicherschnittstelle 204 ist für die vorliegende Erfindung nicht von entscheidender Bedeutung, und eine ausführliche Beschreibung unterbleibt.The storage interface 204 is with one (in 2 not shown) memory coupled, eg graphics memory 124 to 1 storing pixel data by GPU 122 to be generated. The display pipeline 202 communicates with the memory interface 204 to access the stored pixel data. The display pipeline 202 provides the pixel data to one or both of the display heads 206a . 206b , In some embodiments, the display pipeline 202 The pixel data undergo various processing operations before sending them to the display heads 206a . 206b returns, and pixel data for display head 206a like pixel data, for display head 206b are determined, processed differently or not. In addition, pixel data like the display pipeline 202 for processing and delivery to display head 206a provided, the same as the pixel data, the display pipeline 202 for processing and delivery to display head 206b be provided or different from these. The particular configuration of display pipeline 202 and memory interface 204 is not critical to the present invention, and a detailed description will be omitted.

Die Digitalausgangsports 210, 211 mögen von im Allgemeinen herkömmlicher Konstruktion sein und mögen Schaltungen beinhalten, die die Pixeldaten modifizieren, um einem Standard für Digitalausgänge zu entsprechen. Zum Beispiel implementiert in einer Ausführungsform jeder der Ports 210, 211 TMDS (Transition Minimized Differential Signaling) für einen Standard-DVI-Konnektor (DVI = Digital Video Interface). In ähnlicher Weise können die Analogausgangsports 212, 213 von im Allgemeinen herkömmlicher Konstruktion sein und können z.B. einen Digital-Analog-Wandler beinhalten, der einem beliebigen Analogvideostandard entspricht, von dem auf dem Fachgebiet zahlreiche Beispiele bekannt sind. Man wird verstehen, dass das Vorhandensein, das Fehlen, die Anzahl oder die Natur bestimmter Digital- oder Analogausgangsports für die vorliegende Erfindung nicht von entscheidender Bedeutung ist.The digital output ports 210 . 211 may be of generally conventional construction and may include circuitry that modifies the pixel data to conform to a standard for digital outputs. For example, in one embodiment, each of the ports implements 210 . 211 TMDS (Transition Minimized Differential Signaling) for a standard DVI connector (DVI = Digital Video Interface). Similarly, the analog output ports 212 . 213 may be of generally conventional construction and may include, for example, a digital-to-analog converter that conforms to any analog video standard known in the art for numerous examples. It will be understood that the presence, absence, number or nature of certain digital or analog output ports is not critical to the present invention.

MEA-A-Port 214a und MEA-B-Port 214b mögen als Ausgangsports konfiguriert sein, die Pixeldaten, die von einem der Anzeigeköpfe 206a, 206b erzeugt werden, auf Ausgangsleitungen von GPU 122 legen. MEA-A-Port 214a und MEA-B-Port 214b mögen auch als Eingangsports konfiguriert sein, die externe Pixeldaten an Anzeigekopf A 206a oder Anzeigekopf B 206b liefern. In einigen Ausführungsformen sind MEA-A-Port 214a und MEA B 214b jeweils unabhängig entweder als Eingangsport oder Ausgangsport konfigurierbar. Die Konfiguration von MEA-A-Port 214a und MEA-B-Port 214b mag während des Systemstarts bestimmt oder zu verschiedenen Zeiten während des Systembetriebs dynamisch modifiziert werden. Zum Beispiel mag jeder MEA-Port ein Steuerregister beinhalten, das einen Wert speichert, der die Portkonfiguration festlegt, und je nach Wunsch kann ein neuer Wert beim Systemstart oder zu anderen Zeiten in das Register geschrieben werden.MEA-A port 214a and MEA-B port 214b may be configured as output ports, the pixel data from one of the display heads 206a . 206b be generated on output lines of GPU 122 lay. MEA-A port 214a and MEA-B port 214b may also be configured as input ports, the external pixel data on display head A 206a or display head B 206b deliver. In some embodiments, MEA-A ports 214a and MEA B 214b each independently configurable as either an input port or output port. The configuration of MEA-A port 214a and MEA-B port 214b may be determined during system startup or dynamically modified at various times during system operation. For example, each MEA port may include a control register that stores a value that defines the port configuration, and a new value may be written to the register at system startup or other times as desired.

Kopf A 206a und Kopf B 206b sind jeweils über Kreuzschiene 220 mit Ausgangsports 210213 sowie MEA-Ports 214a, 214b gekoppelt. In dieser Ausführungsform ist die Kreuzschiene 220 konfigurierbar, jedwede Verbindung von Kopf A 206a zu jedwedem der Ports 210213, 214a oder 214b zu unterstützen und gleichzeitig jedwede Verbindung von Kopf B 206b zu jedwedem der Ports 210213, 214a oder 214b zu unterstützen, der gegenwärtig nicht durch Kreuzschiene 220 mit Kopf A 206a verbunden ist. Zum Beispiel mag die GPU 122 gleichzeitig Pixeldaten von den Köpfen 206a, 206b zu zwei unterschiedlichen Monitoren steuern (z.B. über beliebige zwei der Digitalausgangsports 210, 211 und/oder Analogausgangsports 212, 213). Alternativ kann die GPU 122 gleichzeitig Pixel über einen der Ausgangsports 210213 zu einem Monitor und über MEA-A-Port 214a oder MEA-B-Port 214b zu einer anderen GPU steuern. In einigen Fällen mögen ein oder beide Anzeigeköpfe 206a, 206b frei sein, d.h. keine Pixel an irgendeinen Ausgangsport liefern.Head A 206a and head B 206b are each via crossbar 220 with output ports 210 - 213 as well as MEA ports 214a . 214b coupled. In this embodiment, the crossbar is 220 configurable, any connection from head A 206a to any of the ports 210 - 213 . 214a or 214b to support and at the same time any connection of head B 206b to any of the ports 210 - 213 . 214a or 214b currently not supported by crossbar 220 with head A 206a connected is. For example, the GPU likes 122 at the same time pixel data from the heads 206a . 206b to control two different monitors (eg via any two of the digital output ports 210 . 211 and / or analog output ports 212 . 213 ). Alternatively, the GPU 122 simultaneously pixels over one of the output ports 210 - 213 to a monitor and via MEA-A port 214a or MEA-B port 214b to another GPU. In some cases, one or both display heads may like one another 206a . 206b be free, ie not provide pixels to any output port.

Die MEA-Ports 214a, 214b mögen auch konfiguriert sein, Pixeldaten von einer anderen der GPUs 122 zu empfangen und die empfangenen Pixeldaten in Anzeigeköpfe 206a, 206b zu übermitteln. Jede GPU 122 weist außerdem in jedem Anzeigekopf 206a, 206b Pixelauswahllogik (unten beschrieben) auf, um ein „externes" Pixel, das von einem der MEA-Ports 214a, 214b empfangen wird, ein „internes" Pixel, das von ihrer eigenen Anzeigepipeline 202 empfangen wird, oder eine Kombination der internen und externen Pixel auszuwählen.The MEA ports 214a . 214b may also be configured to display pixel data from another of the GPUs 122 to receive and received pixel data in display heads 206a . 206b to convey. Every GPU 122 also indicates in each display head 206a . 206b Pixel selection logic (described below) to an "external" pixel from one of the MEA ports 214a . 214b is receiving an "internal" pixel from its own display pipeline 202 is received, or to select a combination of the internal and external pixels.

In einigen Ausführungsformen wird die Kreuzschiene 220 beim Systemstart konfiguriert; in anderen Ausführungsformen ist die Kreuzschiene 220 dynamisch konfigurierbar, sodass die Verbindungen während des Systembetriebs geändert werden können. Die Kreuzschiene 220 mag auch konfigurierbar sein, ankommende Pixeldaten, die an einem der MEA-Ports 214a, 214b empfangen werden, mit einem der Anzeigeköpfe 206a, 206b zu koppeln.In some embodiments, the crossbar is 220 configured at startup; in other embodiments, the crossbar is 220 dynamically configurable so that the connections can be changed during system operation. The crossbar 220 may also be configurable, incoming pixel data being sent to one of the MEA ports 214a . 214b be received, with one of the display heads 206a . 206b to pair.

3A ist ein Blockschaltbild der Pixelauswahllogik 300 im Anzeigekopf 206a einer GPU 122 gemäß einer Ausführungsform der vorliegenden Erfindung. Es versteht sich, dass Anzeigekopf 206b Pixelauswahllogik ähnlicher Konstruktion aufweisen mag. In einigen Ausführungsformen weist jeder Anzeigekopf 206a, 206b von GPU 122 seine eigene Pixelauswahllogik 300 auf. 3A Figure 4 is a block diagram of the pixel select logic 300 in the display head 206a a GPU 122 according to an embodiment of the present invention. It is understood that display head 206b May have pixel selection logic of similar construction. In some embodiments, each display head 206a . 206b from GPU 122 its own pixel selection logic 300 on.

Die Pixelauswahllogik 300 empfängt ein internes Pixel auf einem ersten Pfad 302 von Anzeigepipeline 202 nach 2. Wenn der MEA-A-Port 214a nach 2 (oder, in einigen Ausführungsformen, der MEA-B-Port 214b) als Eingangsport konfiguriert ist, empfängt die Pixelauswahllogik 300 auch ein externes Pixel auf einem zweiten Pfad 304.The pixel selection logic 300 receives an in ternes pixel on a first path 302 from display pipeline 202 to 2 , If the MEA-A port 214a to 2 (or, in some embodiments, the MEA-B port 214b ) is configured as an input port, receives the pixel selection logic 300 also an external pixel on a second path 304 ,

Das externe Pixel und das interne Pixel werden jeweils zu einer Pixelkombiniererschaltung 306 übertragen, die das externe Pixel und das interne Pixel mischt, um ein Mischpixel zu erzeugen. Die Pixelkombiniererschaltung 306 kann z.B. mit Hilfe herkömmlicher arithmetisch-logischer Schaltungen implementiert sein. In einer Ausführungsform beinhaltet die Pixelkombiniererschaltung 306 eine erste Divisionsschaltung 308, die das interne Pixel durch einen einer Anzahl von möglichen Divisoren (candidate divisors) (z.B. 1, 2, 4 usw.) dividiert; eine Additionsschaltung 310, die das interne Pixel (nach dem Dividieren) zum externen Pixel addiert, um ein Summenpixel zu erzeugen; eine Auswahlschaltung 312, die in Reaktion auf ein Steuersignal (PASW1) zwischen dem internen Pixel und dem Summenpixel auswählt; und eine zweite Divisionsschaltung 314, die das ausgewählte Pixel durch einen einer Anzahl von möglichen Divisor (z.B. 1, 2 usw.) dividiert; wobei das Ergebnis als Mischpixel auf einem Pfad 316 bereitgestellt wird.The external pixel and the internal pixel respectively become a pixel combiner circuit 306 which mixes the external pixel and the internal pixel to produce a composite pixel. The pixel combiner circuit 306 may for example be implemented using conventional arithmetic logic circuits. In one embodiment, the pixel combiner circuit includes 306 a first division circuit 308 dividing the internal pixel by one of a number of possible divisors (eg 1, 2, 4, etc.); an addition circuit 310 which adds the internal pixel (after dividing) to the external pixel to produce a sum pixel; a selection circuit 312 selecting in response to a control signal (PASW1) between the internal pixel and the sum pixel; and a second division circuit 314 dividing the selected pixel by one of a number of possible divisors (eg, 1, 2, etc.); the result being mixed pixels on a path 316 provided.

Das externe Pixel auf Pfad 304 und das Mischpixel auf Pfad 316 werden einer Auswahlschaltung 318 präsentiert (z.B. einem Multiplexer). In Reaktion auf ein Steuersignal (PASW2) wählt Auswahlschaltung 318 entweder das interne Pixel, das Mischpixel oder das externe Pixel zur Lieferung an einen Ausgangspfad 320 aus, der die Verbindung mit der Kreuzschiene 220 nach 2 herstellt.The external pixel on path 304 and the mix pixel on path 316 become a selection circuit 318 presented (eg a multiplexer). Selector circuit selects in response to a control signal (PASW2) 318 either the internal pixel, the blending pixel, or the external pixel for delivery to an output path 320 off, connecting to the crossbar 220 to 2 manufactures.

Die Signale PASW1 und PASW2 werden vorteilhafterweise durch (nicht explizit gezeigte) Steuerlogik in Anzeigekopf 206a generiert. In einigen Ausführungsformen reagiert diese Steuerlogik, die von im Allgemeinen herkömmlicher Konstruktion sein mag, auf Steuerinformationen, die durch ein Grafiktreiberprogramm generiert werden, das auf der CPU 102 nach 1 ausgeführt wird. Ähnliche Steuerinformationen mögen auch verwendet werden, um den Betrieb des Pixelkombinierers 308 zu steuern, z.B. durch Auswählen unter möglichen Divisoren für die Divisionsschaltungen 308, 314, um einen geeignet gewichteten Mittelwert für eine bestimmte Anwendung zu erzeugen. Der Fachmann ist in der Lage, geeignete Steuerlogik zum Generieren der PASW- und Pixelkombinierer-Steuersignale zu implementieren; dementsprechend unterbleibt eine ausführliche Beschreibung der Steuerlogik.The signals PASW1 and PASW2 are advantageously implemented by control logic (not explicitly shown) in the display head 206a generated. In some embodiments, this control logic, which may be of generally conventional design, responds to control information generated by a graphics driver program that resides on the CPU 102 to 1 is performed. Similar control information may also be used to control the operation of the pixel combiner 308 for example by selecting among possible divisors for the divisional circuits 308 . 314 to produce a suitably weighted average for a particular application. One skilled in the art will be able to implement appropriate control logic for generating the PASW and pixel combiner control signals; accordingly, a detailed description of the control logic is omitted.

3B ist ein Blockschaltbild einer Pixelauswahllogik 350 gemäß einer alternativen Ausführungsform der vorliegenden Erfindung. Die Pixelauswahllogik 350 ist im Allgemeinen der Pixelauswahllogik 300 nach 3A ähnlich, ist aber vorteilhafterweise mit der Fähigkeit konstruiert worden, Gamma-korrigierte Pixel zu mischen. Die Pixelauswahllogik 350 empfängt ein internes Pixel auf einem ersten Pfad 352 von Anzeigepipeline 202 nach 2. Das interne Pixel wird an einen Pixelkombinierer 358 übertragen. Wenn der MEA-A-Port 214a als Eingangsport konfiguriert ist, empfängt die Pixelauswahllogik 350 auch ein externes Pixel auf einem zweiten Pfad 354. Das externe Pixel wird ebenfalls an Pixelkombinierer 358 übertragen. 3B Figure 4 is a block diagram of pixel selection logic 350 according to an alternative embodiment of the present invention. The pixel selection logic 350 is generally the pixel selection logic 300 to 3A similar, but has been advantageously constructed with the ability to mix gamma-corrected pixels. The pixel selection logic 350 receives an internal pixel on a first path 352 from display pipeline 202 to 2 , The internal pixel is sent to a pixel combiner 358 transfer. If the MEA-A port 214a is configured as an input port, receives the pixel select logic 350 also an external pixel on a second path 354 , The external pixel is also sent to pixel combiners 358 transfer.

Der Pixelkombinierer 358 kombiniert die internen und externen Pixel, wobei als Ergebnis ein Mischpixel auf Signalpfad 360 bereitgestellt wird. Der Pixelkombinierer 358 mag eine Divisionsschaltung ähnlich Divisionsschaltung 306 nach 3A und/oder einen Addierer ähnlich Addiererschaltung 308 nach 3A beinhalten. Zusätzlich (oder stattdessen) mag der Pixelkombinierer 358 arithmetische Logik zum Mischen Gamma-korrigierter Pixel beinhalten, die auf Pfaden 352 und 354 empfangen werden. Wie auf dem Fachgebiet bekannt ist, justiert Gammakorrektur Pixelwerte in einem nicht linearem Maßstab, der eine lineare Intensitätsantwort in einem Anzeigegerät erzeugt, z.B. durch Umwandeln eines Pixelwerts P in Pγ für eine Konstante γ. (Bei typischen Anzeigegeräten ist die Konstante γ etwa gleich 2,0 bis 2,5.) In einer derartigen Ausführungsform mag bei γ ≈ 2,2 ein Gamma-korrigiertes Ausgangspixel Po berechnet werden mit Hilfe der Gleichung: Po γ = (4Pi γ + 4Pe γ + |Pi γ – Pe γ|)/4, (Gl. 1)wobei Pi γ und Pe γ für Gamma-korrigierte Pixel stehen, die auf den Pfaden 352 und 354 zugeführt werden. Der Fachmann wird erkennen, dass Gl. 1 eine brauchbare Näherung mit Hilfe einfacherer Hardware bereitstellt, als das Berechnen eines exakten Ergebnisses erfordern würde. (Zum Beispiel mögen Multiplikation mit und Division durch 4 als Bitverschiebungen implementiert werden.) Auch versteht sich, dass andere Näherungen an die Stelle gesetzt werden mögen.The pixel combiner 358 combines the internal and external pixels, resulting in a mixed pixel on signal path 360 provided. The pixel combiner 358 likes a division circuit similar to division circuit 306 to 3A and / or an adder similar to adder circuit 308 to 3A include. Additionally (or instead) the pixel combiner may like 358 Include arithmetic logic for mixing gamma-corrected pixels that are on paths 352 and 354 be received. As is known in the art, gamma correction adjusts pixel values on a non-linear scale that produces a linear intensity response in a display device, eg, by converting a pixel value P into P γ for a constant γ. (In typical display devices, the constant γ is approximately equal to 2.0 to 2.5.) In such an embodiment, at γ ≈ 2.2, a gamma corrected output pixel Po may be calculated using the equation: P O γ = (4P i γ + 4P e γ + | P i γ - P e γ |) / 4, (equation 1) where P i γ and P e γ represent gamma corrected pixels on the paths 352 and 354 be supplied. One skilled in the art will recognize that Eq. 1 provides a useful approximation using simpler hardware than would require computing an exact result. (For example, multiplication by and division by 4 may be implemented as bit shifts.) Also, it should be understood that other approximations may be substituted.

Erneut Bezug nehmend auf 3B empfängt ein Auswahlmultiplexer 362 das interne Pixel auf Pfad 352, das externe Pixel auf Pfad 354 und das Mischpixel auf Pfad 360. In Reaktion auf ein Pixelauswahlsignal (PASW/pixel selection signal – PSEL) wählt der Auswahlmultiplexer 362 einen dieser möglichen Pixel (candidate pixel) zur Lieferung an einen Ausgangspfad 364 aus, der die Verbindung mit der Kreuzschiene 220 nach 2 herstellt. Der Ausgangspfad 364 mag eine zweite Divisionsschaltung 366 beinhalten, die der Divisionsschaltung 314 nach 3A ähnlich sein mag. In einer alternativen Ausführungsform werden zwei Auswahlmultiplexer ähnlich jenen, die in 3A gezeigt sind, verwendet, um das Ausgangspixel auszuwählen, und die Divisionsschaltung 366 mag vor dem zweiten Auswahlmultiplexer platziert sein. Andere Auswahlschaltungs-Konfigurationen mögen ebenfalls verwendet werden.Referring again to 3B receives a selection multiplexer 362 the internal pixel on path 352 , the external pixels on path 354 and the mix pixel on path 360 , In response to a pixel selection signal (PASW), the selection multiplexer selects 362 one of these possible pixels (candidate pixel) for delivery to an output path 364 off, connecting to the crossbar 220 to 2 manufactures. The output path 364 like a second division circuit 366 include that of the division circuit 314 to 3A may be similar. In an alternative embodiment, two selection multiplexers will be similar to those used in 3A shown are used to to select the output pixel, and the division circuit 366 may be placed in front of the second selection multiplexer. Other select circuit configurations may also be used.

In einigen Ausführungsformen ist der Pixelkombinierer 350 konfigurierbar, mit entweder Gamma-korrigierten Pixeln oder nicht Gamma-korrigierten (linearen) Pixeln betrieben zu werden, wobei einfache Addition verwendet wird, wenn die Pixel nicht Gamma-korrigiert sind. Die Konfiguration wird vorteilhafterweise durch den Grafiktreiber während eines Einrichtungsvorgangs eingerichtet (z.B. beim Systemstart). Es versteht sich, dass Gamma-korrigierte Filter nicht erforderlich sind; in einigen Ausführungsformen mag eine beliebige Gammakorrektur nach der endgültigen Pixelauswahl angewendet werden.In some embodiments, the pixel combiner is 350 be configured to operate with either gamma corrected pixels or non-gamma corrected (linear) pixels, using simple addition if the pixels are not gamma corrected. The configuration is advantageously set up by the graphics driver during a setup process (eg at system startup). It is understood that gamma corrected filters are not required; In some embodiments, any gamma correction may be applied after the final pixel selection.

Verteilte Kantenglättung mit Hilfe mehrerer GPUsDistributed antialiasing using multiple GPUs

Die GPU 122 nach 2 mit Pixelauswahllogik 300 oder Pixelauswahllogik 350 ist vorteilhafterweise für eine verteilte Kantenglättungsoperation in einem System mit zwei oder mehr GPUs 122 verwendbar. 4A ist ein vereinfachtes Blockschaltbild eines Grafik-Subsystems 400, das zwei GPUs 122(0) und 122(1) in einer Master-Slave-Auslesekonfiguration aufweist. (Der Übersichtlichkeit wegen sind nur die aktiven Ports und Anzeigeköpfe gezeigt; in diesem Beispiel ist pro GPU nur ein Anzeigekopf in Benutzung:) Der MEA-A-Port 214a(1) einer Slave-GPU 122(1) ist als Ausgangsport konfiguriert, während der MEA-A-Port 214a(0) einer Master-GPU 122(0) als Eingangsport konfiguriert ist. MEA-A-Port 214a(1) ist mit MEA-A-Port 214a(0) gekoppelt, wodurch es ermöglicht wird, dass Ausgangspixel Pol von der Slave-GPU 122(1) zur Master-GPU 122(0) fließen.The GPU 122 to 2 with pixel selection logic 300 or pixel selection logic 350 is advantageously for a distributed antialiasing operation in a system with two or more GPUs 122 usable. 4A is a simplified block diagram of a graphics subsystem 400 , the two GPUs 122 (0) and 122 (1) in a master-slave readout configuration. (For clarity, only the active ports and display heads are shown, in this example only one display head is in use per GPU :) The MEA-A port 214a (1) a slave GPU 122 (1) is configured as the output port while the MEA-A port 214 (0) a master GPU 122 (0) is configured as an input port. MEA-A port 214a (1) is with MEA-A port 214 (0) coupled, thereby allowing output pixels P ol from the slave GPU 122 (1) to the master GPU 122 (0) flow.

Kopf A 206a(1) der Slave-GPU 122(1) leitet Pixel Pil, die durch die Anzeigepipeline 202(1) der Slave-GPU 122(1) bereitgestellt sind, als Ausgangspixel für den MEA-A-Port 214a(1) weiter. Die Ausgangspixel Pol von GPU 122(1) werden durch den MEA-A-Port 214a(0) der Master-GPU 122(0) empfangen, welche die Pixel an Anzeigekopf A 206a(0) weiterleitet. Im Kopf A 206a(0) arbeitet Pixelauswahllogik 300(0) (eine Instanz der Pixelauswahllogik 300 aus 3), um interne Pixel Pi0 von Anzeigepipeline 202(0) der Master-GPU 122(0), externe Pixel Pol, die in Anzeigepipeline 202(1) der Slave-GPU 122(1) ihren Ursprung haben, oder Summen (z.B. Pi0 + Pol) auszuwählen, die durch Additionsschaltung 308 zugeführt werden.Head A 206 (1) the slave GPU 122 (1) passes pixel P il through the display pipeline 202 (1) the slave GPU 122 (1) are provided as output pixels for the MEA-A port 214a (1) further. The output pixels P ol of GPU 122 (1) be through the MEA-A port 214 (0) the master GPU 122 (0) receive the pixels at display head A 206 (0) forwards. In the head A 206 (0) works pixel selection logic 300 (0) (an instance of pixel selection logic 300 out 3 ) to internal pixel P i0 of display pipeline 202 (0) the master GPU 122 (0) , external pixel P ol , in display pipeline 202 (1) the slave GPU 122 (1) have their origin, or to select sums (eg P i0 + P ol ), which by adding circuit 308 be supplied.

Kopf A 206a(0) der Master-GPU 122(0) liefert die ausgewählten Pixel (Pfinal) an einen Ausgangsport, in diesem Fall den Digitalausgangsport 210(0). Man wird verstehen, dass Kopf A 206a(0) der GPU 122(0) konfiguriert sein mag, Pixeldaten an MEA-B-Port 214b(0) (nicht explizit in 2C gezeigt) zu liefern, der mit einem MEA-Port einer dritten GPU 122 verbunden sein mag; die dritte GPU 122 wäre dann ein Master von GPU 122(0). Somit mag eine beliebige Anzahl von GPUs 122 in einer Daisy-Chain verbunden sein.Head A 206 (0) the master GPU 122 (0) returns the selected pixels (P final ) to an output port, in this case the digital output port 210 (0) , It will be understood that head A 206 (0) the GPU 122 (0) may be configured to pixel data to MEA-B port 214b (0) (not explicitly in 2C shown) with an MEA port of a third GPU 122 may be connected; the third GPU 122 would be a master of GPU 122 (0) , Thus, like any number of GPUs 122 be connected in a daisy chain.

Gemäß einer Ausführungsform der vorliegenden Erfindung mögen die GPUs 122(0) und 122(1) in einer extern verteilten Kantenglättungsbetriebsart (AA-Betriebsart) verwendet werden. In dieser Betriebsart rendert jede GPU 122 dasselbe Bild bei etwas Veränderung in einem Darstellungsparameter oder Abtastparameter derart, dass die Abtastorte, die durch GPU 122(0) verwendet werden, von den Abtastorten verschieden sind, die durch GPU 122(1) verwendet werden. Beispielsweise mögen für die zwei GPUs 122 unterschiedliche Darstellungsfelder oder Darstellungsebenennormalen definiert sein, die kleine Versätze in den Pixelbegrenzungen der zwei Bilder schaffen. Alternativ könnte dort, wo der Abtastort innerhalb eines Pixels konfigurierbar ist (z.B. durch den Grafiktreiber), jede GPU 122 konfiguriert sein, denselben Satz von Darstellungsparametern, aber einen unterschiedlichen Abtastort innerhalb jedes Pixels zu verwenden.According to one embodiment of the present invention, the GPUs like 122 (0) and 122 (1) in an externally distributed antialiasing mode (AA mode). In this mode, each GPU renders 122 the same image with some change in a presentation parameter or sample parameter such that the sample locations generated by the GPU 122 (0) are different from the sampling locations used by GPU 122 (1) be used. For example, like for the two GPUs 122 different representation fields or representation plane norms that create small offsets in the pixel boundaries of the two images. Alternatively, where the sample location is configurable within a pixel (eg, through the graphics driver), each GPU could 122 be configured to use the same set of presentation parameters but a different sample location within each pixel.

In einer verteilten AA-Betriebsart entsprechen die externen Pixel Pol und internen Pixel Pi0, die durch die Pixelauswahllogik 300(0) in Anzeigekopf 206a(0) von GPU 122(0) empfangen werden, unterschiedlichen Abtastorten für dasselbe Pixel des endgültigen Bildes. Mitteln der internen und externen Pixel stellt Kantenglättung mit der doppelten Anzeigeauflösung bereit. Im Besonderen ist Auswahlmultiplexer 310 konfiguriert, die Pixelsumme Pol + Pi0 auszuwählen, die durch Addiererschaltung 308 bereitgestellt ist, und Divisionsschaltung 316 ist konfiguriert, die ausgewählte Pixelsumme durch 2 zu dividieren, sodass das endgültige Pixel Pendg = (Pol + Pi0)/2 ist. Auf diese Weise mag die Pixelauswahllogik 300 einen 2-fach-AA-Filter implementieren.In a distributed AA mode, the external and internal ol pixel P pixels correspond P i0 by the pixel selection logic 300 (0) in display head 206 (0) from GPU 122 (0) are received, different scan locations for the same pixel of the final image. Means of internal and external pixels provides antialiasing with twice the display resolution. In particular, selection multiplexer 310 configured to select the pixel sum P ol + P i0 that is added by adder circuitry 308 is provided, and division circuit 316 is configured to divide the selected pixel sum by 2 such that the final pixel P endg = (P ol + P i0 ) / 2. In this way the pixel selection logic likes 300 implement a 2-fold AA filter.

Es ist anzumerken, dass die GPUs 122(0) und 122(1) auch in anderen verteilten Renderbetriebsarten einschließlich Betriebsarten betrieben werden können, in denen vom internen Pixel oder externen Pixel eines unter Ausschluss des anderen ausgewählt wird. Die einzelne Auswahl hängt von den Besonderheiten der verteilten Renderbetriebsart ab, z.B. davon, ob unterschiedliche GPUs 122 unterschiedliche Abschnitte desselben Einzelbilds oder unterschiedliche aufeinander folgende Einzelbilder rendern, und ist für die vorliegende Erfindung nicht relevant. Ferner mag dort, wo mehr als zwei GPUs 122 vorhanden sind, ein höherer Grad der Kantenglättung erreicht werden. Beispielsweise mag eine beliebige Anzahl von GPUs 122 mit Hilfe der jeweiligen MEA-A- und MEA-B-Ports derselben in einer Daisy-Chain verbunden werden, und jede GPU in der Daisy-Chain mag unter Verwendung zweckentsprechender Gewichtungsfaktoren ihr eigenes internes Pixel mit einem externen Pixel mischen, das von einer vorgeschalteten GPU empfangen wird.It should be noted that the GPUs 122 (0) and 122 (1) can also be operated in other distributed rendering modes, including modes in which one is selected from the internal pixel or external pixel to the exclusion of the other. The individual selection depends on the specifics of the distributed render mode, eg whether different GPUs 122 render different portions of the same frame or different consecutive frames, and is not relevant to the present invention. It also likes where more than two GPUs 122 are present, a higher degree of antialiasing can be achieved. For example, any number of GPUs may 122 using the respective MEA-A and MEA-B ports of the same connected in a daisy-chain, and each GPU in The daisy chain, using appropriate weighting factors, may mix its own internal pixel with an external pixel received from an upstream GPU.

Man wird verstehen, dass die Anzeigeköpfe, die Pixelauswahllogik und die verteilten AA-Operationen, die hierin beschrieben sind, veranschaulichend sind und dass Variationen und Modifikationen möglich sind. Beispielsweise unterstützen die hierin genannten Divisionsschaltungen die Division durch eine kleine Anzahl diskreter Divisoren. In anderen Ausführungsformen könnte die Divisionsschaltung eine größere Anzahl von Divisoren unterstützen (einschließlich willkürlich ausgewählter Divisoren), sodass eine breite Palette von Kantenglättungsfiltern unterstützt werden mag. Ferner mögen die Divisionsschaltungen an Orten platziert sein, die von jenen verschieden sind, die hierin beschrieben sind, und die Anzahl der Divisionsschaltungen mag modifiziert sein. Zum Beispiel mag eine Divisionsschaltung zusätzlich zum internen Pixelpfad oder statt seiner auf dem externen Pixelpfad platziert sein.you will understand that the display heads, the pixel selection logic and the distributed AA operations described herein are illustrative and that variations and modifications are possible. For example, support the division circuits mentioned herein divide by one small number of discrete divisors. In other embodiments could the division circuit a larger number of divisors support (including arbitrarily selected Divisors) to support a wide range of anti-aliasing filters like. Further like the division circuits are placed in locations different from those are described herein and the number of divide circuits may be modified. For example, a division circuit may be in addition to internal pixel path or instead of it's on the external pixel path be placed.

Die einzelne Konfiguration der Auswahlschaltung 318 mag ebenfalls modifiziert sein. Der Fachmann wird erkennen, dass jedwedes Schaltungselement oder jedwede Kombination von Schaltungselementen mit Fähigkeit zum steuerbaren Auswählen unter dem internen Pixel, dem externen Pixel und einem Mischpixel, das sowohl aus dem internen als auch dem externen Pixel abgeleitet ist, als Auswahlschaltung verwendet werden mag.The single configuration of the selection circuit 318 may also be modified. Those skilled in the art will recognize that any circuit element or combination of circuit elements capable of controllable selection among the internal pixel, the external pixel, and a composite pixel derived from both the internal and external pixels may be used as the selection circuit.

In der hier verwendeten Weise bezieht sich ein „Pixel" im Allgemeinen auf jedwede Repräsentation eines Farbwertes, der an irgendeinem Ort innerhalb eines Bildes abgetastet wird, oder auf eine Kombination derartiger Werte (z.B. wie durch die Additionsschaltung 308 nach 3 erzeugte). Renderpipelines in den GPUs generieren Pixel mit einer Nennauflösung (wobei Auflösung sich auf die Anzahl Pixel im Bild bezieht), die sich mit der Auflösung des Anzeigegeräts decken mag oder auch nicht. In einigen Ausführungsformen nimmt die Anzeigepipeline jedwede erforderliche Aufwärtsfilterung oder Abwärtsfilterung vor, um die Nennauflösung in die Anzeigeauflösung zu transformieren.As used herein, a "pixel" generally refers to any representation of a color value sampled at any location within an image or a combination of such values (eg, as by the adder circuit 308 to 3 generated). Rendering pipelines in the GPUs generate pixels with a nominal resolution (where resolution refers to the number of pixels in the image), which may or may not be the same as the resolution of the display device. In some embodiments, the display pipeline performs any required up-filtering or down-filtering to transform the nominal resolution to the display resolution.

Die Bezeichnung der MEA-Ports und Anzeigeköpfe hierin als „A" und „B" erfolgt allein der Einfachheit der Beschreibung halber. Es versteht sich, dass ein beliebiger MEA-Port mit einem beliebigen anderen MEA-Port verbunden sein mag und einer der Anzeigeköpfe einen der MEA-Ports steuern mag, wenn jener Port als Ausgangsport konfiguriert ist. Außerdem mögen einige GPUs mehr oder weniger als zwei MEA-Ports und/oder mehr oder weniger als zwei Anzeigeköpfe beinhalten.The Designation of the MEA ports and display heads herein as "A" and "B" is solely the Simplicity of description. It is understood that one any MEA port connected to any other MEA port and one of the display heads may control one of the MEA ports if that port is the output port is configured. Furthermore like some GPUs more or less than two MEA ports and / or more or less as two display heads include.

Im Allgemeinen mag ein beliebiger Port oder mögen beliebige Ports, der/die es einer GPU ermöglicht/ermöglichen, Pixeldaten mit einer anderen GPU auszutauschen, als E/A-Ports verwendet werden, um die vorliegende Erfindung praktisch umzusetzen. In einigen Ausführungsformen sind die MEA-Pörts außerdem für andere Zwecke als Kommunizieren mit einer anderen GPU umkonfigurierbar, wie oben erwähnt, Zum Beispiel mögen die MEA-Ports konfiguriert sein, um mit verschiedenen externen Geräten zu kommunizieren, wie z.B. TV-Codierern oder dergleichen; in einigen Ausführungsformen können DVO (die Digital-Video-Output-Schnittstelle der Intel Corporation) oder andere Standards für Videoausgabe unterstützt sein. In einigen Ausführungsformen wird die Konfiguration jedes MEA-Ports festgelegt, wenn ein Grafikadapter montiert wird; beim Systemstart benachrichtigt der Adapter das System hinsichtlich der Konfiguration seiner MEA-Ports. In anderen Ausführungsformen mögen die MEA-Ports durch dedizierte Eingangs- oder Ausgangsports ersetzt sein.in the In general, any port or like any ports, like the / enable / enable a GPU To exchange pixel data with a different GPU than I / O ports used to practice the present invention. In some embodiments are the MEA-Pörts Furthermore for others Reconfigurable purposes as communicating with another GPU, as mentioned above, For example like the MEA ports are configured to communicate with various external devices, such as. TV encoders or the like; in some embodiments can DVO (the Digital Video Output Interface of Intel Corporation) or other standards for Video output supported be. In some embodiments The configuration of each MEA port is set when using a graphics adapter is mounted; At system startup, the adapter notifies the system regarding the configuration of its MEA ports. In other embodiments like that MEA ports replaced by dedicated input or output ports be.

Die Konfiguration von E/A-Ports, Anzeigeköpfen und anderen Teilen eines Grafik-Subsystems kann durch eine Systemeinrichtungseinheit bewerkstelligt werden, die eingerichtet ist, mit allen Grafikprozessoren zu kommunizieren. In einigen Ausführungsformen ist die Systemeinrichtungseinheit in einem Grafiktreiberprogramm implementiert, das auf einer CPU eines Systems ausgeführt wird, das ein Mehrprozessor-Grafik-Subsystem beinhaltet. Es mag jedweder andere geeignete Agent, einschließlich einer beliebigen Kombination aus Hardware- und/oder Software-Komponenten, als Systemeinrichtungseinheit verwendet werden.The Configuration of I / O ports, display headers and other parts of a Graphics subsystem can be accomplished by a system device unit which is set up to communicate with all GPUs. In some embodiments is the system device unit in a graphics driver program implemented running on a CPU of a system, which includes a multi-processor graphics subsystem. It likes everyone other suitable agent, including any combination hardware and / or software components, be used as a system device unit.

Intern verteilte KantenglättungInternally distributed antialiasing

Gemäß einer Ausführungsform der vorliegenden Erfindung mögen die zwei Anzeigeköpfe 206a, 206b einer GPU 122 in einer Master-Slave-Konfiguration miteinander gekoppelt sein. In dieser Konfiguration kann die GPU 122 „intern verteiltes" AA-Filtern unter Verwendung von Pixelauswahllogik 300 im Anzeigekopf (z.B. Kopf A 206a) vornehmen, der als Master arbeitet.According to an embodiment of the present invention, the two display heads like 206a . 206b a GPU 122 be coupled together in a master-slave configuration. In this configuration, the GPU 122 "Internally distributed" AA filtering using pixel selection logic 300 in the display head (eg head A 206a ), who works as a master.

4 ist ein Blockschaltbild einer GPU 122, Anzeigekopf 206a mit Anzeigekopf 206b in einer Master-Slave-Konfiguration gekoppelt zeigend, gemäß einer Ausführungsform der vorliegenden Erfindung. Es versteht sich, dass GPU 122 nach 4 mit GPU 122 nach 2 identisch sein mag; in 4 sind nur die aktiven E/A-Ports gezeigt, und Kreuzschiene 220 ist nicht gezeigt. Die Anzeigepipeline 202 in 4 ist als zwei parallele Abschnitte aufweisend gezeigt: Anzeigepipeline A 402a, die Pixel an den Anzeigekopf 206a liefert, und Anzeigepipeline B 402b, die Pixel an den Anzeigekopf 206b liefert. Jede der Anzeigepipelines A 402a und B 402b mögen von im Allgemeinen herkömmlicher Konstruktion sein, und jede mag konfiguriert sein, verschiedene Pixelverarbeitungsoperationen vorzunehmen; je nach Wunsch mögen die zwei Anzeigepipelines 402a, 402b dieselben Operationen oder unterschiedliche Operationen vornehmen. 4 is a block diagram of a GPU 122 , Display head 206a with display head 206b shown coupled in a master-slave configuration, according to an embodiment of the present invention. It is understood that GPU 122 to 4 with GPU 122 to 2 may be identical; in 4 only the active I / O ports are shown and crossbar 220 is not shown. The display pipeline 202 in 4 is shown as having two parallel sections: Display Pipeline A 402a , the pixels to the display head 206a and display pipeline B 402b , the pixels to the display head 206b supplies. Each of the display pipelines A 402a and B 402b like from generally of conventional design, and each may be configured to perform various pixel processing operations; as desired, the two display pipelines like 402a . 402b perform the same operations or different operations.

Der MEA-B-Port 214b ist über einen Pixelübertragungspfad 400 mit dem MEA-A-Port 214a derselben GPU 122 gekoppelt. Der Pixelübertragungspfad 400 überträgt Pixel, die durch Anzeigekopf B 206b erzeugt worden sind, vom MEA-B-Port 214b zum MEA-A-Port 214a; MEA-A-Port 214a liefert die Pixel, die er empfängt, an den Anzeigekopf A 206a der GPU 122. Der Pixelübertragungspfad 400 magunter Verwendung jedweder geeigneter Signalübertragungstechniken implementiert sein; Beispiele sind unten beschrieben.The MEA-B port 214b is over a pixel transfer path 400 with the MEA-A port 214a the same GPU 122 coupled. The pixel transmission path 400 transmits pixels passing through display head B 206b generated from the MEA-B port 214b to the MEA-A port 214a ; MEA-A port 214a delivers the pixels it receives to the display head A. 206a the GPU 122 , The pixel transmission path 400 may be implemented using any suitable signal transmission techniques; Examples are described below.

Aus der Perspektive von Anzeigekopf A 206a sind die Pixel, die von Anzeigekopf B 206b empfangen werden, nicht von Pixeln zu unterscheiden, die von einer unterschiedlichen GPU empfangen werden. Somit mag zum Beispiel die Pixelauswahllogik 300 in Anzeigekopf A 206a betrieben werden, um als Ausgangspixel irgendeines unter einem „internen" Pixel (PA), das von Kopf A 206a stammt, einem „externen" Pixel (PB), das von Kopf B 206b stammt, oder einem Mischpixel auszuwählen, das durch Pixelkombiniererschaltung 308 aus den Pixeln PA und PB geschaffen wird. (Die Pixel PB sind gegenüber Anzeigekopf A 206a in dem Sinne „extern", dass, anders als die Pixel PA, die Pixel PB Anzeigekopf A 206a nicht durch Anzeigepipeline 402a bereitgestellt werden.)From the perspective of display head A 206a are the pixels of display head B 206b are not to be distinguished from pixels received from a separate GPU. Thus, for example, the pixel selection logic may be 300 in display head A 206a to operate as the output pixels of any one of an "internal" pixel (P A ) from head A 206a is an "external" pixel (P B ) coming from head B 206b or to select a blending pixel by pixel combiner circuit 308 is created from the pixels P A and P B. (The pixels P B are opposite the display head A 206a in the sense "external", that, unlike the pixels P A , the pixels P B display head A 206a not by display pipeline 402a to be provided.)

In dieser Konfiguration ist GPU 122 verwendbar, um „intern verteiltes" AA vorzunehmen, wobei die beiden Anzeigepipelines 402a, 402b Abtastwerte zuführen, die durch die Pixelauswahllogik 300 in Anzeigekopf A 206 gemischt werden. Während des Betriebs rendert eine (nicht explizit gezeigte) Renderpipeline von GPU 122 zwei Bilder derselben Szene bei etwas Veränderung in einem Darstellungsparameter oder Abtastparameter derart, dass die Abtastorte, die für die zwei Bilder verwendet werden, voneinander verschieden sind. Beispielsweise mögen für die zwei Bilder unterschiedliche Darstellungsfelder oder Darstellungsebenennormalen definiert sein, die kleine Versätze in den Pixelbegrenzungen der zwei Bilder schaffen. Alternativ könnte dort, wo der Abtastort innerhalb eines Pixels konfigurierbar ist (z.B. durch den Grafiktreiber), jedes Bild unter Verwendung desselben Satzes von Darstellungsparametern, aber eines unterschiedlichen Abtastortes innerhalb jedes Pixels generiert werden.In this configuration is GPU 122 usable to perform "internally distributed" AA, with the two display pipelines 402a . 402b Samples supplied by the pixel selection logic 300 in display head A 206 be mixed. During operation, a render pipeline (not explicitly shown) renders from GPU 122 two images of the same scene with some change in a display parameter or scan parameters such that the scan locations used for the two images are different from each other. For example, different viewports or display plane normals may be defined for the two images that create small offsets in the pixel boundaries of the two images. Alternatively, where the sample location within a pixel is configurable (eg, by the graphics driver), each image could be generated using the same set of presentation parameters but a different sample location within each pixel.

Eines der gerenderten Bilder wird in einem Einzelbildpuffer „A" 404 gespeichert, während das andere in einem Einzelbildpuffer „B" 406 gespeiehert wird. Die Einzelbildpuffer A 404 und B 406 mögen in einem beliebigen Speichergerät oder beliebigen Speichergeräten implementiert sein, einschließlich On-Chip-Speicher in GPU 122, Grafikspeicher 124 und/oder Systemspeicher 104 nach 1; die zwei Einzelbildpuffer können ja nach Wunsch sich im selben Speichergerät oder in unterschiedlichen Geräten befinden.One of the rendered images will be in a frame buffer "A" 404 stored while the other in a frame buffer "B" 406 is eingesiehert. The frame buffers A 404 and B 406 may be implemented in any storage device or storage devices, including on-chip storage in GPU 122 , Graphics memory 124 and / or system memory 104 to 1 ; The two frame buffers can be located in the same memory device or in different devices.

Die Anzeigepipeline B 402b liest Pixel aus dem Einzelbildpuffer B 406, nimmt verschiedene Verarbeitungsoperationen (die im Allgemeinen herkömmlicher Natur sein können) mit den Pixeln vor und leitet die resultierenden Pixel PB an den Anzeigekopf B 206b weiter. Der Anzeigekopf B 206b weist Pixelauswahllogik 300 auf, die arbeitet, um Pixel PB auszuwählen; jene Pixel werden über die (in 4 nicht explizit gezeigte) Kreuzschiene 220 an MEA-B-Port 214b weitergeleitet. Die Pixel PB werden über Pixelpfad 400 an den MEA-A-Port 214a derselben GPU 122 übertragen, welche die Pixel PB an Anzeigekopf A 206a weiterleitet.The display pipeline B 402b reads pixels from the frame buffer B 406 , takes various processing operations (which may be generally conventional in nature) with the pixels, and passes the resulting pixels P B to the display head B 206b further. The display head B 206b has pixel selection logic 300 working to select pixel P B ; those pixels will be over the (in 4 not explicitly shown) crossbar 220 to MEA-B port 214b forwarded. The pixels P B are over pixel path 400 to the MEA-A port 214a the same GPU 122 which transmit the pixels P B to the display head A 206a forwards.

Parallel zu dieser Operation liest die Anzeigepipeline A 206a Pixel aus dem Einzelbildpuffer A, nimmt verschiedene Verarbeitungsoperationen (die im Allgemeinen herkömmlicher Natur sein mögen) mit den Pixeln vor und leitet die resultierenden Pixel PA an den Anzeigekopf A 206a weiter. Anzeigepipeline B 402b, Anzeigekopf B 206b und Pixelübertragungspfad 400 sind vorteilhafterweise mit zweckentsprechender Zeitvorgabe konfiguriert, sodass Pixelwerte PA und PB, die demselben Bildschirmpixel entsprechen, zur selben Zeit (z.B. im selben Taktzyklus) an die Pixelauswahllogik 300 von Anzeigekopf A 206a geliefert werden.Parallel to this operation, the display pipeline A reads 206a Pixels from the frame buffer A, take various processing operations (which are generally conventional in nature) with the pixels, and pass the resulting pixels P A to the display head A. 206a further. Display pipeline B 402b , Display head B 206b and pixel transmission path 400 are advantageously configured with appropriate timing such that pixel values P A and P B corresponding to the same screen pixel at the same time (eg, in the same clock cycle) to the pixel selection logic 300 of display head A 206a to be delivered.

Innerhalb von Pixelkombiniererschaltung 308 addiert die Additionsschaltung 310 die Pixel PA und PB, wählt der Multiplexer 312 das Summenpixel aus und dividiert die Divisionsschaltung 314 die Summe durch 2; somit ist das Mischpixel auf Pfad 316 der Mittelwert der Pixel PA und PB. Multiplexer 318 wählt das Mischpixel als Ausgangspixel Pfinal aus. Anzeigekopf A 206a liefert das Ausgangspixel Pfinal an einen Ausgangsport (z.B. Digitalausgangsport 210) zur Übertragung zu einem Anzeigegerät.Within pixel combiner circuit 308 adds the addition circuit 310 the pixels P A and P B , the multiplexer selects 312 the sum pixel and divides the division circuit 314 the sum by 2; thus the merging pixel is on path 316 the average of pixels P A and P B. multiplexer 318 selects the merging pixel as the output pixel P final . Display head A 206a provides the output pixel P final to an output port (eg digital output port 210 ) for transmission to a display device.

Es ist anzumerken, dass, weil die Renderpipeline der GPU 122 jedes Einzelbild zweimal rendert, die maximale Einzelbildrate für die GPU 122, wenn sie in der hierin beschriebenen intern verteilten AA-Betriebsart arbeitet, im Allgemeinen niedriger als die maximale Einzelbildrate ist, wenn sie in einer Nicht-AA-Betriebsart arbeitet. In einigen Ausführungsformen ist die Einzelbildrate für diese intern verteilte AA-Betriebsart näherungsweise gleich der Hälfte der Einzelbildrate für die Nicht-AA-Betriebsart. Bei Echtzeitanimation hat, solang die Einzelbildrate für die intern verteilte AA-Betriebsart etwa gleich 30 Einzelbilder pro Sekunde (oder höher) ist, die Reduzierung der Einzelbildrate wenig oder keine nachteilige Auswirkung auf die Gleichmäßigkeit der Animation: Ferner ist die Bildqualität, die in einer Nicht-AA-Betriebsart erzeugt wird, im Allgemeinen niedriger als die Bildqualität, die in einer intern verteilten AA-Betriebsart erzeigt wird; somit erkauft das intern verteilte AA durch eine reduzierte Einzelbildrate eine höhere Bildqualität.It should be noted that because the render pipeline of the GPU 122 each frame renders twice, the maximum frame rate for the GPU 122 when operating in the internally distributed AA mode described herein, is generally lower than the maximum frame rate when operating in a non-AA mode. In some embodiments, the frame rate for this internally distributed AA mode is approximately equal to half the frame rate for the non-AA mode. For real-time animation, as long as the frame rate for the internally distributed AA mode is about 30 frames per second (or higher), the reduction has In addition, the image quality produced in a non-AA mode is generally lower than the image quality exhibited in an internally distributed AA mode; thus the internally distributed AA buys a higher image quality due to a reduced frame rate.

Auch ist anzumerken, dass Einzelbildraten, die mit Hilfe der hierin beschriebenen intern verteilten AA-Betriebsart erlangbar sind, mit Einzelbildraten vergleichbar sind, die mit Hilfe herkömmlicher AA-Techniken (z.B. Filterung in der Renderpipeline und/oder der Anzeigepipeline) in einer einzelnen GPU erlangbar sind. Herkömmliches AA mit einer einzelnen GPU erfordert die Renderpipeline der GPU, um ein einzelnes Bild zu generieren, aber mit mehreren Abtastungen pro Pixel. Die Verarbeitung einer größeren Anzahl von Abtastungen pro Pixel vermindert im Allgemeinen auch die Einzelbildrate relativ zu Nicht-AA-Betriebsarten im Austausch gegen verbesserte Bildqualität. Abhängig davon, wie das Rendern von Doppelbildern in der Renderpipeline gehandhabt wird, mag der Durchsatz einer GPU mit intern verteiltem AA mit dem Durchsatz einer GPU mit herkömmlichem AA vergleichbar sein.Also It should be noted that frame rates are calculated using the methods described herein internally distributed AA mode can be obtained, comparable with frame rates are using traditional AA techniques (e.g., rendering pipeline and / or display pipeline filtering) can be obtained in a single GPU. Conventional AA with a single GPU requires the rendering pipeline of the GPU to take a single image but with multiple scans per pixel. The processing of a larger number Scanning per pixel generally also reduces the frame rate relatively to non-AA modes in exchange for improved image quality. Depending on how to handle rendering double images in the rendering pipeline Like, the throughput of a GPU with internally distributed AA with the Throughput of a GPU with conventional AA be comparable.

AA-Filter höherer Ordnung mögen ebenfalls implementiert sein, und derartige Filter mögen eine Kombination von Einzelpipeline und intern verteilten Kantenglättungsoperationen einsetzen. In einer Ausführungsform beinhalten Anzeigepipeline A 402a und Anzeigepipeline B 402b je ein (nicht explizit gezeigtes) Ausgabefiltermodul (Filter-on-Scanout module, FOS-Modul), das einen internen N-fach-AA-Filter implementiert. Im Besonderen generiert für jede Version des Bildes, das gerendert wird, die Renderpipeline in GPU 122 eine Anzahl N (z.B. 2, 4 oder irgendeine andere Anzahl größer als 1) Abtastungen pro Pixel, z.B. unter Verwendung herkömmlicher Supersampling- und/oder Multisampling-Techniken. Die Abtastungen für eine Version des Bildes werden im Einzelbildpuffer A 404 gespeichert, während die Abtastungen für die andere Version des Bildes im Einzelbildpuffer B 406 gespeichert werden.Higher order AA filters may also be implemented, and such filters may employ a combination of single-pipeline and internally-distributed edge-smoothing operations. In one embodiment, display pipeline A includes 402a and display pipeline B 402b one (not explicitly shown) output filter module (Filter-on-Scanout module, FOS module), which implements an internal N-fold AA filter. Specifically, for each version of the image being rendered, the render pipeline is generated in GPU 122 a number N (eg, 2, 4, or any number greater than 1) samples per pixel, eg, using conventional supersampling and / or multisampling techniques. The samples for a version of the image are stored in the frame buffer A 404 while the samples for the other version of the image in the frame buffer B 406 get saved.

Die Anzeigepipeline 402a empfängt alle N Abtastungen für jedes Pixel vom Einzelbildpuffer A. Innerhalb der Anzeigepipeline 402a implementiert ein (in 4 nicht explizit gezeigtes) erstes Ausgabefiltermodul einen N-fach-AA-Filter, wobei die IV Abtastungen gemischt werden, um einen einzelnen Farbwert pro Pixel zu erzeugen. Der Farbwert, der durch das FOS-Modul ermittelt wird, wird (möglicherweise nach weiterer Verarbeitung) dem Anzeigekopf A 206a als Pixel PA zugeführt.The display pipeline 402a receives all N samples for each pixel from frame buffer A. Within the display pipeline 402a implements a (in 4 not explicitly shown) first output filter module an N-fold AA filter, wherein the IV samples are mixed to produce a single color value per pixel. The color value determined by the FOS module becomes (possibly after further processing) the display head A 206a supplied as pixel P A.

In ähnlicher Weise empfängt die Anzeigepipeline 402b alle N Abtastungen für jedes Pixel vom Einzelbildpuffer B 406. Innerhalb der Anzeigepipeline 402b implementiert ein (in 4 ebenfalls nicht explizit gezeigtes)zweites Austastfiltermodul einen N-fach-AA-Filter, wobei die N Abtastungen gemischt werden, um einen einzelnen Farbwert pro Pixel zu ermitteln. Der Farbwert, der durch das zweite FOS-Modul ermittelt wird, wird (möglicherweise nach weiterer Verarbeitung) dem Anzeigekopf B 206b als Pixel PB zugeführt.Similarly, the display pipeline receives 402b every N samples for each pixel from the frame buffer B 406 , Inside the display pipeline 402b implements a (in 4 also not explicitly shown) second blanking filter module an N-fold AA filter, wherein the N samples are mixed to determine a single color value per pixel. The color value determined by the second FOS module becomes the display head B (possibly after further processing) 206b supplied as pixel P B.

Somit mögen die Pixel PA und PB, die durch die Anzeigepipes 402a bzw. 402b erzeugt werden, jeweils gefilterte Pixel von einem N-fach überabgetasteten Bild sein. Solang die Abtastpunkte, die zum Beschicken von Einzelbildpuffer A 404 verwendet werden, nicht mir jenen zusammenfallen, die zum Beschicken von Einzelbildpuffer B 406 verwendet werden, resultiert das Kombinieren eines N-fach-AA-Filters in jeder Anzeigepipe 402a, 402b mit der oben beschriebenen intern verteilten AA-Filter-Technik in einem (2N)-fach-AA-Filter. Zum Beispiel mag, wenn das FOS-Modul in jeder Anzeigepipe 402a, 402b einen 4-fach-AA-Filter bereitstellt, die GPU 122 8-fach-AA bereitstellen.Thus, the pixels P A and P B passing through the display pipes are like 402a respectively. 402b be respectively filtered pixels from an N-fold oversampled image. As long as the sample points used to load frame buffer A 404 do not coincide with those used to load frame buffer B 406 are used, the combination of an N-fold AA filter results in each display pipe 402a . 402b with the internally distributed AA filtering technique described above in a (2N) -fold AA filter. For example, if the FOS module in each display pipe likes 402a . 402b a 4-way AA filter provides the GPU 122 Deploy 8x AA.

Ein bestimmtes FOS-Modul oder ein bestimmter AA-Filteralgorithmus ist für die vorliegende Erfindung nicht von entscheidender Bedeutung, und herkömmliche Module und Algorithmen mögen verwendet werden. Dementsprechend ist eine ausführliche Beschreibung unterblieben. In einigen Ausführungsformen wenden die FOS-Module in den Anzeigepipelines 402a und 402b identische Filteralgorithmen an, sodass das resultierende endgültige Bild nicht davon abhängig ist, welche Version des Bildes durch eine bestimmte Anzeigepipeline verarbeitet wird. Ferner mag N-fach-AA-Filterung früher im Bildgenerierungsprozess vorgenommen werden. Zum Beispiel könnte in einer alternativen Ausführungsform N-fach-AA-Filterung innerhalb der Renderpipeline von GPU 122 unter Verwendung herkömmlicher Techniken vorgenommen werden.A particular FOS module or AA filter algorithm is not critical to the present invention, and conventional modules and algorithms may be used. Accordingly, a detailed description has been omitted. In some embodiments, the FOS modules in the display pipelines 402a and 402b identical filtering algorithms so that the resulting final image does not depend on which version of the image is being processed by a particular display pipeline. Furthermore, N-fold AA filtering may be done earlier in the image generation process. For example, in an alternative embodiment, N-way AA filtering could be within the render pipeline of GPU 122 be made using conventional techniques.

In einigen Ausführungsformen werden die Abtastpunkte, die zum Beschicken unterschiedlicher Einzelbildpuffer verwendet werden, derart ausgewählt, dass keine zwei Abtastpunkte zusammenfallen. Beispielsweise stellt 5A ein „Raster"-Abtastmuster dar, das auf ein Pixel 500 angewendet wird. Das Pixel wird viermal an (durch Kreise gekennzeichneten) Orten 501504 innerhalb des Pixels abgetastet. 5B stellt ein „gedrehtes Raster"-Abtastmuster dar, das auf ein Pixel 500 angewendet wird. Das Pixel wird viermal an (durch Rauten gekennzeichneten) Orten 511514 abgestastet, die von den Orten 501504 verschieden sind.In some embodiments, the sample points used to load different frame buffers are selected such that no two sample points coincide. For example 5A is a "raster" sample that points to a pixel 500 is applied. The pixel becomes four times (indicated by circles) places 501 - 504 sampled within the pixel. 5B represents a "rotated raster" sample that points to a pixel 500 is applied. The pixel becomes four times (marked by diamonds) places 511 - 514 scraped off by the places 501 - 504 are different.

In einer Ausführungsform werden die Pixeldaten in Einzelbildpuffer A 404 unter Verwendung des Raster-Abtastmusters nach 5A generiert, während die Pixeldaten in Einzelbildpuffer B 406 unter Verwendung des gedrehten Raster- Abtastmusters nach 5B generiert werden. Das FOS-Modul in Anzeigepipe A 402a filtert die vier Abtastwerte (501504) zu einem einzelnen Wert PA, während das FOS-Modul in Anzeigepipe B 402b die vier Abtastwerte (511514) zu einem einzelnen Wert PB filtert. Die Pixelauswahllogik 300 in Anzeigekopf 206a mischt die Werte PA und PB wie oben beschrieben, um einen endgültigen Pixelwert zu erlangen, der einem Mittelwert über alle acht Abtastungen entspricht. Diese Vorgehensweise stellt dieselbe Kantenglättungsleistung wie ein einzelner Renderprozess bereit, der jedes Pixel in dem Acht-Punkte-Muster abtastet, das in 5C dargestellt ist.In one embodiment, the pixel data in frame buffer A 404 using the raster scan pattern 5A generated while the pixel data in frame buffer B 406 using the rotated raster scan pattern 5B to be generated. The FOS module in display pipe A 402a filters the four samples ( 501 - 504 ) to a single value P A while the FOS module in display pipe B 402b the four samples ( 511 - 514 ) filters to a single value P B. The pixel selection logic 300 in display head 206a mixes the values P A and P B as described above to obtain a final pixel value that corresponds to an average over all eight samples. This approach provides the same anti-aliasing performance as a single render process that scans each pixel in the eight-dot pattern that is in 5C is shown.

Man wird verstehen, dass die hierin beschriebene intern verteilte AA-Technik veranschaulichend ist und dass Variationen und Modifikationen möglich sind. Zum Beispiel weist die GPU 122, wie hierin beschrieben, exakt zwei Anzeigeköpfe auf, von denen jeder fähig ist, höchstens einen Ausgangsport zu steuern; als Folge davon mag, wenn beide Anzeigeköpfe für intern verteilte Kantenglättung verwendet werden, GPU 122 höchstens einen Pixelstrom an das/die Anzeigegeräte) liefern. Jedoch mögen Ausführungsformen der vorliegenden Erfindung in jedweder GPU implementiert sein, die mindestens zwei Anzeigeköpfe und geeignete Pixelauswahllogik und E/A-Ports aufweist. Dort, wo die GPU mehr als zwei Anzeigeköpfe aufweist, mag die GPU intern verteiltes AA unterstützen und mag außerdem zwei oder mehreren Anzeigegeräten unabhängige Pixelströme zuführen. Darüber hinaus mag es dort, wo die GPU mehr als zwei Anzeigeköpfe aufweist, möglich sein, alle Anzeigeköpfe der GPU gemeinsam in einer Master-Slave-Daisy-Chain zu verbinden, um die AA-Leistung der GPU weiter zu steigern.It will be understood that the internally distributed AA technique described herein is illustrative and that variations and modifications are possible. For example, the GPU points 122 as described herein, exactly two display heads, each capable of controlling at most one output port; as a result, if both display heads are used for internally distributed anti-aliasing, GPU may 122 at most one pixel stream to the display device (s)). However, embodiments of the present invention may be implemented in any GPU having at least two display heads and appropriate pixel selection logic and I / O ports. Where the GPU has more than two display heads, the GPU may support internally distributed AA and may also supply independent pixel streams to two or more display devices. Moreover, where the GPU has more than two display heads, it may be possible to connect all of the GPU's display heads together in a master-slave daisy chain to further increase the GPU's AA performance.

Ferner weist die GPU 122, wie hierin beschrieben, zwei MEA-Ports auf, von denen beide für intern verteiltes AA verwendet werden. In dieser Ausführungsform wäre weder Kopf A 206a noch Kopf B 206b als Master oder Slave für irgendeine andere GPU oder irgendeinen anderen Anzeigekopf verwendbar. In anderen Ausführungsformen mag die GPU zusätzliche MEA-Ports aufweisen, oder die MEA-Ports mögen eine Arbeitsbetriebsart aufweisen, die es einem Port erlaubt, gleichzeitig Pixel zu empfangen und Pixel zu senden, wobei Interkonnektivität mit anderen GPUs in Kombination mit intern verteiltem AA ermöglicht wird. Beispielsweise mag dort, wo ein dritter MEA-Port vorhanden ist, jener Port als Eingangsport, um externe Pixel von einer anderen GPU an den Anzeigekopf B 206b zu liefern, oder als Ausgangsport konfiguriert sein, um Pixel, die durch Anzeigekopf A 206a erzeugt werden, an eine andere GPU zu liefern. Die andere GPU in einer derartigen Ausführungsform mag oder mag nicht konfiguriert sein, ihre eigene intern verteilte AA-Filterung vorzunehmen.Furthermore, the GPU points 122 as described herein, two MEA ports, both of which are used for internally distributed AA. In this embodiment, neither head A would be 206a still head B 206b usable as master or slave for any other GPU or any other display head. In other embodiments, the GPU may have additional MEA ports, or the MEA ports may have a working mode that allows a port to simultaneously receive pixels and send pixels, allowing interconnectivity with other GPUs in combination with internally distributed AA , For example, where there is a third MEA port, that port may serve as an input port to external pixels from another GPU to the display head B 206b or to be configured as an output port to pass pixels through the A display head 206a be generated to another GPU. The other GPU in such an embodiment may or may not be configured to perform its own internally distributed AA filtering.

PixelübertragungpfadPixel transmission path

Nun werden Beispiele von Pixelübertragungspfad-Implementierungen gemäß Ausführungsformen der vorliegenden Erfindung beschrieben. Wie deutlich werden wird, mag der Pixelübertragungspfad hinsichtlich der GPU extern oder intern sein.Now become examples of pixel transfer path implementations according to embodiments of the present invention. As will become clear like the pixel transfer path be external or internal in terms of GPU.

6 stellt einen Grafikadapter 600 dar, der als Leiterplattenkarte implementiert und mit einem externen Pixelübertragungspfad konfiguriert ist, gemäß einer Ausführungsform der vorliegenden Erfindung. Der Grafikadapter 600 ist als Erweiterungskarte unter Verwendung einer Leiterplatte (Printed Circuit Board, PCB) 602 implementiert, die PCI-E oder einem anderen Verbindungsstandard entspricht. Die GPU 122 ist auf der Leiterplatte 602 montiert und elektrisch über (nicht gezeigte) Leitungsbahnen auf Leiterplatte 602 mit einem Systemverbinder 604 gekoppelt. Der Systemverbinder 604 ist konstruiert, um in einen PCI-E-Erweiterungssteckplatz (oder irgendeinen anderen Typ von Erweiterungssteckplatz) eingesetzt zu werden, wobei Kommunikation zwischen GPU 122 und dem Rest eines Computersystems ermöglicht wird, wie z.B. System 100 nach 1. Die GPU 122 ist ebenfalls elektrisch über (nicht gezeigte) Leitungsbahnen auf Leiterplatte 602 mit einem Anzeigeausgangsverbinder 606 gekoppelt. Der Anzeigeausgangsverbinder 606 ist vorteilhafterweise mit einem der Digitalausgangsports 210, 211 oder Analogausgangsports 212, 213 von GPU 122 gekoppelt (siehe 2). In einigen Ausführungsformen mag die Leiterplatte 602 mehrere Anzeigeausgangsverbinder 606 bereitstellen, die ein jeder mit einem Unterschiedlichen der Ausgangsports 210213 sind, wie im dem Fachgebiet bekannt ist. 6 Represents a graphics adapter 600 implemented as a circuit board card and configured with an external pixel transmission path, according to an embodiment of the present invention. The graphics adapter 600 is an expansion card using a printed circuit board (PCB) 602 that complies with PCI-E or any other connection standard. The GPU 122 is on the circuit board 602 mounted and electrically via (not shown) conductor tracks on the circuit board 602 with a system connector 604 coupled. The system connector 604 is designed to be inserted into a PCI-E expansion slot (or any other type of expansion slot), with communication between GPU 122 and the rest of a computer system, such as system 100 to 1 , The GPU 122 is also electrically conductive (not shown) on printed circuit board 602 with a display output connector 606 coupled. The display output connector 606 is advantageously with one of the digital output ports 210 . 211 or analog output ports 212 . 213 from GPU 122 coupled (see 2 ). In some embodiments, the circuit board may be like 602 several display output connectors 606 each one with a different output ports 210 - 213 are as known in the art.

Leiterplatte 602 beinhaltet außerdem zwei Grafikrandverbinder 614a, 614b, die von identischer Konstruktion sein können. Grafikrandverbinder 614a stellt über Leitungsbahnen 616 die Verbindung zum MEA-A-Port 214a von GPU 122 her, während Grafikrandverbinder 614b über Leitungsbahnen 618 die Verbindung zum MEA-B-Port 214b von GPU 122 herstellt. Jeder Grafikrandverbinder 614a, 614b ist für elektrische und mechanische Verbindung mit einer lösbaren Konnektoreinrichtung konfiguriert. In einigen Ausführungsformen sind die Grafikrandverbinder 614a und 614b von identischer Konfiguration, wobei es möglich ist, diese austauschbar zu verwenden.circuit board 602 also includes two graphics edge connectors 614a . 614b that can be of identical construction. Graphics edge connector 614a poses via cable ways 616 the connection to the MEA-A port 214a from GPU 122 fro, while graphics edge connectors 614b via cableways 618 the connection to the MEA-B port 214b from GPU 122 manufactures. Each graphic edge connector 614a . 614b is configured for electrical and mechanical connection with a detachable connector device. In some embodiments, the graphics edge connectors are 614a and 614b of identical configuration, where it is possible to use them interchangeably.

Der Grafikadapter 600 ist in einer Ausführungsform zur Verwendung in verteilten Rendersystemen konstruiert, in denen zwei oder mehrere GPUs zusammenarbeiten, um unterschiedliche Abschnitte einer Renderaufgabe vorzunehmen. Derartige Systeme können z.B. in einer Split-Frame-Betriebsart, in der jede GPU einen unterschiedlichen Teil eines Bildes rendert, in einer Alternate-Frame-Betriebsart, in der jede GPU unterschiedliche Bilder in einer Folge von Bildern rendert, oder in einer verteilten Kantenglättungs-Betriebsart betrieben werden. In jeder dieser Betriebsarten empfängt eine GPU (der Master) Pixel von einer anderen GPU (dem Slave), und die Pixelauswahllogik 300 in der Master-GPU wählt ein Pixel zur Anzeige aus, wie oben beschrieben. GPUs auf unterschiedlichen Grafikadaptern 600 sind vorteilhafterweise über jeweilige Grafikrandverbinder 614a, 614b unter Verwendung einer geeigneten Verbindungseinrichtung verbunden.The graphics adapter 600 In one embodiment, it is constructed for use in distributed rendering systems in which two or more GPUs work together to make different portions of a rendering task. Such systems may, for example, in a split-frame mode in which each GPU a different part of a Bil in alternate frame mode, where each GPU renders different images in a sequence of images, or in a distributed antialiasing mode. In each of these modes, one GPU (the master) receives pixels from another GPU (the slave), and pixel selection logic 300 in the master GPU selects a pixel for display as described above. GPUs on different graphics adapters 600 are advantageously via respective graphics edge connectors 614a . 614b connected using a suitable connection device.

In einer Ausführungsform der vorliegenden Erfindung ist eine lösbaren Konnektoreinrichtung 620 derart aufgebaut und geformt, dass sie Grafikrandverbinder 614a und 614b desselben Grafikadapters 600 verbinden kann, wie in 6 gezeigt. Verbindungseinrichtung 620 mag z.B. ein Flachbandkabel oder einer Leiterplatte mit entlang ihrer Länge aufgebrachten Leitungsbahnen mit Anschlüssen an jedem der beiden Enden zum Aufnehmen eines Grafikrandverbinders 614a, 614b sein, wobei ermöglicht wird, dass die Grafikrandverbinder 614a, 614b miteinander verbunden werden.In one embodiment of the present invention is a releasable connector device 620 constructed and shaped to be graphic edge connectors 614a and 614b same graphics adapter 600 can connect as in 6 shown. connecting device 620 For example, a ribbon cable or printed circuit board may have line paths formed along its length with terminals at each end for receiving a graphics edge connector 614a . 614b while allowing the graphics edge connectors 614a . 614b be connected to each other.

In dieser Ausführungsform nutzt die Verbindungseinrichtung 620 die Zeitcharakteristik des verteilten Rendersystems aus, das durch Grafikadapter 600 unterstützt wird, um einen Pixelübertragungspfad 400 (4) einzurichten. Im Besonderen weist in einer verteilten Renderkonfiguration ein Pixelübertragungspfad von MEA-B-Port 214b von GPU 122 zu einem MEA-A-Port (oder MEA-B-Port) einer GPU auf einem unterschiedlichen Grafikadapter 600 eine charakteristische Übertragungszeit auf, die aus der Länge der Leitungsbahnen 618 und/oder 616 und der Verbindungseinrichtung zwischen den zwei Adaptern sowie jedweden elektronischen Bauteilen (FIFOs, Latches usw.) resultiert, die entlang irgendeines Segments des Übertragungspfades beinhaltet sein mögen. Bei verteilten Renderoperationen ist die Übertragung von Pixeln vom Anzeigekopf der Slave-GPU zum Anzeigekopf der Master-GPU vorteilhafterweise derart koordiniert, dass die Pixel von der Slave-GPU und der Master-GPU zur im Wesentlichen selben Zeit (z.B. während desselben Taktzyklus) am Anzeigekopf der Master-GPU ankommen.In this embodiment, the connection device uses 620 the time characteristic of the distributed rendering system by graphic adapter 600 is supported to a pixel transfer path 400 ( 4 ). In particular, in a distributed render configuration, a pixel transfer path is from MEA-B port 214b from GPU 122 to an MEA-A port (or MEA-B port) of a GPU on a different graphics adapter 600 a characteristic transmission time based on the length of the conductor paths 618 and or 616 and the connection means between the two adapters as well as any electronic components (FIFOs, latches, etc.) that may be included along any segment of the transmission path. In distributed rendering operations, the transfer of pixels from the slave GPU display head to the master GPU display head is advantageously coordinated such that the pixels from the slave GPU and the master GPU are at substantially the same time (eg, during the same clock cycle) at the display head arrive at the master GPU.

Solang die Verbindungseinrichtung 620 eine Übertragungszeit bereitstellt, die zu jener einer Verbindungseinrichtung für verteiltes Rendern passt, die unterschiedliche GPUs verbindet, liefert der Pixelübertragungspfad, der durch Verbindungseinrichtung 620 bereitgestellt ist, Signale mit der korrekten Zeitabstimmung an MEA-A-Port 214a. Somit erfordert die Implementierung intern verteilten AAs mit Hilfe einer externen Verbindungseinrichtung keine internen Modifikationen an einer GPU 122 oder einer Adapterkarte 600, die ursprünglich für verteiltes Rendern konstruiert worden ist.As long as the connecting device 620 provides a transmission time matching that of a distributed rendering connection device connecting different GPUs, the pixel transmission path provided by the connection means 620 is provided, signals with the correct timing to MEA-A port 214a , Thus, the implementation of internally distributed AAs using an external connector does not require internal modifications to a GPU 122 or an adapter card 600 which was originally constructed for distributed rendering.

Man wird verstehen, dass die hierin beschriebenen Grafikadapter und Verbindungseinrichtungen veranschaulichend sind und dass Variationen und Modifikationen möglich sind. Die Form, das Layout und die Materialzusammensetzung der Adapter und Verbindungseinrichtungen mögen gegenüber jenen modifiziert sein, die hierin gezeigt und beschrieben sind, und zum Übertragen von Daten zwischen MEA-Ports kann jedwedes Kommunikationsprotokoll implementiert sein.you will understand that the graphics adapters and Connecting devices are illustrative and that variations and Modifications possible are. The shape, the layout and the material composition of the adapters and Like connecting devices across from be modified to those shown and described herein and to transfer Data between MEA ports can be implemented in any communication protocol be.

In einer alternativen Ausführungsform mag die Verbindungseinrichtung 620 als Teil von Leiterplatte 602 implementiert sein, z.B. unter Verwendung von Leitungsbahnen, um Pfad 618 mit Pfad 616 zu verbinden. In dieser Ausführungsform werden Steuereinrichtungen (z.B. eine entfernbare Steckbrücke oder ein treibergesteuerter Schalter) vorteilhafterweise verwendet, um Datenübertragungen von Pfad 618 zu Pfad 616 oder umgekehrt zu ermöglichen oder zu sperren.In an alternative embodiment, the connection device may 620 as part of circuit board 602 be implemented, for example, using pathways to path 618 with path 616 connect to. In this embodiment, controllers (eg, a removable jumper or a driver-controlled switch) are advantageously used to route data transmissions from path 618 to path 616 or vice versa to enable or disable.

Auch ist anzumerken, dass in einigen Ausführungsformen das Vorhandensein von Verbindungseinrichtung 620 oder einer anderen externen Verbindung zwischen zwei MEA-Ports derselben GPU nicht automatisch intern verteiltes AA ermöglicht. Wie oben beschrieben, bestimmt der Betrieb der Pixelauswahllogik 300, ob intern verteiltes AA vorgenommen wird; der Betrieb der Pixelauswahllogik 300 wird über den Grafiktreiber gesteuert.It should also be noted that in some embodiments, the presence of connector means 620 or another external connection between two MEA ports of the same GPU does not automatically allow internally distributed AA. As described above, the operation of the pixel select logic determines 300 whether internally distributed AA is made; the operation of pixel selection logic 300 is controlled by the video driver.

In einer anderen alternativen Ausführungsform ist der Pixelübertragungspfad, der für intern verteiltes AA verwendet wird, innerhalb der GPU eingebaut. 7 ist ein Blockschaltbild einer GPU 700 gemäß einer derartigen Ausführungsform der vorliegenden Erfindung. Die GPU 700 ist im Allgemeinen der GPU 122 nach 4 ähnlich, und es sind ähnliche Bezugszeichen verwendet worden, um einander entsprechende Komponenten zu kennzeichnen. Anders als GPU 122 beinhaltet GPU 700 einen internen Pixelübertragungspfad, der einen Ausgangspfad 702 von Anzeigekopf B 206b mit einem externen Pixeleingangspfad 704 von Anzeigekopf A 206a verbindet.In another alternative embodiment, the pixel transmission path used for internally distributed AA is incorporated within the GPU. 7 is a block diagram of a GPU 700 according to such an embodiment of the present invention. The GPU 700 is generally the GPU 122 to 4 Similarly, and similar reference numerals have been used to identify corresponding components. Unlike GPU 122 includes GPU 700 an internal pixel transfer path that provides an output path 702 of display head B 206b with an external pixel input path 704 of display head A 206a combines.

In dieser Ausführungsform beinhaltet der Pixelübertragungspfad eine Auswahleinheit (z.B. einen Multiplexer) 706, der zwischen dem Pixel von Anzeigekopf B 206b und einem Pixel auswählt, das über Kreuzschiene 220 auf einem Pfad 708 von einem der MEA-Ports, z.B. MEA-A-Port 214a empfangen wird. Das ausgewählte Pixel wird dem externen Pixeleingangspfad 704 von Anzeigekopf A 206a bereitgestellt.In this embodiment, the pixel transmission path includes a selection unit (eg, a multiplexer) 706 that is between the pixel of display head B 206b and select a pixel via crossbar 220 on a path 708 from one of the MEA ports, eg MEA-A port 214a Will be received. The selected pixel becomes the external pixel input path 704 of display head A 206a provided.

Die Auswahleinheit 706 arbeitet in Reaktion auf ein (nicht explizit gezeigtes) Steuersignal. Das Steuersignal konfiguriert die Auswahleinheit 706, das Pixel auf Pfad 702 in dem Fall auszuwählen, dass GPU 700 in der intern verteilten AA-Betriebsart arbeitet, und das Pixel auf Pfäd 708 in dem Fall auszuwählen, dass Anzeigekopf A 206a von GPU 700 als Master für eine andere GPU arbeitet. Dieses Steuersignal mag in Reaktion auf Befehle generiert werden, die durch den Grafiktreiber ausgegeben werden, wobei ein Benutzer (oder Anwendungsentwickler) in die Lage versetzt wird, intern verteiltes AA durch eine zweckentsprechende Software-Schnittstelle zu ermöglichen oder zu sperren, ohne auf die Grafik-Hardware zugreifen zu müssen.The selection unit 706 works in reaction to a (not explicitly shown) control signal. The control signal configures the selection unit 706 , the pixel on path 702 in the case select that GPU 700 works in the internally distributed AA mode, and the pixel on p 708 in the event that display head A 206a from GPU 700 works as a master for another GPU. This control signal may be generated in response to commands issued by the graphics driver, enabling a user (or application developer) to enable or disable internally distributed AA through an appropriate software interface, without affecting the graphics processor. To access hardware.

Es ist anzumerken, dass in dieser Ausführungsform der Pfad 702 von Anzeigekopf B 206b zur Auswahlschaltung 706 FIFOs, Latches und andere Zeitsteuergeräte beinhalten mag, sodass Pixel von Anzeigekopf B 206b die Auswahlschaltung 706 mit derselben Zeitabstimmung erreichen, als es bei Pixeln der Fall sein würde, die von einer externen GPU in einer verteilten Renderbetriebsart ankommen. Dort, wo dies der Fall ist, ist die betriebsmäßige Zeitabstimmung von Anzeigekopf B 206b und Anzeigekopf A 206a unabhängig davon, ob die GPU in einer verteilten Renderbetriebsart oder einer intern verteilten AA-Betriebsart befindet.It should be noted that in this embodiment the path 702 of display head B 206b to the selection circuit 706 FIFOs, latches, and other timing devices may include pixels from display head B 206b the selection circuit 706 with the same timing as it would be the case with pixels arriving from an external GPU in a distributed rendering mode. Where this is the case, the operational timing of display head B is 206b and display head A 206a regardless of whether the GPU is in a distributed rendering mode or an internally distributed AA mode.

Ein interner Pixelübertragungspfad, obgleich er Modifikationen an der GPU erfordert, erfordert keine Verwendung irgendeines der E/A-Ports der GPU. Somit mag zum Beispiel Anzeigekopf A 206a von GPU 700 zum Slave eines Anzeigekopfes in einer anderen GPU werden, oder Anzeigekopf B 206b von GPU 700 mag Master für einen Anzeigekopf in einer anderen GPU sein, während GPU 700 fortfährt, intern verteilte AA-Filterung vorzunehmen.An internal pixel transfer path, although requiring modifications to the GPU, does not require the use of any of the GPU's I / O ports. Thus, for example, display head A may 206a from GPU 700 become the slave of a display head in another GPU, or display head B 206b from GPU 700 May be master for a display head in another GPU while GPU 700 continues to perform internally distributed AA filtering.

Man wird verstehen, dass der hierin beschriebene interne Pixelübertragungspfad veranschaulichend ist und dass Variationen und Modifikationen möglich sind. Zum Beispiel mag ein „Rückwärts"-Pixelübertragungspfad (von Anzeigekopf A 206a zu Anzeigekopf B 206b) zusätzlich zum gezeigten Pfad bereitgestellt sein.It will be understood that the internal pixel transfer path described herein is illustrative and that variations and modifications are possible. For example, a "reverse" pixel transmission path (from display head A 206a to display head B 206b ) may be provided in addition to the path shown.

Weitere AusführungsformenFurther embodiments

Wie oben beschrieben, stellen Ausführungsformen der vorliegenden Erfindung verteilte Kantenglättungstechniken für Mehr-GPU-Systeme sowie eine einzelne GPU mit der Fähigkeit bereit, Auslesetechniken und Komponenten zu verwenden, die im Allgemeinen mit verteiltem Rendern über mehrere GPUs hinweg in Zusammenhang stehen, um AA-gefilterte Bilder zu generieren. Über eine geeignete Grafiktreiberschnittstelle mag ein Endbenutzer einer zweckentsprechend konfigurierten GPU wählen, intern verteiltes AA für jedwedes Grafikprogramm ungeachtet des AAs (oder dessen Fehlens) zu ermöglichen, das im Programm selbst bereitgestellt ist. Dort, wo das Programm AA bereitstellt, mag intern verteiltes AA wie hierin beschrieben verwendet werden, um die AA-Auflösung zu erhöhen (z.B. zu verdoppeln).As described above, provide embodiments The present invention distributes anti-aliasing techniques to multiple GPU systems as well as a single GPU with the ability ready extraction techniques and to use components that are generally distributed Render over Several GPUs are related to AA-filtered images to generate. about a suitable video driver interface may be appropriate for an end user choose configured GPU, internally distributed AA for any graphics program regardless of the AA (or its lack) to enable which is provided in the program itself. Where the program is AA may like internally distributed AA as described herein used to the AA resolution to increase (e.g., to double).

Obgleich die Erfindung in Bezug auf bestimmte Ausführungsformen beschrieben wurde, wird ein Fachmann erkennen, dass zahlreiche Modifikationen möglich sind. Zum Beispiel mag, obgleich die Erfindung unter Bezug auf AA-Filterung beschrieben wurde, die hierin beschriebene Kopplung zwischen Anzeigeköpfen einer einzelnen GPU oder zwischen Anzeigeköpfen mehrerer GPUs in anderen Weisen verwendet werden.Although the invention has been described in relation to certain embodiments A person skilled in the art recognizes that numerous modifications are possible. For example, although the invention may be in terms of AA filtering described the coupling between display heads of a single GPU or between display heads of multiple GPUs in other ways be used.

In einer alternativen Ausführungsform mag verteilte Filterung verwendet werden, um Stereoanaglyphe zu generieren. Wie auf dem Fachgebiet bekannt ist, überlagert eine Stereoanaglyphe eine Ansicht einer Szene mit dem linken Auge und eine Ansicht mit dem rechten Auge, um ein einzelnes Bild zu erzeugen. Typischerweise werden unterschiedliche Farbfilter auf die Pixel für das linke Auge und die Pixel für das rechte Auge angewendet; zum Beispiel können die Pixel für das rechte Auge mit einem rotdurchlässigen Filter gefiltert werden, währen die Pixel für das linke Auge unter Verwendung eines blaugründurchlässigen Filters gefiltert werden. Aufgrund eines Darstellungsfeld- oder Betrachtungspunktversatzes zwischen den Ansichten mit dem linken und dem rechten Auge liegen das Pixel für das linke Auge und das Pixel für das rechte Auge, die demselben Punkt in der Szene entsprechen, an unterschiedlichen Stellen in der Anaglyphe. Somit erscheint für das bloße Auge die Anaglyphe als Doppelbild mit verfälschten Farben. Um das Bild richtig zu betrachten, setzt ein Betrachter eine spezielle Brille mit einem linken Glas, das die Farben ausfiltert, die für die Pixel für das rechte Auge verwendet werden, und einem rechten Glas auf, das die Farben ausfiltert, die für die Pixel für das linke Auge verwendet werden.In an alternative embodiment May Distributed Filtering be used to add stereo anaglyph to generate. As is known in the art, a stereoanaglyph overlays a view of a scene with the left eye and a view with the right eye to create a single image. typically, will be different color filters on the pixels for the left Eye and the pixels for the right eye applied; For example, the pixels for the right Eye with a rotdurchlässigen Filters are filtered while the pixels for the left eye is filtered using a blue-opaque filter. Due to a viewport or viewpoint offset lie between the views with the left and the right eye the pixel for the left eye and the pixel for the right eye corresponding to the same point in the scene different places in the anaglyph. Thus, it appears to the naked eye the anaglyph as a double image with distorted colors. To the picture To look properly, a viewer sets a special pair of glasses with a left-hand glass that filters out the colors used for the pixels for the right Eye are used, and a right glass on that the colors filters out for the pixels for the left eye can be used.

Bezug nehmend auf 4A mag eine (nicht gezeigte) Renderpipeline von GPU 122(0) verwendet werden, um eine Ansicht mit dem rechten Auge einer Szene zu generieren, während eine (nicht gezeigte) Renderpipeline von GPU 122(1) eine Ansicht mit dem linken Auge derselben Szene generiert. Es mögen bekannte Techniken verwendet werden, um Renderparameter für die Ansichten mit dem rechten und dem linken Auge zu bestimmen.Referring to 4A likes a rendering pipeline (not shown) from GPU 122 (0) used to generate a view with the right eye of a scene while a render pipeline (not shown) of GPU 122 (1) generates a view with the left eye of the same scene. Known techniques may be used to determine rendering parameters for the right and left eye views.

Die Pixel für das rechte Auge Pil und die Pixel für das linke Auge Pi0 werden vorteilhafterweise entweder in den jeweiligen Renderpipelines der GPUs 122(0) und 122(1) oder in den jeweiligen Anzeigepipelines 202(0) und 202(1) farbgefiltert. In einer Ausführungsform ist die Pixelfarbe mit Hilfe eindeutiger roter, grüner und blauer Farbkomponenten festgelegt. Pixel für das rechte Auge mögen z.B. durch Reduzieren der Rotkomponente auf null und Beibehalten der Grün- und Blaukomponenten gefiltert werden; in ähnlicher Weise mögen Pixel für das linke Auge durch Reduzieren der Grün- und Blaukomponenten auf null und Beibehalten der Rotkomponente gefiltert werden.The pixels for the right eye P il and the pixels for the left eye P i0 are advantageously either in the respective rendering pipelines of the GPUs 122 (0) and 122 (1) or in the respective display pipelines 202 (0) and 202 (1) color filtered. In one embodiment, the pixel color is fixed using unique red, green, and blue color components sets. For example, pixels for the right eye may be filtered by reducing the red component to zero and maintaining the green and blue components; similarly, pixels for the left eye may be filtered by reducing the green and blue components to zero and maintaining the red component.

Die Pixel für das rechte Auge Pil werden an Anzeigekopf A 206a(1) von GPU 122(1) geliefert. Der Anzeigekopf 206(a) leitet die Pixel Pil an MEA-A-Port 214a(1) weiter, der sie als Pixel Pol an MEA-A-Port 214a(0) von GPU 122(0) liefert. Der Anzeigekopf 206a(0) empfängt somit die Pixel für das rechte Auge als externe Pixel.The pixels for the right eye P il be on display head A 206 (1) from GPU 122 (1) delivered. The display head 206 (a) passes the pixel P il of MEA-A-Port 214a (1) Next, put it as Pixel P ol to MEA-A port 214 (0) from GPU 122 (0) supplies. The display head 206 (0) thus receives the pixels for the right eye as external pixels.

Die Pixel für das linke Auge Pi0 werden als interne Pixel an Anzeigekopf 206a(0) geliefert. Es ist anzumerken, dass wegen des Versatzes zwischen den Darstellungsfeldern oder Betrachtungspunkten, die zum Generieren der Ansichten mit dem rechten und dem linken Auge verwendet werden, einander entsprechende Pixel für das linke und das rechte Auge, die durch die Pixelauswahllogik 300 verarbeitet werden, Pixel am selben Ort im Anaglyphen-Einzelbild sind; Im Allgemeinen stehen einander entsprechende Pixel für das linke und das rechte Auge für unterschiedliche Orte in der Szene.The pixels for the left eye P i0 are displayed as internal pixels on the display head 206 (0) delivered. It should be noted that because of the offset between the viewports or viewpoints used to generate the views with the right and left eyes, corresponding left and right eye pixels are interspersed by the pixel selection logic 300 pixels are in the same place in the anaglyph frame; In general, corresponding pixels for the left and right eyes represent different locations in the scene.

In einer Ausführungsform beinhaltet Anzeigekopf 206a(0) die Pixelauswahllogik 300 nach 3. Zum Generieren von Anaglyphen werden die Divisionsschaltungen 306 und 314 beide eingestellt, einen Divisor von 1 auszuwählen. Die Additionsschaltung 308 addiert das Pixel für das linke Auge Pi0 und das Pixel für das rechte Auge Pil, um ein Summenpixel auf Pfad 310 zu erzeugen, das als Resultat der früheren Farbfilterung die Rotkomponente des Pixels für das linke Auge und die Blau- und Grünkomponenten des Pixels für das rechte Auge aufweist. Der Auswahlmultiplexer 312 wählt das Summenpixel von Pfad 310 aus, und der Auswahlmultiplexer 316 wählt das Mischpixel auf Pfad 315 als Ausgangspixel aus.In one embodiment, the display head includes 206 (0) the pixel selection logic 300 to 3 , The divisional circuits are used to generate anaglyphs 306 and 314 both set to select a divisor of 1. The addition circuit 308 the pixel for the left eye P i0 and the pixel for the right eye P il add a sum pixel to path 310 which, as a result of the earlier color filtering, has the red component of the left-eye pixel and the blue and green components of the right-eye pixel. The selection multiplexer 312 select the sum pixel from path 310 out, and the selection multiplexer 316 selects the mix pixel on path 315 as the output pixels.

In anderen Ausführungsformen werden keine Farbfilter vor der Pixelauswahllogik 300 verwendet. Beispielsweise mögen die Auswahlmultiplexer 312 und/oder 316 derart eingerichtet sein, dass die Auswahl unabhängig für jede Farbkomponente gesteuert werden mag. In einer derartigen Ausführungsform lässt Auswahlmultiplexer 312 alle Farbkomponenten des Pixels für das linke Auge Pi0 von Pfad 302 durch, während Auswahlmultiplexer 316 die Rotkomponente des Pixels für das linke Auge Pi0 und die Blau- und Grünkomponenten des Pixels für das rechte Auge Pil durchlässt. Das Resultat ist ein Ausgangspixel auf Pfad 318, das die Rotkomponente des Pixels für das linke Auge und die Blau- und Grünkomponenten des Pixels für das rechte Auge aufweist.In other embodiments, no color filters will precede the pixel selection logic 300 used. For example, the selection multiplexers like 312 and or 316 be set up such that the selection may be independently controlled for each color component. In such an embodiment, select multiplexer leaves 312 all color components of the pixel for the left eye P i0 of path 302 through while selection multiplexer 316 the red component of the pixel for the left eye P i0 and the blue and green components of the pixel for the right eye P il . The result is an output pixel on path 318 which has the red component of the left-eye pixel and the blue and green components of the right-eye pixel.

Fachleute werden verstehen, dass zum Anaglyphenrendern mehr als zwei GPUs verwendet werden mögen. In einer Ausführungsform mit vier GPUs (z.B. 4B) können zwei GPUs verwendet werden, um die Ansicht mit dem rechten Auge zu generieren, während die anderen zwei GPUs verwendet werden, um die Ansicht mit dem linken Auge zu generieren. Die zwei GPUs, die jede Ansicht generieren, mögen verteilte Kantenglättungstechniken einsetzen, wie oben beschrieben, um die Bildqualität der Anaglyphe zu verbessern.Those skilled in the art will understand that more than two GPUs may be used for anaglyph rendering. In an embodiment with four GPUs (eg 4B ), two GPUs can be used to generate the view with the right eye, while the other two GPUs are used to generate the view with the left eye. The two GPUs that generate each view may employ distributed antialiasing techniques, as described above, to improve the image quality of the anaglyph.

Auch mögen Stereoanaglyphen mit Hilfe intern verteilter Filterung gerendert werden. Bezug nehmend auf 4B kann die (nicht gezeigte) Renderpipeline der GPU 122 beide Ansichten generieren, wobei die Ansicht mit dem linken Auge in Einzelbildpuffer A und die Ansicht mit dem rechten Auge in Einzelbildpuffer B gespeichert wird (oder umgekehrt). Anzeigepipeline B 402b und Anzeigekopf B 206b liefern die Pixel für das rechte Auge an Anzeigekopf A 206a als Pixel PB, während Anzeigepipeline A 402a die Pixel für das linke Auge an Anzeigekopf A 206a als Pixel PA liefert. Im Anzeigekopf A 206a mischt Pixelkombinierer 308 (3) die Pixel zweckentsprechend, um die Anaglyphe zu erzeugen.Also, stereoanaglyphs may be rendered using internally distributed filtering. Referring to 4B can be the rendering pipeline (not shown) of the GPU 122 generate both views, with the view with the left eye in frame buffer A and the view with the right eye in frame buffer B is stored (or vice versa). Display pipeline B 402b and display head B 206b provide the pixels for the right eye to the display head A. 206a as pixel P B , while display pipeline A 402a the pixels for the left eye on the display head A 206a as pixel P A delivers. In the display head A 206a mixes pixel combiner 308 ( 3 ) Correct the pixels to produce the anaglyph.

Verteilte Filterung mag auch verwendet werden, um Übergangseffekte wie z.B. Einblenden, Ausblenden oder Überblenden zu generieren. Zum Beispiel mag im intern verteilten Fall Einzelbildpuffer B ein Bild speichern, das ausgeblendet wird, während Einzelbildpuffer A ein Bild speichert, das eingeblendet wird. Bei jedem Einzelbild justiert Pixelkombinierer 308 die relative Gewichtung der Pixel von Einzelbildpuffer A und Einzelbildpuffer B, sodass das Bild aus Einzelbildpuffer A allmählich auf volle Intensität zunimmt, während das Bild in Einzelbildpuffer B auf die Intensität null abnimmt. (Ist das Bild in Einzelbildpuffer B ein Vollfarbfeld, ist der Effekt ein Einblenden; ist das Bild in Einzelbildpuffer A eine Vollfarbe, ist der Effekt ein Ausblenden.) Die Sanftheit des Übergangs hängt zum Teil von der Anzahl unterschiedlicher gewichteter Mittelwerte der Pixel PA und PB ab, die zu bilden der Pixelkombinierer 308 fähig ist, was eine Sache der Konstruktionsentscheidung ist. Mehrere GPUs mit extern verteilter Filterung mögen ebenfalls verwendet werden, um einen ähnlichen Effekt zu erzielen.Distributed filtering may also be used to generate transition effects such as fade, fade, or fade. For example, in the internally distributed case, frame buffer B may store an image that is hidden while frame buffer A stores an image that is faded in. At each frame adjusts pixel combiner 308 the relative weighting of the pixels of frame buffer A and frame buffer B such that the frame buffer image A gradually increases to full intensity while the frame in frame buffer B decreases to zero intensity. (If the image in frame buffer B is a full color field, the effect is fade in. If the image in frame buffer A is a full color, the effect is fading.) The smoothness of the transition depends, in part, on the number of different weighted averages of pixels P A and P B to form the pixel combiner 308 capable, which is a matter of design decision. Multiple GPUs with externally distributed filtering may also be used to achieve a similar effect.

In einer anderen Ausführungsform mögen derartige Übergangseffekte mit Hilfe verteilter Filterung in Kombination mit einer Nachschlagtabelle in jedem Anzeigekopf erzielt werden. Wie auf dem Fachgebiet bekannt ist, beinhaltet ein Anzeigekopf oft eine Nachschlagtabelle, der die interne Pixelrepräsentation in einen Farbintensitätswert umwandelt, der zweckentsprechend für ein Anzeigegerät ist, und unterschiedliche Werte mögen in die Nachschlagtabelle geladen sein und mögen von Zeit zu Zeit neu geladen werden. Ausblenden (oder Einblenden) mag durch Reduzieren (oder Erhöhen) der Farbintensität der Werte in der Nachschlagtabelle von einem Einzelbild zum nächsten erzielt werden. Somit mögen, um von einem Bild in Einzelbildpuffer B auf ein Bild in Einzelbildpuffer A überzublenden, herkömmliche Ausblend-Nachschlagtabellen in Anzeigekopf B angewendet werden, während herkömmliche Einblend-Nachschlagtabellen in Anzeigekopf A angewendet werden. Der Pixelkombinierer 308 würde die zwei Bilder mit konstanten (z.B. gleichen) Gewichtungen kombinieren, um den Überblendeffekt zu erzeugen.In another embodiment, such transition effects may be achieved using distributed filtering in combination with a look-up table in each display head. As is known in the art, a display head often includes a lookup table that converts the internal pixel representation into a color intensity value that is appropriate for a display device, and different values may be loaded into the lookup table and may be refreshed from time to time getting charged. Hiding (or fading) may be achieved by reducing (or increasing) the color intensity of the values in the look-up table from one frame to the next. Thus, to blend over from an image in frame buffer B to an image in frame buffer A, conventional fade-look-up tables may be applied to display head B, while conventional fade-in look-up tables are applied to display head A. The pixel combiner 308 would combine the two images with constant (eg equal) weights to produce the crossfade effect.

In anderen Ausführungsformen wird Pixelübertragung zwischen Anzeigeköpfen derselben GPU verwendet, um Anzeigemerkmale zu implementieren, an denen kein Mischen beteiligt ist. Zum Beispiel mag Pixelübertragung zwischen Anzeigeköpfen verwendet werden, um eine LCD-Overdrive-Funktion (auf dem Fachgebiet auch als „LCD-Feed-Forward"- oder „RTC"-Funktion (RTC = Response Time Kompensation, Antwortzeitkompensation) bezeichnet) zu steuern. Wie auf dem Fachgebiet bekannt ist, mag ein LCD-Bildschirm dazu gebracht werden, schneller zu reagieren, wenn die Signale, die die Pixel ansteuern, von Einzelbild zu Einzelbild zum Teil auf der gewünschten neuen Intensität und zum Teil auf der Differenz zwischen der gewünschten neuen Intensität und der vorherigen Intensität basierend justiert werden.In other embodiments becomes pixel transfer between display heads same GPU used to implement display features which does not involve mixing. For example, like pixel transfer between display heads used to provide an LCD overdrive feature (in the art also as "LCD Feed Forward" or "RTC" function (RTC = Response time compensation, response time compensation)) to control. As is known in the art, like an LCD screen be made to respond faster when the signals, which drive the pixels, from frame to frame partially on the desired new intensity and partly on the difference between the desired new intensity and the previous intensity be adjusted based.

Um eine LCD-Overdrive-Funktion zu implementieren, mag Einzelbildpuffer A verwendet werden, um Pixel eines neuen Bildes zu speichern, während Einzelbildpuffer B Pixel eines vorherigen Bildes speichert. Anzeigekopf B liefert die vorherigen Pixelwerte an den Anzeigekopf A, und Pixelkombinierer 308 von Anzeigekopf A mag konfiguriert sein, einen Overdrivewert basierend auf dem neuen Wert und dem vorherigen Wert z.B. unter Verwendung herkömmlicher Techniken zum Berechnen eines LCD-Overdrivesignals zu berechnen.To implement an LCD overdrive function, frame buffer A may be used to store pixels of a new image while frame buffer B stores pixels of a previous frame. Display head B provides the previous pixel values to the display head A, and pixel combiner 308 Display head A may be configured to calculate an overdrive value based on the new value and the previous value, eg, using conventional techniques for calculating an LCD overdrive signal.

Eine Pixelübertragung zwischen Anzeigeköpfen einer GPU mag auch zum Generieren zusammengesetzter Bilder verwendet werden. Zum Beispiel mag Einzelbildpuffer B Pixel für ein Überlagerungsbild enthalten, das auf einem Teil eines Bildes zu überlagern ist, das im Einzelbildpuffer A gespeichert ist. Der Anzeigekopf B liefert Uberlagerungspixel an den Anzeigekopf A, und die Pixelauswahllogik 300 im Anzeigekopf A wählt die internen Pixel aus mit Ausnahme des Uberlagerungsgebiets, wo das externe Pixel ausgewählt wird.Pixel transfer between display heads of a GPU may also be used to generate composite images. For example, frame buffer B may contain pixels for a sub-picture to be superimposed on a portion of an image stored in frame buffer A. The display head B provides overlay pixels to the display head A, and pixel selection logic 300 in the display head A selects the internal pixels except for the overlap area where the external pixel is selected.

Obgleich die Erfindung in Bezug auf bestimmte Ausführungsformen beschrieben wurde, wird man somit verstehen, dass die Erfindung vorgesehen ist, alle Modifikationen und Äquivalente innerhalb des Umfangs der folgenden Ansprüche abzudecken.Although the invention has been described in relation to certain embodiments Thus, it will be understood that the invention is intended to cover all modifications and equivalents within the scope of the following claims.

Claims (13)

Grafikverarbeitungsgerät, aufweisend: einen ersten Anzeigekopf, der eingerichtet ist, ein erstes Ausgangspixel zu generieren, wobei der erste Anzeigekopf innerhalb einer integrierten Schaltung angeordnet ist; einen zweiten Anzeigekopf, der eingerichtet ist, ein zweites Ausgangspixel zu generieren, wobei der zweite Anzeigekopf innerhalb der integrierten Schaltung angeordnet ist; der zweite Anzeigekopf aufweisend: einen ersten Eingangspfad, der eingerichtet ist, ein externes Pixel zu empfangen; einen zweiten Eingangspfad, der eingerichtet ist, ein internes Pixel zu empfangen; einen Pixelkombinierer, der mit dem ersten Eingangspfad und dem zweiten Eingangspfad gekoppelt und eingerichtet ist, das externe Pixel und das interne Pixel zu mischen, um ein Mischpixel zu generieren; und eine Auswahlschaltung, die eingerichtet ist, unter dem externen Pixel, dem internen Pixel oder dem Mischpixel eines als zweites Ausgangspixel auszuwählen; und einen Pixelübertragungspfad, der so eingerichtet ist, dass er das erste Ausgangspixel vom ersten Anzeigekopf derart an den ersten Eingangspfad des zweiten Anzeigekopfes liefert, dass das erste Ausgangspixel vom ersten Eingangspfad als das externe Pixel empfangen wird.Graphics processing apparatus, comprising: a first Display head adapted to generate a first output pixel wherein the first display head is disposed within an integrated circuit is; a second display head that is set up, a second display head Generate output pixels, the second display head within the integrated circuit is arranged; the second display head comprising: a first input path that is set up to receive an external pixel; a second input path, configured to receive an internal pixel; one Pixel combiner, with the first input path and the second Input path is coupled and set up, the external pixels and to mix the internal pixel to generate a blend pixel; and a Selection circuit that is set up under the external pixel, the internal pixel or the mixing pixel of a second output pixel select; and a pixel transmission path, which is arranged to receive the first output pixel from the first one Display head in such a way to the first input path of the second display head provides that the first output pixel from the first input path as the external pixel is received. Grafikverarbeitungsgerät nach Anspruch 1, wobei der Pixelübertragungspfad innerhalb der integrierten Schaltung angeordnet ist.A graphic processing apparatus according to claim 1, wherein said Pixel transmission path is disposed within the integrated circuit. Grafikverarbeitungsgerät nach Anspruch 1, wobei mindestens ein Abschnitt des Pixelübertragungspfades außerhalb der integrierten Schaltung liegt.A graphic processing apparatus according to claim 1, wherein at least a section of the pixel transfer path outside the integrated circuit is located. Grafikverarbeitungsgerät nach Anspruch 3, wobei der Pixelübertragungspfad einen lösbaren Konnektor beinhaltet.A graphics processing apparatus according to claim 3, wherein said Pixel transmission path a detachable connector includes. Grafikverarbeitungsgerät nach Anspruch 1, weiterhin aufweisend: eine erste Anzeigepipeline, die eingerichtet ist, ein erstes Pixel zu generieren und das erste Pixel an den ersten Anzeigekopf zu liefern; und eine zweite Anzeigepipeline, die eingerichtet ist, ein zweites Pixel zu generieren und das zweite Pixel an den zweiten Anzeigekopf zu liefern.The graphic processing apparatus according to claim 1, further comprising: a first display pipeline that's set up generate a first pixel and the first pixel to the first To deliver the display head; and a second display pipeline, the is set up to generate a second pixel and the second To deliver pixels to the second display head. Grafikverarbeitungsgerät nach Anspruch 5, weiterhin aufweisend: eine Renderpipeline, die eingerichtet ist, erste und zweite Versionen eines anzuzeigenden Einzelbilds zu generieren, wobei die ersten und zweiten Versionen in mindestens einem Aspekt voneinander verschieden sind, wobei die erste Anzeigepipeline eingerichtet ist, das erste Pixel basierend auf der ersten Version des Einzelbilds zu generieren, die zweite Anzeigepipeline eingerichtet ist, das zweite Pixel basierend auf der zweiten Version des Einzelbilds zu generieren, und die Auswahlschaltung im zweiten Anzeigekopf eingerichtet ist, das Mischpixel als das zweite Ausgangspixel auszuwählen.The graphics processing apparatus of claim 5, further comprising: a render pipeline that is set up, first, and generating second versions of a frame to be displayed, wherein the first and second versions are different from each other in at least one aspect, wherein the first display pipeline is configured to generate the first pixel based on the first version of the frame, the second display pipeline is set, the second one Generate pixels based on the second version of the frame, and the selection circuit in the second display head is configured to select the merging pixel as the second output pixel. Verfahren, das ein Bild generiert, wobei das Verfahren aufweist: Rendern eines ersten Satzes von Eingangspixeln und eines zweiten Satzes von Eingangspixeln für das Bild unter Verwendung einer Renderpipeline eines Grafikprozessors, wobei eine erste Renderoperation, die dazu dient, den ersten Satz von Eingangspixeln zu rendern, sich in mindestens einem Aspekt von einer zweiten Renderoperation unterscheidet, die dazu dient, den zweiten Satz von Eingangspixeln zu rendern; Liefern des ersten Satzes von Eingangspixeln an einen ersten Anzeigekopf des Grafikprozessors; Liefern des zweiten Satzes von Eingangspixeln an einen zweiten Anzeigekopf des Grafikprozessors; Liefern des ersten Satzes von Eingangspixeln vom ersten Anzeigekopf an den zweiten Anzeigekopf und im zweiten Anzeigekopf Mischen entsprechender Pixel des ersten Satzes von Eingangspixeln und des zweiten Satzes von Eingangspixeln, um einen Satz von Ausgangspixeln zu generieren.Method that generates an image using the method having: Render a first set of input pixels and a second set of input pixels for the image using a render pipeline of a graphics processor, wherein a first rendering operation, the this is to render the first set of input pixels in at least one aspect differs from a second rendering operation, which serves to render the second set of input pixels; Deliver of the first set of input pixels to a first display head the graphics processor; Deliver the second set of input pixels to a second display head of the graphics processor; Deliver of the first set of input pixels from the first display head to the second display head and in the second display head mixing appropriate Pixels of the first set of input pixels and the second set of input pixels to generate a set of output pixels. Anzeigekopf für einen Grafikprozessor, aufweisend: einen ersten Eingangspfad, der eingerichtet ist, ein erstes Pixel zu übertragen, das durch einen ersten Grafikprozessor generiert wird; einen zweiten Eingangspfad, der eingerichtet ist, ein zweites Pixel zu übertragen, das durch einen zweiten Grafikprozessor generiert wird; einen Pixelkombinierer, der mit dem ersten Eingangspfad und dem zweiten Eingangspfad gekoppelt und eingerichtet ist, das erste Pixel und das zweite Pixel zu mischen, um ein Mischpixel zu generieren; und eine Auswahlschaltung, die eingerichtet ist, unter dem ersten Pixel, dem zweiten Pixel oder dem Mischpixel eines als Ausgangspixel auszuwählen.Display head for a graphics processor comprising: a first input path, configured to transmit a first pixel through a first graphics processor is generated; a second input path, which is adapted to transmit a second pixel by a second graphics processor is generated; a pixel combiner, coupled to the first input path and the second input path and is set up to mix the first pixel and the second pixel, to generate a mixed pixel; and a selection circuit, which is established under the first pixel, the second pixel or the mixing pixel to select one as the output pixel. Grafikprozessor nach Anspruch 8, wobei der Anzeigekopf weiterhin aufweist: eine Divisionsschaltung, die eingerichtet ist, das Mischpixel durch einen Divisor zu dividieren.The graphics processor of claim 8, wherein the display head further comprises: a division circuit that set up is to divide the mixing pixel by a divisor. Grafikprozessor nach Anspruch 8, wobei der Pixelkombinierer eine Divisionsschaltung beinhaltet, die eingerichtet ist, das erste Pixel durch einen Divisor zu dividieren, bevor das erste Pixel und das zweite Pixel gemischt werden.The graphics processor of claim 8, wherein the pixel combiner includes a division circuit that is set up, the first one Divide pixels by a divisor before the first pixel and the second pixel will be mixed. Grafikprozessor nach Anspruch 8, wobei der Pixelkombinierer eingerichtet ist, das Mischpixel durch Addieren des ersten Pixels und des zweiten Pixels zu generieren.The graphics processor of claim 8, wherein the pixel combiner is established, the mixing pixel by adding the first pixel and the second pixel. Grafikprozessor nach Anspruch 8, wobei das erste Pixel und das zweite Pixel Gamma-korrigierte Pixel sind und wobei der Pixelkombinierer eingerichtet ist, das Mischpixel durch Berechnen einer Gamma-korrigierten Mischung des ersten Pixels und des zweiten Pixels zu generieren.The graphics processor of claim 8, wherein the first Pixel and the second pixel are gamma-corrected pixels and the pixel combiner is set up, the mixing pixel by calculation a gamma-corrected mixture of the first pixel and the second one Generate pixels. Verfahren des Generierens eines Bildes, wobei das Verfahren aufweist: Rendern eines ersten Satzes von Eingangspixeln für das Bild unter Verwendung eines ersten Grafikprozessors; Rendern eines zweiten Satzes von Eingangspixeln für das Bild unter Verwendung eines zweiten Grafikprozessors, wobei jeweilige Renderoperationen, die durch die ersten und zweiten Grafikprozessoren vorgenommen werden, sich in mindestens einem Aspekt unterscheiden; Liefern des ersten Satzes von Eingangspixeln und des zweiten Satzes von Eingangspixeln an einen ersten Anzeigekopf im ersten Anzeigekopf Mischen entsprechender Pixel des ersten Satzes von Eingangspixeln und des zweiten Satzes von Eingangspixeln, um einen ersten Satz von Ausgangspixeln zu generieren.Method of generating an image, wherein Method comprising: Render a first set of input pixels for the Image using a first graphics processor; rendering a second set of input pixels for the image using a second graphics processor, with respective rendering operations, which are made by the first and second graphics processors, differ in at least one aspect; Delivering the first set of input pixels and the second set of input pixels to a first display head in the first display head mixing appropriate Pixels of the first set of input pixels and the second set of input pixels to generate a first set of output pixels.
DE102007021546A 2006-05-12 2007-05-08 Antialiasing with the help of multiple display heads of a graphics processor Ceased DE102007021546A1 (en)

Applications Claiming Priority (6)

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

Publications (1)

Publication Number Publication Date
DE102007021546A1 true DE102007021546A1 (en) 2007-12-06

Family

ID=38219252

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007021546A Ceased DE102007021546A1 (en) 2006-05-12 2007-05-08 Antialiasing with the help of multiple display heads of a graphics processor

Country Status (6)

Country Link
JP (1) JP4748483B2 (en)
KR (1) KR100890702B1 (en)
CN (1) CN101086830A (en)
DE (1) DE102007021546A1 (en)
GB (1) GB2438087B (en)
SG (1) SG137754A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8373708B2 (en) 2008-07-30 2013-02-12 Nvidia Corporation Video processing system, method, and computer program product for encrypting communications between a plurality of graphics processors
US8319780B2 (en) 2008-07-30 2012-11-27 Nvidia Corporation System, method, and computer program product for synchronizing operation of a first graphics processor and a second graphics processor in order to secure communication therebetween
JP4703695B2 (en) * 2008-08-28 2011-06-15 シャープ株式会社 Data creation device, data creation method, data creation program, drawing device, drawing method, and drawing program
US8681167B2 (en) * 2008-09-23 2014-03-25 Intel Corporation Processing pixel planes representing visual information
KR102443203B1 (en) 2015-10-27 2022-09-15 삼성전자주식회사 Method for Operating Electronic Device and the Electronic Device
US10489878B2 (en) 2017-05-15 2019-11-26 Google Llc Configurable and programmable image processor unit

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3209632B2 (en) * 1993-03-16 2001-09-17 松下電器産業株式会社 Weight averaging circuit
US5778250A (en) * 1994-05-23 1998-07-07 Cirrus Logic, Inc. Method and apparatus for dynamically adjusting the number of stages of a multiple stage pipeline
JP2970440B2 (en) * 1994-11-29 1999-11-02 松下電器産業株式会社 Image synthesis method and image synthesis device
JPH10124038A (en) * 1996-10-18 1998-05-15 Fujitsu General Ltd Picture synthesizing device
US6157395A (en) * 1997-05-19 2000-12-05 Hewlett-Packard Company Synchronization of frame buffer swapping in multi-pipeline computer graphics display systems
JP4505866B2 (en) * 1998-04-03 2010-07-21 ソニー株式会社 Image processing apparatus and video signal processing method
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
JP2000099748A (en) 1998-09-17 2000-04-07 Ricoh Co Ltd Three-dimensional grphics processor and its processing method
US6181352B1 (en) * 1999-03-22 2001-01-30 Nvidia Corporation Graphics pipeline selectively providing multiple pixels or multiple textures
AUPQ593100A0 (en) * 2000-02-29 2000-03-23 Canon Kabushiki Kaisha Alpha-channel compositing system
US6567098B1 (en) * 2000-06-22 2003-05-20 International Business Machines Corporation Method and apparatus in a data processing system for full scene anti-aliasing
US6633297B2 (en) * 2000-08-18 2003-10-14 Hewlett-Packard Development Company, L.P. System and method for producing an antialiased image using a merge buffer
US6882346B1 (en) * 2000-11-17 2005-04-19 Hewlett-Packard Development Company, L.P. System and method for efficiently rendering graphical data
US7095386B2 (en) 2001-06-07 2006-08-22 Nvidia Corporation Graphics system including a plurality of heads
KR100441079B1 (en) * 2002-07-31 2004-07-21 학교법인연세대학교 apparatus and method for antialiasing
JP2004349842A (en) * 2003-05-20 2004-12-09 Fuji Photo Film Co Ltd Method and program for correcting composite image
US7477256B1 (en) * 2004-11-17 2009-01-13 Nvidia Corporation Connecting graphics adapters for scalable performance
US8212838B2 (en) * 2005-05-27 2012-07-03 Ati Technologies, Inc. Antialiasing system and method

Also Published As

Publication number Publication date
KR20070109951A (en) 2007-11-15
GB2438087B (en) 2011-05-18
GB2438087A8 (en) 2008-04-29
SG137754A1 (en) 2007-12-28
JP4748483B2 (en) 2011-08-17
JP2007310883A (en) 2007-11-29
KR100890702B1 (en) 2009-03-27
GB0709101D0 (en) 2007-06-20
GB2438087A (en) 2007-11-14
CN101086830A (en) 2007-12-12

Similar Documents

Publication Publication Date Title
DE10159357B4 (en) Apparatus for carrying out transparent processing of still images and moving images
US8130227B2 (en) Distributed antialiasing in a multiprocessor graphics system
DE102013020808A1 (en) Efficient auto-stereo support using display control windows
US20090085928A1 (en) Antialiasing using multiple display heads of a graphics processor
DE19807028C2 (en) Frame buffer exchange synchronization in multipipeline computer graphics display systems
DE69630345T2 (en) Video enlarger
DE69908334T2 (en) A MULTIPLE DATA SWITCH-BASED VIDEO EDITING ARCHITECTURE
DE69535693T2 (en) SINGLE RASTER BUFFER IMAGE PROCESSING SYSTEM
DE60004827T2 (en) SEGMENTATION OF COMPRESSED GRAPHIC DATA FOR PARALLEL DECOMPRESSION AND REPRESENTATION
DE102007021546A1 (en) Antialiasing with the help of multiple display heads of a graphics processor
DE60120474T2 (en) GRINDING OF THREE-DIMENSIONAL PICTURES
DE102017122391A1 (en) Low-resolution RGB rendering for efficient transmission
DE69729916T2 (en) DYNAMIC IMAGE SIZE CHANGE
DE60118135T2 (en) Image display device
DE112007002200T5 (en) Computer graphics system with multiple parallel processors
DE112006003473T5 (en) Parallel array architecture for a graphics processor
DE112014002469T5 (en) System, method and computer program product for generating images for near-field light field display
DE19620263B4 (en) Data synchronization between a plurality of asynchronous data preparations
DE112011105927T5 (en) Graphic rendering method for autostereoscopic three-dimensional display
DE102015006750A1 (en) BUTTONING, ERROR MANAGEMENT AND / OR CONTEXT CHANGING VIA A COMPUTER PIPELINE
WO2008019867A2 (en) Image processing device for colour image data and method for processing colour image data
DE112013003714T5 (en) Stochastic depth buffer compression by means of generalized plane coding
DE69839079T2 (en) SYSTEM AND METHOD FOR 2-ABGRIFF / 3-ABGRIFF FLIMMERFILTERN
DE102013205040A1 (en) System, method and computer program for displaying stereoscopic display contents for viewing with passive stereoscopic glasses
JP5116125B2 (en) Anti-aliasing using multiple display heads of graphics processor

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8128 New person/name/address of the agent

Representative=s name: DILG HAEUSLER SCHINDELMANN PATENTANWALTSGESELLSCHA

8181 Inventor (new situation)

Inventor name: KELLEHER, BRIAN M., PALO ALTO, CALIF., US

Inventor name: DIARD, FRANCK R., MOUNTAIN VIEW, CALIF., US

Inventor name: JOHNSON, PHILIP BROWNING, CAMPBELL, CALIF., US

Inventor name: HANNIGAN, BRETT T., MENLO PARK, CALIF., US

Inventor name: TRIPATHI, BRIJESH, SANTA CLARA, CALIF., US

Inventor name: RIACH, DUNCAN A., EAST SUSSEX, GB

8181 Inventor (new situation)

Inventor name: HANNIGAN, BRETT T., PHILADELPHIA, PA., US

Inventor name: DIARD, FRANCK R., MOUNTAIN VIEW, CALIF., US

Inventor name: JOHNSON, PHILIP BROWNING, CAMPBELL, CALIF., US

Inventor name: KELLEHER, BRIAN M., PALO ALTO, CALIF., US

Inventor name: RIACH, DUNCAN A., EAST SUSSEX, GB

Inventor name: TRIPATHI, BRIJESH, SANTA CLARA, CALIF., US

R003 Refusal decision now final
R011 All appeals rejected, refused or otherwise settled
R003 Refusal decision now final

Effective date: 20140703