Grafik in Windows 7: Rückkehr der Hardwarebeschleunigung

Über die Jahre haben sich mehrere APIs etabliert, die Zugriff auf die Fenster in Windows erhalten. Die ursprüngliche Schnittstelle, die noch aus Windows 1.0 stammt, ist das GDI. Damit lassen sich einfache 2D-Grafiken zeichnen. Heute kommen vor allem DirectX-Technologien wie DirectDraw und Direct 3D hinzu.

Die Schwierigkeit dabei besteht in der Koexistenz der verschiedenen APIs. Das ist eine durchaus komplexe Aufgabe. Schon oft hat Microsoft dabei etwas geschummelt. Das gilt zum Beispiel für den GDI-Nachfolger GDI+. GDI ist ein reines Standard-C-Interface. Programmcode von komplexen Anwendungen, der GDI verwendet, ist sehr schwer zu lesen. Neue Entwickler, die sich in ein Projekt einarbeiten müssen, haben Mühe, sich durch bestehenden Code zu arbeiten.

GDI+ ist ein C++-Interface, dass mehr Funktionen bietet und auch gut von .NET-Anwendungen genutzt werden kann. Vergleichbar ist GDI+ mit der Quartz2D-Schnittstelle von Mac OS X.

GDI+ ist seit Windows NT4 Service Pack 4 verfügbar. Entwickler müssen also nicht befürchten, dass GDI+-Anwendungen nur unter den neuesten Windows-Versionen laufen. Allerdings ist GDI+ bis Windows XP als "Huckepack-API" auf GDI implementiert. So konnte Microsoft das Problem umgehen, dass die APIs GDI und GDI+ konkurrierend auf Windows-Fenster zugreifen.

Der negative Effekt ist allerdings, dass GDI+ in dieser Implementierung sehr performanceschwach ist. Chris Jackson stellte anhand eines einfachen Quick-and-dirty-Benchmarks fest, dass GDI+ etwa um den Faktor sechs langsamer ist. Derartige Werte motivieren Entwickler kaum, GDI+ zu verwenden. Hinzu kommt, dass sich Altanwendungen nicht so einfach portieren lassen.


Bild 7: Die Grafik (rote Balken) zeigt den immensen Speicherverbrauch des DWM unter Vista (Quelle Microsoft).

Mit Vista hat Microsoft bezüglich GDI+ durchaus Fortschritte erzielt. ZDNet konnte mit dem Chris-Jackson-Benchmark eine GDI+-Performance von 92,4 Prozent messen bezogen auf die Geschwindigkeit von GDI. Allerdings hat Microsoft erneut geschummelt. Mit Vista hat Microsoft den Desktop Window Manager (DWM) eingeführt. Der sollte als Teil des Windows Display Driver Model eine Schicht zwischen Fenster und Treiber bilden und die Zugriffe verschiedener APIs auf die Fenster koordinieren.

Dabei hat Microsoft allerdings bei dem am meisten verwendeten 2D-API GDI geschlampt. Die 2D-Hardwarebeschleunigung wurde bei der Neuauflage des GDI nicht implementiert. Stattdessen rendert GDI unter Vista den Fensterinhalt mit der CPU in einen Hauptspeicherpuffer des DWM, der das fertige Fenster an die Grafikkarte weiterleitet. Ferner kann der DWM immer nur die GDI-Befehle eines Fensters bearbeiten. So entsteht unter Vista ein Bottleneck, da alle anderen Fenster warten müssen.

Das ist nicht nur langsam, sondern verbraucht auch jede Menge Speicher. Bei 10 bis 15 Fenstern auf dem Desktop benötigt der DWM bei aktivierter Aero-Oberfläche oft 100 MByte und mehr für sich.

Themenseiten: Anwendungsentwicklung, Betriebssystem, Business-Software, Grafikchips, Microsoft, Software, Windows 7

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

2 Kommentare zu Grafik in Windows 7: Rückkehr der Hardwarebeschleunigung

Kommentar hinzufügen
  • Am 1. August 2009 um 14:09 von grep

    Sicherlich interessant, aber….
    …das "Hochlicht" ist ohne Zeifel die unvergleichliche Performance eines gewissen Herrn Ballmer.
    Ich wünschte heute würde man immer noch so Software verkaufen. Man nimmt sich einfach immer viel zu ernst.
    mfg

  • Am 25. August 2009 um 7:51 von Zockelmaniac

    Kann W7 auch den Dualspan modus
    Das ist was mir in Vista total abging
    das man in Games nur noch einen Monitor hatte anstatt 3 wie unter XP…

    warum steht davon nix im Artikel
    das Feature war für mich der Grund Vista zu deinstallieren und XP neu aufzuspielen…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *