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

Das 2D-GDI und dessen Grafikausgabe von XP bis Windows 7 im Detail

Windows XP: Klare Fronten mangels Konkurrenz

Das GDI spielt bis einschließlich Windows XP die zentrale Rolle bei der Ausgabe aller 2D-Inhalte,was sich anhand des (leicht vereinfachten) Schemas erkennen lässt. Wir wollen nun den Ablauf anhand der Entstehung und Ausgabe einer Linie nachvollziehen. Unsere Mausbewegungen für das Zeichnen einer Linie gehen als Information zunächst an win32k.sys, der zentrale Anlaufstelle für alle möglichen Ereignisse. Egal ob Maus- bzw. Tastatureingaben oder alle grafischen Aufgaben, hier werden Informationen gesammelt und zielgerichtet weiterverteilt. Unsere Anwendung erhält nun diese Information und setzt diese in einen GDI-Zeichenbefehl um. Dieser landet in der GDI und damit wiederum bei win32k.sys. Folgen wir einfach den lila Pfeilen.

Unter XP ist die alte 2D-Welt noch in OrdnungUnter XP ist die alte 2D-Welt noch in Ordnung

Anhand dieses einfachen Schemas ist auch ersichtlich, warum die 2D-Hardarebeschleunigung recht einfach umzusetzen ist, vorausgesetzt natürlich, die eingesetzte Grafikkarte verfügt auch über die entsprechenden Fähigkeiten. Der blaue Pfeil kennzeichnet übrigens die Rückinformation an das Programm, damit dieses weiß, dass sich Fensterinhalte geändert haben (z.B. wenn ein anderes Fenster nicht mehr Teile verdeckt) und dass der Inhalt vom Programm neu gezeichnet werden muss.

Bis einschließlich der Radeon HD1xxx Serie bei ATI und der Geforce 7xxx bei Nvidia besitzen auch alle Consumer-Grafikkarten eine separate 2-Einheit. Diese fiel mit der Einführung der DX10-Karten mit der Unified-Shader-Architektur bei beiden Herstellern weg.

Vista: CPU statt GPU – Puffer statt Direktlieferung

Unter Windows Vista wurde, wie bereits im ersten Teil erklärt, ein völlig neuer Weg beschritten. Um das Ganze besser zu verstehen, müssen wir es weiter vereinfachen. Bis zur GDI erfolgt das Zeichnen analog zu XP, die Aufgabe der win32k.sys, die Fenster zu verwalten, übernimmt aber nun der DWM (Dynamic Window Manager).  Hinzu kommt, dass ab Windows Vista die Fensterverwaltung  komplett über Direct3D geschieht. Das Fenster jeder Anwendung wird deshalb im Texturspeicher der Grafikkarte als 3D-Textur abgelegt. Eigentlich eine praktische Angelegenheit, aber das GDI kann diese Inhalte nicht mehr direkt ansprechen. Die Kommunikationskette scheint demnach unterbrochen.  An dieser Stelle kommt nun die bereits erwähnte doppelte Pufferung ins Spiel.

Speicherverschwendung und Umwege führen zur subjektiv empfundenen Trägheit von VistaSpeicherverschwendung und Umwege führen zur subjektiv empfundenen Trägheit von Vista

Was passiert genau? Betrachten wir die roten Pfeile. An Stelle des  eigentlichen Grafiktreibers (unter XP der DDI Display Treiber) wird der neue CDD (Canonical Display Driver) angesprochen, der grafikkartenunabhängig ein direkter Bestandteil von Vista ist. Während sich der endgültige Fensterinhalt bereits als Textur im Speicher der Grafikkarte befindet, muss für jedes Fenster nun zusätzlich ein äquivalenter Puffer im Systemspeicher angelegt werden (Fensterbreite x Fensterhöhe x 4 Byte für die Farbe). Im Systemspeicherpuffer wird die spätere Fensteransicht zunächst als Bitmap nach der herkömmlichen Methode erzeugt und erst danach als Endprodukt in den Videospeicher als Textur übernommen.  Der DWM wiederum verwaltet die Fenster und erstellt die Inhalte über Direct3D. Der DWM erhält auch die Informationen, wenn sich in einem Fenster ein Bereich geändert hat und dieses damit neu zu zeichnen ist (blauer Pfeil). In diesem Moment kopiert der DWM die Inhalte des Systemspeichers in den Videospeicher und lässt das Fenster über Dirct3D (D3D) neu rendern. Das Programm selbst muss (im Gegensatz zu der Lösung unter XP) die Inhalte nicht mehr erneut zeichnen.

Wir stellen sehr schnell fest, dass bei diesen Umwegen keine Hardwarebeschleunigung mehr möglich ist und dass auch das direkte Zeichnen im Vergleich zu XP erheblich an Performance einbüßt. Dies alles äußert sich dann in den bekannten Symptomen, anhand derer man Vista schnell eine gewisse Trägheit und vor allem hohen Speicherbedarf unterstellt.

Windows 7: Hardwarebeschleunigung in homöopathischen Dosen

Wir hatten es im ersten Teil ja bereits erwähnt, dass Windows 7 Teile der GDI-Befehle wieder per Hardwarebeschleunigung unterstützen lassen kann, solange WDDM 1.1-Treiber verwendet werden. Fehlen diese, so wie bei einigen älteren Intel-Grafiklösungen, verhält sich Windows 7 wieder so ähnlich wie Vista.  Was bedeutet das für uns nun genau? Betrachten wir wiederum das Schema:

Tricks und Kniffe gegen den BallastTricks und Kniffe gegen den Ballast

Auf den ersten Blick sieht alles aus, wie unter Vista. Wir sehen aber, dass nicht mehr zwangsläufig für jedes Fenster ein doppelter Puffer angelegt werden muss. An die Stelle des Systemspeichers tritt der sogenannte „non local memory“ (auch „aperture space“ genannt). Hierbei handelt es sich um einen bestimmten Bereich des normalen Systemspeichers, auf den auch die Grafikkarte direkt zugreifen kann. Ändert sich nun ein Fensterbereich durch Verschieben oder Einblenden, wird der Inhalt dieses Bereiches einfach und ohne Umwege in den Videospeicher der Grafikkarte kopiert.

Im Vergleich zu XP können  jedoch nur wenige GDI-Befehle auf die Unterstützung durch die GPU hoffen:  Das Rendern von Text, ColorFill, BitBlt mit den Standard-ROPS, AlphaBlend, TransparentBlt und StretchBlt. Kurzum für Nicht-Insider: Das Ausgeben von Text, die Vollflächenfüllung mit einfachen Farben, das Kopieren von Bildinhalten und Transparenzen. Während das  Zeichnen von geometrischen Figuren überhaupt nicht unterstützt wird, können das Kopieren von Bildinhalten und die Füllung sogar direkt am „aperture space“  vorbeigeschleust und direkt ausgegeben werden.

Fazit:

Windows 7 verringert den Speicherbedarf durch die Abschaffung der doppelten Pufferung. Selbst Vista profitiert im Nachhinein vom neuen Treibermodell. So ist die Hardwarebeschleunigung seit dem Plattformupdate (mit dem auch DirectX11 Einzug hielt) analog zu Windows 7 wieder möglich. Der Nachteil liegt jedoch in der Komplexität und den möglichen Treiberproblemen. Diesen wiederum waren wir ja auf der Spur.

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