Voller Erwartung installierten auch wir seinerzeit Windows Vista. Aufwändig beworben und mit vielen Vorschusslorbeeren bedacht, wurden große Erwartungen geweckt. Es gab viel Licht und leider noch mehr Schatten, aber Hauptsache ohne Hardwarebeschleunigung.
Was zunächst revolutionär erschien, wich von Anwendung zu Anwendung echtem Ärger und stellenweise sogar Entsetzen. Betrachten wir die Punkte im Einzelnen:
Implementierung der 2.5D-Ebene als Hardwarelayer
Diese Technologie wurde erstmals mit Windows Vista implementiert. Längst überfällig, aber 2006 war es dann endlich soweit. Eine kleine Einschränkung gab es jedoch trotzdem: das Ganze funktioniert ärgerlicherweise nur mit aktivierter Aero-Oberfläche! Für das 2.5D-Layering wird dringend eine 3D-fähige Grafikkarte vorausgesetzt, selbst wenn man gar keine 3D-Anwendungen oder Spiele nutzen mag. Wer nur das Thema Vista Basic verwendet, der wird wie unter XP von Nachzieheffekten gepeinigt, da das Layering dann automatisch deaktiviert ist. Trotz 3D-Grafikkarte.
Die Umsetzung des 2.5D-Layerings bereitete Microsoft jedoch nicht wenige Probleme. Und Microsoft wäre wohl auch nicht Microsoft, wenn man nicht mit einer netten Geste von Nonchalance einfach das weggelassen hätte, was unter Zeitdruck die meisten Kopfschmerzen bereitet. Langsam, aber Hauptsache stabil. Und den Termin unbedingt einhalten. Was war passiert? Wir hatten bereits das GDI als Schnittstelle für die Grafikprogrammierung erwähnt. Spätestens mit der Einführung der leider sehr langsamen GDI-Erweiterung GDI+, die aufgrund mangelnder Performance nie den wirklichen Durchbruch schaffte, war ein kleines Schnittstellenchaos nicht mehr zu leugnen. Es schien unmöglich, GDI, GDI+, DirectDraw und Direct3D gleichberechtigt hardwarebeschleunigt zu implementieren.
WDDM & DWM – das „Windows Display Driver Model“ und der „Dynamic Windows Manager“
Zusammen mit dem neuen Treibermodell hat Windows als dessen Bestandteil den DWM eingeführt. Das Ganze ist ein wenig tricky und dient Microsoft als neue Schicht zwischen den Fenstern und den Zeichenbefehlen auf der einen und dem Treiber für die Grafikkarte auf der anderen Seite. Die direkte Kommunikation war damit erst einmal unterbrochen. Frei nach dem Motto „alles hört auf mein Kommando“ übernahm der DWM nun erstmals die Koordination der einzelnen Schnittstellen. Bei dieser Umsetzung blieb, wie bereits erwähnt, ein wichtiger Bestandteil auf der Strecke: die 2D-Hardwarebeschleunigung der GDI-Zeichenfunktionen. Völlig unverständlich, aber wahr! Der Flaschenhals von Vista: die GDI!
Flaschenhals, Spaßbremse und Speicherfresser
Die großen Mengen belegten Speichers unter Vista schreibt man gern Superfetch zu. Dies ist jedoch nur die halbe Wahrheit. Durch das Weglassen der 2D-Hardwarebeschleunigung berechnet das GDI den ganzen Fensterinhalt unter Vista allein über die CPU. Das Ganze landet im Anschluss in einem Hauptspeicherpuffer des DWM. Dieser wiederum leitet das fertig erstellte Fenster dann an die Grafikkarte weiter. Hier entsteht ganz schnell ein Flaschenhals, denn es kann immer nur ein Fenster GDI-Befehle an den DWM schicken. Asynchrones Arbeiten ist nicht möglich und es entsteht allzu oft eine recht große Warteschlange. Dies alles kostet nicht nur wertvolle Zeit, sondern eben auch den wertvollen Speicher, da wie beschrieben alle Fensterinhalte im DWM zwischengepuffert werden. Bei mehreren Fenstern kommen schnell mal mehrere 100 MB zusammen. Im Extremfall bleibt Vista einfach „stehen“, wenn beispielsweise ein Scherzprogramm solange neue Fenster öffnet, bis am Schluss gar nichts mehr geht.
Zusammenfassung:
- Vista führt erstmals das 2.5D-Ebenen-Modell als Hardware-Layer ein
- Unter Aero gehört das lästige Neuzeichnen der Fensterinhalte zur Vergangenheit
- Microsoft „vergisst“ jedoch die 2D-Beschleunigung der GDI-Zeichenfunktionen
- Der DWM kann Fenster nicht asynchron abarbeiten, was sichtbar Performance kostet
- Die Warteschlange der GDI-Befehle im DWM kostet sehr viel wertvollen Speicher
- 1 - Einführung: 2D-Grafik – ungeliebtes Stiefkind oder Routineübung?
- 2 - Die Grenzen von 2D und 2.5D - Der Mythos 2D-Hardwarebeschleunigung
- 3 - Windows XP: Old school 2D und die Grenzen des WM_PAINT
- 4 - Windows Vista: Echter Fortschritt und die Kunst des Weglassens
- 5 - Windows 7: Rückkehr des verlorenen Sohnes
- 6 - Windows 7: Radeon HD5xxx ohne 2D-Beschleunigung
- 7 - Tom2D: 2D-Benchmark HD 5870 vs. GTX 285 unter Windows 7
- 8 - Tom2D: Fazit und Vorschau auf Teil 2 des Artikels
16 Antworten
Kommentar
Lade neue Kommentare
Mitglied
Veteran
Urgestein
1
Urgestein
1
Urgestein
Urgestein
Urgestein
Urgestein
Mitglied
Urgestein
1
Urgestein
Mitglied
1
Alle Kommentare lesen unter igor´sLAB Community →