2D-Leistung im Rückwärtsgang? Eine umfassende Analyse

2D-Grafikausgabe über das GDI: direkt oder gepuffert?

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-MethodeIndirektes 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

Verschieben eines Objektes durch direktes Zeichnen auf dem Ausgabebereich mit Hilfe des Raster-Operators (XOR)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.

Erstelle einen neuen Thread im Artikel-Forum über dieses Thema
Dieser Thread ist für Kommentare geschlossen
183 Kommentare
Im Forum kommentieren
    Dein Kommentar
  • Theo204
    Wo gibt des denn jetzt den achsodollen Downloadlink zum Benchmark ???
    Hab' schon das letzte Mal nicht gefunden ...

    Vielen Dank für den äußerst umfangreichen Artikel ...
    0
  • FormatC
    Tja, irgendwie ist da heute abend was schiefgelaufen. Morgen wird es sicher gefixt - es ist keiner mehr da, der es richten könnte :)
    Das letzte Mal gab die Vorab-Version auf Wunsch per PN. Diesmal offiziell. Wenn jemand mal den Schalter umlegt...

    So, ist erledigt. Der Download auf TH geht. Letzte Seite beim Fazit...
    0
  • Enay
    Ich will wieder mehr solcher Artikel hier lesen!
    0
  • klomax
    Frage: Was ist ein "GMA 450" ? :)
    0
  • Anonymous
    GMA steht für Graphics Media Accelerator, die Onboard-Grafik älterer Intel-Systeme.

    Aetius
    0
  • intergalactic
    Danke an den Verfasser des Artikels für die Mühe. Trotzdem muß ich zugeben dass ich etwas enttäuscht bin. Ich hatte für den zweiten Teil eigentlich eine Stellungnahme seitens AMD erwartet.
    0
  • FormatC
    Zitat:
    Trotzdem muß ich zugeben dass ich etwas enttäuscht bin. Ich hatte für den zweiten Teil eigentlich eine Stellungnahme seitens AMD erwartet.
    Auch ich muss zugeben dass ich etwas enttäuscht bin. Ich wollte für den zweiten Teil eigentlich eine Stellungnahme seitens AMD einbauen ;)

    Nein, Du siehst nicht doppelt. Ich habe nämlich auch auf eine Antwort gewartet. Vergeblich. Was sich wiederum nahtlos ins Bild einfügt. Was hätten sie auch schreiben sollen? Es lässt sich doch leicht selbst nachvollziehen, dass was im Argen liegt.

    Der Catalyst 10.1 Beta, der durchs Netz geisterte ist nichts wert. Betastatus eben. 3D und 2D. Warten wir also auf den nächsten Treiber (wie immer) und schaun wir mal... Nvidia und XP ist auch keine sonderlich glückliche Ehe, wenn man sich die Teilleistung der GTX285 ansieht. Brauchbarer, aber weiß Gott nicht wegweisend.
    0
  • FormatC
    Sie können. Weil all die kleinen Pickelgesichter ihre CS-Wallhacks trotz allem locker mit 100fps++ genießen können und sich keine Sau mehr ums 2D kümmert. Media & Co. bauen ein, was sie günstig als resteverwertetes Chip-Allerlei in die Ramschkiste geworfen bekommen, der Kunde schluckts und sucht dann bis ans Ende seiner Tage nach der Ursache fürs Knistern bei der Soundwiedergabe, falls er z.B. mit dem Nero Wave-Editor arbeitet. NVidia hat seine Treiber echt besser im Griff, wobei das NICHT heißt, dass man als XP-User damit zufrieden sein dürfte. Solange XP noch unterm Volk kursiert, können sich die Hersteller der Grafikkarten ihre Wolkenkuckucksheime gern sparen. Wir leben im Heute und nicht im Übermorgen.

    WPF mag ja ganz lieblich sein, aber wer sich diesen proprietären Overhead antut, der muss echt genügend Zeit und Geld mitbringen. Solange man nur für Windows programmiert mag das ja noch hinkommen, aber spätestens beim Portieren setzt das Gehirnsausen ein ;)
    0
  • Levi88
    Der Bench auf dem Atomnetbook hat auch lang genug gedauert..
    Beide male beim Fensterverschieben über 30 Minuten x.O.
    Aber im Atom wars doch der GMA 950 und nicht 450 oder?
    In der Zeit hatte ich 2 ma PCs umgebaut.. *hust*

    Naja, hoffen wir, dasses was bringt, es liegt ja eigentlich bei allen was im Argen und das kanns net sein. Speziell, wenn ein 35€ nfurz Board alles andere Overall ziemlich alt aussehen lässt..

    @ Format, na immerhin waren 50% für dich zu gebrauchen ;). Freut mich.
    0
  • Sameneulmann
    Interessanter Artikel. Hebt sich durch Inhalt etwas von der Masse der anderen HW-Pages ab.
    Ich mag vielleicht noch etwas müde sein, aber ich finde den Download-Link für Tom2D nirgends. Ist der Link im Artikel mittlerweile zu finden?
    0
  • Anonymous
    @FormatC

    Schöne Artikelserie.

    Mich würde aber mal interessieren, wie sich die aktuelle Riege der "Profi"-Karten beider großen Hersteller (FireGL/Quadro) bei diesem Test schlägt. Ob das wohl machbar wäre?
    0
  • FormatC
    Da das Benchmarkprogramm (ich hoffe mal) heute noch verlinkt wird, kann ich nur an diejenigen appelieren, die solche Karten besitzen, dies bitte mal gegen zu testen. Ich bin nur ein kleines Lichtchen und besitze leider keine dieser Wunderkarten. Aber interessant wär es schon einmal.

    Aufruf:
    Wer über FireGL / Quadro verfügt und diese unter XP/Windows 7 testen kann, bitte eine PN an mich. Danke :)
    1
  • intergalactic
    FormatCWas hätten sie auch schreiben sollen? Es lässt sich doch leicht selbst nachvollziehen, dass was im Argen liegt.


    Stimmt schon. Mehr wie "Danke für den Hinweis, wir prüfen das und werden den Fehler gegebenenfalls beheben" kann da nicht erwarten. Trotzdem finde ich es schade dass so gar nichts von AMD/ATI gekommen ist. Ich fände es echt besch... wenn der Fehler jetzt stillschweigend behoben wird. So was hinterlässt bei mir irgendwie nen faden Nachgeschmack.
    0
  • icestorm
    Dass diese Ergebnisse für ATi schmählich sind, ist klar. Ich bin gespannt, was sich mit Treiber 10.1 (dessen Beta gestern meinen ersten Absturz seit Langem verursachte ...).
    Doch gerade bei CAD-Software muss man sich vor Augen halten, dass hier eigentlich OpenGL das Maß der Dinge ist (oder sein sollte).
    Vll. hat sich ATi bei 2D gerade darauf konzentriert, und die D2D/D3D/GDI-Scheunentür stand dann weit offen. Eine Entschuldigung darf das natürlich nicht sein.
    0
  • FormatC
    @Levi88:
    Ich habe die Charts korrigiert, es war einfach zuviel an Input in den paar Tagen. Jetzt steht der GMA 940 drin. Man merkt, man wird alt. ;)

    Das Problem ist, dass ich nicht alles in die Charts reintun konnte - einfach zuviel des Guten. Ich denke mal, dass sich auch mit den nicht veröffentlichten Ergebnissen das Bild besser abrundet. Außerdem hoffe ich ja auch noch weitere Ergebnisse. Dann mache ich noch kumulierte User-Charts. Umsonst war die Arbeit also nicht. Nochmals Danke.

    @icestorm:
    Selbst AutoCAD macht partiell noch eine Menge übers GDI. Ich empfehle mal "Cadalyst" (kein Schreibfehler!) als Benchmark - grausamst.

    Zitat:
    Dass diese Ergebnisse für ATi schmählich sind, ist klar.
    Naja, Nvidia hat sich unter XP auch nicht grade mit Ruhm bekleckert. Die Dickschiffe beider Karten sind unter XP schwächliche Fliegen im Abendwind. Leichte Beute. Aber dass die 5er unter W7 so abstinken ist echt bemerkenswert.

    Was ich auch nicht verstehe ist die Tatsache, dass eine 8800 GTS 512 mit G92 stellenweise eine GTX285 sehr deutlich plättet, obwohl es doch gar nicht so unterschiedliche Karten sind. Und dann die IGP-Ergebnisse! Ok, der Vorteil der 7050 (nForce610i) liegt darin, dass sie noch 2D-Einheiten hat. Aber selbst ohne eigenen Speicher schneller zu sein als das HighEnd-Modell ist schon starker Tobak. Und Intel ist keine schlechte Alternative im 2D-Sektor. Erstaunlich...
    2
  • fffcmad
    Ja, der Artiekl ist sehr Aufschlussreich. Zum Glueck benutze ich seit dem ich die GTX280 habe, Vista/ 2008/ Windows 7. Sonst haette ich wohl auch schon rumgebloekt. Bei der X1950XT damals habe ich mich unter XP schon sehr geaergert. Unter > Vista gings dann aber.

    2D ist aus Herstellersicht wohl absolut uninteressant und das schon seit vielen Jahren. Wenn man ueberlegt, das die Riva TNT2 damals schon nicht in der Lage war, Diablo 1 ohne sichtbares Bildrollen darzustellen, hat sich eigentlich garnicht so viel veraendert.

    Erschreckend ist jedoch, das Onboard-Grafikkarten teilweise recht brauchbare Ergebnisse erzielen und eine Voodoo 4, die eigentlich allgemein wie ihre Vorgaenger als 2D-untauglich zu bezeichnen ist, in einem Teilbereich des Tests boese davon rennt.
    0
  • klomax
    AetiusGMA steht für Graphics Media Accelerator, die Onboard-Grafik älterer Intel-Systeme.Aetius


    Mich hat nur die "450" irritiert: Wird sich wohl doch eher auf die "950" beziehen, die sehr häufig in Kombination mit dem Atom anzutreffen ist/war.
    0
  • FormatC
    Natürlich GMA 940. War ein schusseliger Tippfehler. Ist bereits gefixt. Typischer Fall von falsch angelegter Spaltenüberschrift im Excel ;)
    0
  • user23
    Eine schöne Artikelfolge. Die Berichterstattung für diejenigen, die ihren Computer nicht zum Spielen brauchen, geht leider allzu oft unter.

    Was ich aber in diesem Zusammenhang vermisst habe, ist die iGPU von Clarkdale in den Benchmarks. Gerade Nicht-Gamer, die sich heute ein System zusammenstellen, hätten sich dafür interessiert.
    0
  • FormatC
    Da ich keinen Clarkdale habe, konnte ich keinen testen. Falls jemand so frei wäre, das zu ändern: nur zu ;)

    Im Ernst, falls so ein Teil greifbar ist, werden wir es sicher nachholen :)
    0