Dedicated graphics cards first became must-haves in a purely two-dimensional realm. It’s no secret that these boards still deliver excellent performance today when it comes to handling complex rendering tasks. Even so, these old cards slow to a crawl in everyday use, especially when it comes to rendering complex graphics effects associated with the latest versions of Windows. On the one hand, this stems from the graphical complexity of modern Windows user interfaces, and on the other, from limited graphical functionality. Let’s tackle these elements, one at a time…
2D Acceleration for Drawing Functions
This section applies to that part of 2D graphics acceleration related to native rendering of graphics output, from GDI through the graphics card itself. This includes simple geometric objects like pixels, lines, curves, polygons, rectangles, and ellipses on the one hand, and their scaling, rendering, or font-smoothing operations (like TrueType or OpenType) on the other.
Early support for hardware acceleration of so-called “2D primitives” in graphics cards is gone, and has been missing from consumer-grade products for some time now. Today, acceleration of two-dimensional graphics functions comes as an analog to three-dimensional acceleration, but is handled solely and completely by graphics driver software rather than on-board hardware.
In the second part of this story, we will introduce and explain a benchmark test that we developed especially for two-dimensional graphics, which tests key and fundamental 2D graphics functions thoroughly. Furthermore, this benchmark shows that driver software exercises blatant and unexpected influence over 2D graphics. We also present a small selection of nine overall test criteria as well.
2.5D Acceleration of GUI Displays
Translation of drawing functions is only a part of two-dimensional acceleration. A noticeable and perceptibly positive acceleration is available from current 3D graphics cards that can render, manage, and display 2.5D graphics information in hardware.
How does this work? As with 3D displays, both visible and obscured portions of window regions are rendered and stored in their entirety as virtual rectangular regions, and represent a real-time view of the contents for all active windows. Thus, nothing needs to be recalculated when windows move or change; only what was formerly obscured and is now visible needs to be drawn, along with anything that’s changed since the last refresh. The graphics card always knows the size and position of the virtual rectangles represented as windows. Using the "depth buffer" (Z-buffer), the card keeps track of the order and display priority for windows or objects on display (also known as the Z-order). Thus, the graphics card can decide what’s visible and what needs to be rendered on-screen all by itself.
Let’s summarize (and emphasize) what this means:
Current 2D hardware acceleration includes both the implementation of key 2D drawing functions as well as the implementation of 2.5D layering techniques for windows and user interface display.
It would be downright exhausting to examine each and every known Windows version in further detail. Because the current problems that led us to perform these benchmarks occur only with Windows 7, we restricted our testing to Windows XP, Vista, and naturally also, Windows 7 as well.
- Part 1: Laying A Theoretical Background
- Windows: Mouse As Window-Washer?
- The Limits Of 2D: One Space With Many Windows
- 2.5D: The Myth Of 2D Hardware Acceleration
- Windows XP: Old School 2D And The Limits of WM_PAINT
- Windows Vista: Real Progress And The Art of Omission
- Windows 7: Return Of The Prodigal Son
- Windows 7: Radeon HD 5000-Series Cards Lack 2D Acceleration
- Tom2D Benchmark: Radeon HD 5870 Vs. GeForce GTX 285 In Windows 7
- Tom2D Benchmark Results, Continued
- Tom2D Conclusions, Preview Of Part 2