Over 10 years ago, I was concerned with the elimination of 2D hardware acceleration in Windows Vista and XP, and made no friends for life with the driver team at (then) ATI in Toronto. The good thing about the two articles that hit like a bomb at the time is that both AMD and NVIDIA started reacting frantically at the time and took remedial action pretty quickly as well. The bad thing is that some things could not be solved as performant as still under Windows XP and the graphic cards with specialized 2D functions until today and still causes criticism.
Excerpts from the original article from 2009/2010
Today, let’s take a closer look at the relevance of the GDI and explain 2D graphics output in detail. In order to be able to classify the results correctly, some basic theoretical knowledge is of course necessary. We have therefore delved a little deeper into the subject, again simplifying the presentation so that it remains simple and easy to understand. Of course, this means that technical finesse falls by the wayside, but comprehensibility for the general readership takes precedence.
Why do we still test the GDI in times of Windows 7 and Direct2D?
One could think, at the latest since the introduction of DirectX10 capable graphics cards and Vista, that the old GDI would be superfluous for the output of 2D character content. With WPF (Windows Presentation Foundation) and thus also Direct2D, the successor propagated by Microsoft has been waiting in the wings on these systems for quite some time. However, even today there are a lot of arguments and reasons why the GDI (Graphics Device Interface) still has an undeniable importance and therefore one should put a part of the attention on this area as well.
- The GDI also supports older graphics cards, Direct2D requires at least a graphics card with DirectX10 support
- The GDI exists since Windows exists, Direct2D runs only from Vista and Windows 7 onwards
- All programs compatible to XP (and older) use the GDI
Many software manufacturers still shy away from the changeover today, because often enough the same libraries are used for different programs, once they have been created. A changeover of these modules would also result in an adjustment of all affected programs. Since the performance increase is hardly subjectively noticeable in many cases, software manufacturers like to suppress this change for economic reasons. For example, if you follow how long it takes to implement Direct2D in parts of Mozilla Firefox alone, you’ll understand the industry’s slow pace in making this transition. Furthermore, for many companies it would not be an option to completely exclude XP customers as a target group for business reasons. Implementing both would then add to the price that no one would be willing to pay anymore. For these reasons alone, the GDI will certainly remain with us for as long as XP plays a significant role in the end user space.
But there are also technical reasons. The existing and often very mature code is not really 1:1 portable. Direct2D also creates a not to be despised overhead and can’t really do anything Direct3D could do. And where they prefer to do without Direct3D, they will surely have weighed the reasons well. The GDI can also be used independently of the output device (monitor, printer). A single routine can thus be called within a program to display and print at the same time, the code and the programming effort are thus reduced to half and the error probability is also reduced. Many of the existing cheaper printers are also GDI printers, so this part of the operating system will probably continue to exist for the time being, especially since there are still enough printer drivers that only support the GDI.
The meaning of it all
We ourselves see the implementation of WPF/Direct2D of course as a technical progress forced by Microsoft and probably also irreversible, but would like to remind with all euphoria about new techniques with this article once again emphatically to the present. There are still so many technical legacies, including Windows XP, that you can’t just look forward without considering the current situation. That something like this can go wrong quickly is probably best seen in the example of the XP phobia of the 780G/785G onboard graphics.