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.

Page: 1 2 3 4 5 6 7

ZDNet.de Redaktion

Recent Posts

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

1 Woche ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

1 Woche ago

Bedrohungsindex: Deutliche Zunahme von Infostealern im Oktober

Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.

1 Woche ago

Chrome 131 schließt zwölf Sicherheitslücken

Eine schwerwiegende Anfälligkeit hebelt die Sicherheitsfunktion Seitenisolierung auf. Betroffen sind Chrome für Windows, macOS und…

1 Woche ago

DeepL Voice mit KI für Sprach- übersetzungen

DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.

1 Woche ago

November-Patchday: Microsoft schließt Zero-Day-Lücken in Windows

Betroffen sind Windows und Windows Server. Microsoft patcht aber auch Schwachstellen in Excel, Word und…

1 Woche ago