Vor über 13 Jahren habe ich mich mit der Abschaffung der 2D-Hardwarebeschleunigung unter Windows Vista und XP beschäftigt und mit beim Treiber-Team von (damals noch) ATI in Toronto keine Freunde fürs Leben gemacht. Das Gute an den beiden Artikeln, die damals einschlugen wie eine Bombe ist, dass sowohl AMD als auch NVIDIA damals anfingen, hektisch zu reagieren und ziemlich schnell auch Abhilfe geschaffen haben. Schlecht ist, dass so Manches bis heute noch nicht wieder so performant gelöst werden konnte, wie noch unter Windows XP und den Grafikkarten mit spezialisierten 2D-Funktionen. heute kommt also der Teil Zwei der Artikelreihe.
ATI im Rückwärtsgang? 2D-Leistung bleibt auf der Strecke | Retro
Auszüge aus dem Originalartikel vom 20.01.2020
Beschäftigen wir uns heute verstärkt mit der Relevanz des GDI und erklären die 2D-Grafikausgabe im Detail. Um die Ergebnisse richtig einordnen zu können, sind natürlich einige theoretische Grundkenntnisse nötig. Wir haben deshalb die Thematik etwas weiter vertieft, wobei wir auch diesmal die Darstellung stark vereinfacht haben, so dass es einfach und verständlich bleibt. Natürlich bleiben dadurch technische Finessen auf der Strecke, aber die Verständlichkeit für die breite Leserschaft hat Vorrang.
Warum testen wir in Zeiten von Windows 7 und Direct2D noch das GDI?
Man könnte meinen, spätestens seit der Einführung von DirectX10-fähigen Grafikkarten und Vista wäre das alte GDI für die Ausgabe der 2D-Zeicheninhalte überflüssig. Mit WPF (Windows Presentation Foundation) und damit auch Direct2D steht auf diesen Systemen der von Microsoft propagierte Nachfolger seit längerer Zeit schon in den Startlöchern. Allerdings gibt es auch heute noch eine Menge Argumente und Gründe, warum das GDI (Graphics Device Interface) immer noch eine nicht zu bestreitende Bedeutung besitzt und man deshalb einen Teil des Augenmerkes auch auf diesen Bereich legen sollte.
- Das GDI unterstützt auch ältere Grafikkarten, Direct2D benötigt zumindest eine Grafikkarte mit DirectX10-Unterstützung
- Das GDI gibt es, seit es Windows gibt, Direct2D läuft erst ab Vista und Windows 7
- Alle Programme, die zu XP (und älter) kompatibel sind nutzen das GDI
Viele Softwarehersteller schrecken bis heute vor der Umstellung zurück, denn man greift bei unterschiedlichen Programmen oft genug auf die gleichen Bibliotheken zu, die einmal fertig erstellt wurden. Eine Umstellung dieser Module hätte auch eine Anpassung aller betroffenen Programme zur Folge. Da die Leistungssteigerung in vielen Fällen kaum subjektiv spürbar ist, verdrängen Softwarehersteller diese Umstellung gern aus ökonomischen Gründen. Wenn man zum Beispiel mit verfolgt, wie lange allein die Implementierung von Direct2D in Teile des Mozilla Firefox dauert, wird man die Industrie verstehen, wenn sie diese Umstellung nur sehr langsam vollzieht. Darüber hinaus wäre es für viele Firmen aus betriebswirtschaftlichen Gründen keine Option, XP-Kunden als Zielgruppe komplett auszuschließen. Beides zu implementieren würde sich dann auf den Preis niederschlagen, den keiner mehr zu zahlen bereit wäre. Das GDI wird uns allein aus diesen Gründen sicher noch so lange erhalten bleiben, wie XP eine nennenswerte Rolle im Endanwenderbereich spielt.
Direct2D als Teil der Direct3D-Ausgabe (D3D)
Doch es gibt auch technische Gründe. Der bestehende und oft sehr ausgereifte Code ist nicht wirklich 1:1 portierbar. Direct2D erzeugt zudem einen nicht zu verachtenden Overhead und kann eigentlich nichts, was Direct3D auch könnte. Und wo man auf Direct3D lieber verzichtet, wird man die Gründe sicher gut abgewogen haben. Das GDI kann zudem unabhängig vom Ausgabegerät (Monitor, Drucker) genutzt werden. Eine einzige Routine kann so innerhalb eines Programmes gleichzeitig zum Anzeigen und zum Drucken aufgerufen werden, der Code und der Programmieraufwand reduzieren sich dadurch auf die Hälfte und auch die Fehlerwahrscheinlichkeit sinkt. Viele der vorhandenen preiswerteren Drucker sind zudem GDI-Drucker, so dass dieser Bestandteil des Betriebssystems vorerst wohl auch weiter erhalten werden wird, zumal es immer noch genügend Druckertreiber gibt, die nur das GDI unterstützen.
Der Sinn des Ganzen
Wir selbst sehen die Umsetzung von WPF/Direct2D natürlich als von Microsoft forcierten und wohl sicher auch unumkehrbaren technischen Fortschritt, möchten aber bei aller Euphorie über neue Techniken mit diesem Artikel noch einmal nachdrücklich an die Gegenwart erinnern. Es gibt einschließlich Windows XP noch so viele technische Altlasten, dass man sich nicht nur nach vorn orientieren kann, ohne die aktuelle Lage zu berücksichtigen. Dass so etwas schnell schief gehen kann, erkennt man am Beispiel der XP-Phobie der 780G/785G-Onboardgrafik wohl am besten.
- 1 - Einführung: Die Relevanz der 2D-Grafikausgabe über das GDI
- 2 - Das 2D-GDI und dessen Grafikausgabe von XP bis Windows 7 im Detail
- 3 - 2D-Grafikausgabe über das GDI: direkt oder gepuffert?
- 4 - Die Symptome der HD 5xxx-Serie und deren Relevanz unter Windows 7
- 5 - Tom2D: Unser einfacher 2D-GDI-Benchmark
- 6 - Tom2D: Textausgabe
- 7 - Tom2D: Linien
- 8 - Tom2D: Kurven
- 9 - Tom2D: Polygone
- 10 - Tom2D: Rechtecke
- 11 - Tom2D: Ellipsen
- 12 - Tom2D: Blitting
- 13 - Tom2D: Stretching
- 14 - Fazit
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 →