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;
5A–5C 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 210–213 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 210–213 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 210–213 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 210–213, 214a oder 214b zu
unterstützen
und gleichzeitig jedwede Verbindung von Kopf B 206b zu
jedwedem der Ports 210–213, 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 210–213 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 501–504 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 511–514 abgestastet,
die von den Orten 501–504 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 (501–504)
zu einem einzelnen Wert PA, während das FOS-Modul in Anzeigepipe
B 402b die vier Abtastwerte (511–514)
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 210–213 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.