Grundlagenartikel Testberichte VGA

2D-Leistung im Rückwärtsgang? Eine umfassende Analyse! | Retro vor 10 Jahren

Unabhängig davon, wie Windows XP, Windows Vista oder Windows 7 den Umgang mit dem GDI handhaben, ist die Methodik beim Programmieren zunächst eigentlich immer gleich. Mit den Unterschieden, wie diese Inhalte von der Grafikkarte verarbeitet werden, haben wir uns im voranstehenden Kapitel bereits bekannt gemacht. Wie die Inhalte jedoch zunächst erst einmal erstellt werden, dass erfahren Sie jetzt.

Zeichenbefehle

Egal, was wir gern über das GDI in 2D ausgeben möchten, alles basiert auf einer festgelegten Struktur von standardisierten Zeichenbefehlen. Im Detail würde es sicher den Rahmen dieses Artikels sprengen, deshalb nur so viel: egal ob Linien, Kurven, Polygone, Rechtecke, Ellipsen oder welche geometrische Form und deren Eigenschaften (Füllung, Linienstärke und –farbe usw.) auch immer – es gibt für jede dieser Aufgaben einen genau definierten Befehl. Dieser wird vom aktuellen Anwendungsprogramm zusammen mit den nötigen Parametern an das GDI übergeben.  Auf den Rest hat die jeweilige Anwendung dann keinen Einfluss mehr.

Direktes und gepuffertes Zeichnen: der Ameisen-Elefant-Vergleich

Im Prinzip ist es egal, ob nun eine Million Ameisen jeweils ein Sandkorn 100 m weit von A nach B trägt, oder ob die Ameisen diese Sandkörner in einen 50 cm entfernten Sammelcontainer befördern, den dann ein einzelner Elefant zum Ziel zieht. Bei beiden Vorgängen wird das angestrebte Ziel erreicht.  Betrachten wir nun die Unterschiede. Die Elefanten-Methode ist schneller und effizienter und es wird weniger Verkehr erzeugt. Eine Million Ameisen zu koordinieren ist wesentlich aufwändiger, als einmalig einen Container zu transportieren und dann am Ziel alles auf einmal auszukippen. Außerdem benötigt es auch erheblich mehr Zeit. Der Vorteil der Ameisen-Methode ist, dass man keine weiteren schweren Hilfsmittel (Container = Puffer) benötigt und dass sie im Einzelfall, benötigt man nur einige wenige Sandkörner, sogar effizienter und flexibler sein kann. Es kommt also immer auf die Aufgabenstellung und die Menge an. Betrachten wir deshalb nun analog zu diesen Beispielen das Zeichnen über das GDI an ein Ausgabegerät (Monitor).

Direktes Zeichnen nach der Ameisen-MethodeDirektes Zeichnen nach der Ameisen-Methode: Langsam und nur in bestimmten Fällen optimal, denn jedes einzelne Objekt wird auch einzeln auf dem Ausgabebereich gezeichnet, was Zeit kostet.

 

Indirektes Zeichnen nach der Elefanten-Methode
Indirektes Zeichnen nach der Elefanten-Methode: Ein Puffer sammelt zunächst unsichtbar alle Inhalte, die sichtbare Ausgabe
erfolgt am Schluss für alle Objekte gemeinsam und nur einmal.

Wir sehen, dass sobald eine komplexere Zeichnung ausgegeben werden soll, die Methode über den Puffer wesentlich schneller ist. Der Nachteil, dass man zum Zwischenspeichern zunächst eine sogenannte geräteunabhängige Bitmap (DIB) benötigt, die die selbe Größe wie der sichtbare Ausgabebereich (z.B. Vollbild oder Zeichenfläche eines CAD-Programms) besitzt, wird durch den Geschwindigkeitsvorteil schnell wieder kompensiert. Auf der anderen Seite wäre es hingegen müßig, wegen jeder kleinen Änderung den kompletten Puffer neu zu schreiben. Untersuchen wir nun einen Fall, in denen sich eine direkte Ausgabe geradezu anbietet.

Echtzeit-Ausgabe beim Erstellen und Editieren von Zeichenobjekten

Wenn man zum Beispiel mit der Maus in einem Zeichenprogramm ein geometrisches Objekt (z.B. ein Polygon) auf der Zeichenfläche in Echtzeit von Position A nach Position B verschieben möchte, dann wäre es sinnlos, für jede der Zwischenpositionen, an denen sich die Maus gerade befindet, alles neu zu zeichnen, den Puffer zu füllen und anschließend auszugeben. Hier bedient man sich eines Kniffes. Mit Hilfe des ROP (Raster Operator) kann man mit XOR (exklusives OR) folgendermaßen vorgehen.

Überlagert man zwei identische Objekte mit XOR, so heben sie sich aufÜberlagert man zwei identische Objekte mit XOR, so heben sie sich auf. Das Verschieben eines Objektes durch direktes Zeichnen auf dem Ausgabebereich mit Hilfe des Raster-Operators (XOR) ist auch so eine Sache:

Verschieben eines Objektes durch direktes Zeichnen auf dem Ausgabebereich mit Hilfe des Raster-Operators (XOR)

Man zeichnet das zu verschiebende Objekt zunächst mit XOR an der alten Stelle noch einmal direkt auf dem Ausgabegerät. Dadurch „verschwindet“ dieses Objekt auf der Ausgabefläche wie von Geisterhand. Nun zeichnet man das Objekt direkt und ohne XOR an die neue Position, so dass es dort wieder sichtbar wird. Das wiederholt man bei jeder einzelnen Mausbewegung erneut, so dass innerhalb einer Sekunde durchaus 10-50 Positionsveränderungen dargestellt werden können. Das träge Auge nimmt dies als ruckelfreien und fließenden Vorgang ohne Flimmern wahr. Erst am Schluss wird der Puffer komplett neu gefüllt und ausgegeben. Diese Methode des nicht beständigen, direkten Zeichnens auf ein Device nennt man auch „floating drawing“. Wir merken uns diesen Vorgang, denn wir werden im nächsten Abschnitt nochmals darauf eingehen müssen, wenn es um die Symptome im 2D-Verhalten der HD5xxx geht.

Ein weiteres Aufgabenfeld ist die Darstellung von sogenannten „floating objects“.  Hierunter verstehen wir z.B. alle Markierungspunkte, die je nach ausgewähltem Beabeitungsmodus als Zeichen- und Orientierungshilfe dienen und deren Anzeige, falls es sich um eine größere Anzahl handelt, durchaus auch problematisch werden kann. Diese Objekte sind kein fester Bestandteil der Zeichnung und werden von fast keinem Programm gepuffert.

Rückschlüsse:

Betrachten wir das eben Gelesene mit den einzelnen Ablaufschemata im vorigen Kapitel, dann stellen wir fest, dass die 2D GDI-Ausgabe unter XP  hardwarebeschleunigt und ohne Umwege erfolgen kann. Unter Vista ist es fast egal, ob wir einen eigenen Puffer verwenden oder jeden Befehl direkt ans Ausgabegerät senden – das gesamte Fenster wird sowieso noch einmal zwischengepuffert. Unter Windows 7 mit WDDM 1.1-Treibern entfällt der zweite Puffer und es werden nur noch die Änderungen eingeblendet.  Das direkte Zeichen ist etwas langsamer als unter WDDM 1.0 und kämpft mit den gleichen Ursachen wie unter Vista. Die zusätzlich wieder verfügbare Hardwarebeschleunigung für GDI-Inhalte ist leider sehr eingeschränkt. Dies alles müssen wir berücksichtigen, wenn wir an späterer Stelle über den Benchmark sprechen und die Ergebnisse richtig bewerten wollen.

 

Kommentar

Lade neue Kommentare

B
Besterino

Urgestein

6,709 Kommentare 3,310 Likes

Erinnere mich sogar noch dunkel an das Thema damals. Heutzutage aber reicht mir irgendwie selbst eine AST-BMC-Grafik um nicht negativ im Desktop-Betrieb aufzufallen… ;)

Antwort 1 Like

Igor Wallossek

1

10,179 Kommentare 18,761 Likes

Seitdem hassen die mich :D

Antwort 2 Likes

B
Besterino

Urgestein

6,709 Kommentare 3,310 Likes

Kleingeister halt. ;)

Antwort Gefällt mir

Igor Wallossek

1

10,179 Kommentare 18,761 Likes

Oder so. Dafür ist mittlerweile die AMD-Implementierung besser als bei NV. Hat auch was Positives :D

Antwort Gefällt mir

h
hoppel

Neuling

8 Kommentare 1 Likes

An den Artikel konnte ich mich auch noch erinnern, die Zeit rennt schneller als man möchte :eek:

Antwort Gefällt mir

FfFCMAD

Urgestein

668 Kommentare 173 Likes

Ich finde es ehrlich gesagt immer noch peinlich. Ich weiß noch wie meine GTX480 bei 2D (Obwohl in 3D ein echtes Monster) vor sich hin kroch und meine uralte Voodoo 3 3500 in nem Pentium 3 Kreise und das Ding rannte. Die 2D Performance war teilweise echt mies. Aber es hat sich mit der Zeit zum Glueck gebessert. Ideal finde ich es aber immer noch nicht. Ich bin ein Fan davon, soetwas von der CPU fern zu halten und in irgendeiner Form abzuladen. Nicht nur 2D-Grafik. Auch beim Sound.

Antwort Gefällt mir

D
Deridex

Urgestein

2,212 Kommentare 846 Likes

So ändern sich die Zeiten. Dennoch habe ich den Eindruck, dass uns GDI noch lange bleiben wird.

Antwort Gefällt mir

Danke für die Spende



Du fandest, der Beitrag war interessant und möchtest uns unterstützen? Klasse!

Hier erfährst Du, wie: Hier spenden.

Hier kannst Du per PayPal spenden.

About the author

Igor Wallossek

Chefredakteur und Namensgeber von igor'sLAB als inhaltlichem Nachfolger von Tom's Hardware Deutschland, deren Lizenz im Juni 2019 zurückgegeben wurde, um den qualitativen Ansprüchen der Webinhalte und Herausforderungen der neuen Medien wie z.B. YouTube mit einem eigenen Kanal besser gerecht werden zu können.

Computer-Nerd seit 1983, Audio-Freak seit 1979 und seit über 50 Jahren so ziemlich offen für alles, was einen Stecker oder einen Akku hat.

Folge Igor auf:
YouTube   Facebook    Instagram Twitter

Werbung

Werbung