Basics GPUs Graphics Reviews

2D performance in reverse? A Comprehensive Analysis | Retro Part 2 of 2

Windows XP: Clear fronts due to lack of competition

Up to and including Windows XP, the GDI plays the central role in the output of all 2D content,which can be seen in the (slightly simplified) schematic. Let’s now retrace the process by looking at the creation and output of a line. Our mouse movements for drawing a line are first sent as information to win32k.sys, the central point for all possible events. No matter if mouse or keyboard inputs or all graphical tasks, here information is collected and distributed purposefully. Our application now receives this information and converts it into a GDI drawing command. This ends up in the GDI and thus again in win32k.sys. Let’s just follow the purple arrows.

Unter XP ist die alte 2D-Welt noch in Ordnung

So under XP, the old 2D world is still fine. This simple scheme also shows why 2D hardare acceleration is quite easy to implement, provided of course that the graphics card used also has the corresponding capabilities. By the way, the blue arrow indicates the feedback to the program, so that it knows that window contents have changed (e.g. when another window no longer covers parts) and that the contents must be redrawn by the program.

Up to and including the Radeon HD1xxx series at ATI and the Geforce 7xxx at Nvidia, all consumer graphics cards also have a separate 2 unit. This was dropped by both manufacturers with the introduction of the DX10 cards with the unified shader architecture.

Vista: CPU instead of GPU – buffer instead of direct delivery

Under Windows Vista, a completely new path was taken, as already explained in the first part. To understand the whole thing better, we have to simplify it further. Up to the GDI, the drawing is analogous to XP, but the task of win32k.sys to manage the windows is now taken over by the DWM (Dynamic Window Manager). In addition, starting from Windows Vista the window management is done completely by Direct3D. The window of each application is therefore stored in the texture memory of the graphics card as a 3D texture. Actually a practical matter, but the GDI can no longer address this content directly. The communication chain therefore seems to be interrupted. This is where the already mentioned double buffering comes into play.

Speicherverschwendung und Umwege führen zur subjektiv empfundenen Trägheit von Vista

Memory waste and detours lead to the subjectively perceived sluggishness of Vista

What happens exactly? Let’s look at the red arrows. Instead of the actual graphics driver (under XP the DDI display driver), the new CDD (Canonical Display Driver) is addressed, which is a direct part of Vista, independent of the graphics card. While the final window content is already in the graphics card memory as a texture, an additional equivalent buffer must now be created in the system memory for each window (window width x window height x 4 bytes for the color). In the system memory buffer, the later window view is first created as a bitmap using the conventional method and only then transferred to the video memory as a texture as the final product. The DWM in turn manages the windows and creates the content via Direct3D. The DWM also receives the information when an area in a window has changed and thus needs to be redrawn (blue arrow). At this moment the DWM copies the contents of the system memory into the video memory and lets the window be re-rendered via Dirct3D (D3D). The program itself (in contrast to the solution under XP) does not have to draw the contents again.

We quickly notice that hardware acceleration is no longer possible with these detours and that direct drawing also loses considerable performance compared to XP. All of this then manifests itself in the familiar symptoms, on the basis of which Vista is quickly assumed to have a certain sluggishness and, above all, high memory requirements.

Windows 7: Hardware acceleration in homeopathic doses

We already mentioned that Windows 7 can support parts of the GDI commands via hardware acceleration again, as long as WDDM 1.1 drivers are used. If these are missing, as is the case with some older Intel graphics solutions, Windows 7 again behaves similar to Vista. What does this mean for us exactly? It is important that a double buffer does not necessarily have to be created for every window anymore. The so-called “non local memory” (also called “aperture space”) takes the place of the system memory. This is a certain area of the normal system memory that can also be accessed directly by the graphics card. If a window area now changes by moving or fading in, the content of this area is simply copied into the video memory of the graphics card without detours.

Compared to XP, however, only a few GDI commands can hope for GPU support: Render Text, ColorFill, BitBlt with the default ROPS, AlphaBlend, TransparentBlt and StretchBlt. In short, for non-insiders: rendering text, solid fill with simple colors, copying image content and transparencies. While drawing geometric figures is not supported at all, copying image contents and filling can even be passed directly past the “aperture space” and output directly.

Interim conclusion

Windows 7 reduces memory requirements by eliminating double buffering. Even Vista benefits from the new driver model in retrospect. Hardware acceleration has been possible again since the platform update (which also introduced DirectX11), similar to Windows 7. The disadvantage, however, is the complexity and the possible driver problems. We were on the trail of these again.

 

Kommentar

Lade neue Kommentare

MechUnit

Mitglied

70 Kommentare 40 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

269 Kommentare 237 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 374 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,953 Kommentare 20,769 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,032 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,032 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

592 Kommentare 635 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,895 Kommentare 1,192 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,895 Kommentare 1,192 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

70 Kommentare 40 Likes

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

Antwort 1 Like

e
eastcoast_pete

Urgestein

1,895 Kommentare 1,192 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,953 Kommentare 20,769 Likes

AMD vor NV und Intel :)

APUs gehen, iGP bei Intel eher meh

Antwort 1 Like

e
eastcoast_pete

Urgestein

1,895 Kommentare 1,192 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,953 Kommentare 20,769 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

Editor-in-chief and name-giver of igor'sLAB as the content successor of Tom's Hardware Germany, whose license was returned in June 2019 in order to better meet the qualitative demands of web content and challenges of new media such as YouTube with its own channel.

Computer nerd since 1983, audio freak since 1979 and pretty much open to anything with a plug or battery for over 50 years.

Follow Igor:
YouTube Facebook Instagram Twitter

Werbung

Werbung