Grafikkarten Grundlagenartikel Testberichte VGA

2D-Leistung im Rückwärtsgang? Eine umfassende Analyse | Retro Teil 2 von 2

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 Ordnung

Unter XP ist die alte 2D-Welt also 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 Vista

Speicherverschwendung 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 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?  Wichtig ist, 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.

Zwischenfazit

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.

 

Kommentar

Lade neue Kommentare

MechUnit

Mitglied

64 Kommentare 38 Likes

Interessanter Hintergundbericht.

Damals (Windows 1.0-3.00) war eben das Amiga OS aufgrund des Systems mit seinen Co-Prozessoren (für 2D hauptsächlich Blitter) und echten überlappenden Fenstern besser, von der schon damals unerschütterlichen Stabilität einmal abgesehen.

Das Mac OS setzte nochmal einen drauf. Auch da gab es ja fast von Anfang an quasi integrierte Hardwarebschleunigung für 2D-Anwendungen.

Dann gab es ja noch SGI-OS - ein Traum.

Präemptives Multitasking und schnelles, flüssiges Arbeiten war man also hier auf den 3 o.g. Systemen schon gewohnt. Ok, auf A500 & A1000 war aufgrund des langsameren Motorola 68000-Prozessors und 512kb-, bzw. 1 MB Chip-RAM und ohne HDD mit Diskettenzugriff die Lade- und Arbeitsgeschwindigkeit etwas langsamer. Dennoch war das ein besseres Gefühl und komfortabler als noch mit Windows 1.0, geschweige denn DOS - dank Blitter und Copper mit nicht 100 dazwischenfunkenden Treibern und Schnittstellen. Die im System fest integrierte Hardware war eben fest im OS integriert. Angebundene Hardware und deren Treiber wurden "hinten dran" geschoben. Reflections, Video Toaster, Cinema 4D oder Lightwave (die beiden letztgenannten dann schon auf AGA-Maschinen aka A4000, später mit Power PC u.a. in Verbindung mit Silicon Graphics) liefen wie Butter. 2,5D-Layer und deren Beschleunigung spielten da aber auch noch keine Rolle.

Das war aber auch ein Vorteil der damaligen geschlossenen Systeme mit aufs Leib zugeschnittenen Betriebssystemen. Der PC war ja offen und es musste ja schon damals auf unterschiedlichen Systemen das OS möglichst performant und stabil laufen. Damit war (und ist) ein PC nicht nur von der dedizierten, modularen Hardware abhängig, sondern auch über seine Schnittstellen und Treiber. Wenn dann noch die 2D-Unterstützung schlecht oder gar nicht integriert ist (schlimmstenfalls noch auf Hardware-, OS-, Schnittstellen- und Treiberebene) fehlt, ist das für flüssiges Arbeiten im Betriebssystem ein Desaster. Das merkte man sogar später tw. in Windows NT oder 2000 auf professionellen Maschinen. Es stockte halt mal oder es gab "Denkpausen".

Ein gutes Beispiel hierfür waren damals auch Emulatoren. Man merkte direkt, wenn auf Hardwareebene einfach die 2D-Beschleunigung fehlte und die CPU dann mehr schuften musste.

Antwort 2 Likes

Klicke zum Ausklappem
Lagavulin

Veteran

229 Kommentare 187 Likes

Vielen Dank für den interessanten Blick zurück in die 2010er Jahre. Habe ich mit großem Interesse gelesen, weil ich mich damals noch gar nicht mit PC-Technik beschäftigt habe. Spannt man einen zeitlichen Bogen von ATI bis zum 12VHPWR, dann ist Igor‘sLab für mich wirklich so etwas wie „CSI Chemnitz“ im PC-Bereich.

Antwort 1 Like

F
Furda

Urgestein

663 Kommentare 371 Likes

Irgendwo in dieser Zeit da, wohl noch unter WinXP, hatte ich noch einer der letzten Karten von ATI mit AGP Schnittstelle in Betrieb, als der endgültige Wechsel zu PCI vollzogen geworden war.

Der Artikel hat einige Trigger, bin mal auf den 2. Teil gespannt.

Auf alle Fälle, die Einleitung hier birgt für mich schon jetzt das grösste Ausrufezeichen, nämlich, dass man den Finger in die Wunde drücken muss, um eine Änderung/Verbesserung zu erwirken. Damals schon so und heute immer noch brandaktuell. Da hatte ATI offenbar, wie auch alle anderen immer, negativ darauf reagiert, anstatt einsichtig und konstruktiv sein zu wollen. Von ATIs Treiber-Kultur hat wohl bis heute ein Teil bei AMD überlebt.

Antwort 1 Like

Igor Wallossek

1

10,222 Kommentare 18,924 Likes

Das missgünstige Treiber Team firmiert heute immer noch unter ATI in Toronto und es sind die gleichen Leute, die heute alles verdongelt haben, weil sie das MorePowerTool nicht wollen. Das geht schon seit Jahren so :D

Antwort 4 Likes

Derfnam

Urgestein

7,517 Kommentare 2,029 Likes

Toronto Trittchen - guten Feinden gibt man ein Trittchen. Oder 2.
Wobei ich Ati & the Vandalers mit 'Nowhere Toronto' bevorzuge.

Die damaligen Kommentare unter bzw zu den Artikeln läs ich zu gern nochmal.

Antwort Gefällt mir

Derfnam

Urgestein

7,517 Kommentare 2,029 Likes

Alles gut und schön, @Igor Wallossek, aber ich wollte schon ein wenig Wehmut fühlen wegen der alten Köppe.

Antwort Gefällt mir

C
ChaosKopp

Urgestein

551 Kommentare 561 Likes

Ich erinnere mich noch gut an die zugrunde liegenden Artikel und die Emsigkeit, die Du damals ausgelöst hast

Auch wenn die Treiber-Truppe Dich damals hasste, hast Du das Produkt selbst massiv vorangetrieben.

Eigentlich wäre Dankbarkeit angemessen gewesen.

Antwort Gefällt mir

e
eastcoast_pete

Urgestein

1,505 Kommentare 851 Likes

Ja, wenn man darauf hinweist, daß der König nackt dasteht oder der tolle GPU Treiber für die neueste Karte kaum 2D packt, macht man sich schnell unbeliebt. Auch wenn man damit, so wie hier @Igor Wallossek , ATI einen großen Gefallen hattest, denn die Käufer finden solch unterirdische Leistung gar nicht gut. Wie heißt es so schön im Englischen: " No good deed goes unpunished". ATI, anstatt sich zu schämen und für den Hinweis zu danken, wurde ärgerlich und nachtragend.

Antwort Gefällt mir

e
eastcoast_pete

Urgestein

1,505 Kommentare 851 Likes

Der Toaster auf den großen Amigas waren ja aus gutem Grund jahrelang das Kit der Wahl bei frühen CGI Geschichten. SGI Workstations waren klar besser, aber wer hatte schon soviel Geld? Die waren nämlich richtig teuer, für das Geld konnte man schon ein sehr schönes Auto (Oberklasse, keinen Golf 😀) kaufen .

Antwort 1 Like

MechUnit

Mitglied

64 Kommentare 38 Likes

Allerdings - das waren Preise jenseits von gut und böse :D

Antwort 1 Like

e
eastcoast_pete

Urgestein

1,505 Kommentare 851 Likes

Waren (und sind) sehr gute Hintergrund Artikel, danke @Igor Wallossek für das Encore! Und jetzt ein paar Fragen zum Stand der Dinge 2023: wie sieht es denn heutzutage mit Unterstützung von 2D und 2.5D Grafik aus? Sind die iGPUs hier eigentlich immer noch gleichauf (oder besser?) als viele dGPUs, und gibt's hier Unterschiede zwischen Intel iGPUs und den AMD APUs?

Antwort Gefällt mir

Igor Wallossek

1

10,222 Kommentare 18,924 Likes

AMD vor NV und Intel :)

APUs gehen, iGP bei Intel eher meh

Antwort 1 Like

e
eastcoast_pete

Urgestein

1,505 Kommentare 851 Likes

Danke! Auch und gerade wenn man doch einiges machen will, das nach wie vor 2 bzw 2.5D ist; vor allem wenn mehrere UHD Monitore befeuert werden sollen. Interessant, daß AMD aus dem Debakel damals gelernt hat, auch wenn Toronto immer noch schmollt 😁

Antwort 1 Like

P
Postguru

Mitglied

39 Kommentare 7 Likes

Und heute mit einer 6900XT unter Win10
Direct drawing to visible device:
BENCHMARK: DIB-BUFFER AND BLIT

Text: 23245 chars/sec
Line: 28631 lines/sec
Polygon: 12435 polygons/sec
Rectangle: 3229 rects/sec
Arc/Ellipse: 15193 ellipses/sec
Blitting: 14961 operations/sec
Stretching: 1107 operations/sec
Splines/Bézier: 17800 splines/sec
Score: 201

DIB Buffering:
BENCHMARK: DIB-BUFFER AND BLIT

Text: 60096 chars/sec
Line: 151668 lines/sec
Polygon: 631579 polygons/sec
Rectangle: 5491 rects/sec
Arc/Ellipse: 347222 ellipses/sec
Blitting: 58207 operations/sec
Stretching: 7123 operations/sec
Splines/Bézier: 70822 splines/sec
Score: 4510

scheint einiges besser zu laufen .. jedenfalls gepuffert ;)

Antwort Gefällt mir

Igor Wallossek

1

10,222 Kommentare 18,924 Likes

DIB geht direkt in den Speicher, Direct Draw jeder einzelne Pups durch die Renderpipeline.

Antwort Gefällt mir

Danke für die Spende



Du fandest, der Beitrag war interessant und möchtest uns unterstützen? Klasse!

Hier erfährst Du, wie: Hier spenden.

Hier kannst Du per PayPal spenden.

About the author

Igor Wallossek

Chefredakteur und Namensgeber von igor'sLAB als inhaltlichem Nachfolger von Tom's Hardware Deutschland, deren Lizenz im Juni 2019 zurückgegeben wurde, um den qualitativen Ansprüchen der Webinhalte und Herausforderungen der neuen Medien wie z.B. YouTube mit einem eigenen Kanal besser gerecht werden zu können.

Computer-Nerd seit 1983, Audio-Freak seit 1979 und seit über 50 Jahren so ziemlich offen für alles, was einen Stecker oder einen Akku hat.

Folge Igor auf:
YouTube   Facebook    Instagram Twitter

Werbung

Werbung