in

This Blog

Syndication

Lloyd Ketchum - YAB, "Yet Another Blog"

Windows Vista Home Basic - Why GDI+ Persists

The following is speculative and based upon personal observations and my experiences with Windows Vista as it was developed, and shipped in various BETAs and staged commercial/public release.

I suspect there's is a huge back story here that has not been told - so good, in fact, that it'd make for a great TV movie - if one doubts that IT/MIS is not exciting enough to form the basis of a series, there are two shows shipping this fall that suggest one would be wrong for holding such beliefs.

Many people do not know that the UI in Windows Vista Home Basic still uses GDI+ and that it differs and is unavailable in premium versions of Vista - it is not like Windows Vista Basic, which uses even older technologies that pre-date Windows XP, but interestingly, it does require hardware very similar to that which can support the Windows Vista Aero interface.

The Windows Vista Standard UI [WVSUI] emerged <publicly> mid Summer 2006, as a curious revelation - it was introduced at a point when very few people, myself included, understood fully, how Vista's UI was architected in great detail. Not long after that revelation, we began to see stories about Windows Vista's ship date slipping into 2007 - which it did for consumer versions of the OS. By that time most in our industry had become so jaded by the many delays opposite the shipping of the new OS that most were not surprised and the real reasons behind the delay and split in how and when Vista shipped, may have been overlooked, or at least not fully examined. That is the basis behind the speculation shared here.

At the time of the release schedule announcement, we heard stories that the "slip and split" [say that five times fast without dotting your monitor with saliva], were due to the requirements of computer manufacturers and partners. Some blogs scoffed at that part of the announcement, but few articles followed up on it - it seemed, conspicuously, that those that would comment [the OEM's and hardware partners like AMD/ATI, or Nvidia] would have spoken up - and loudly, if it were not actually true.

As I learned more about Windows Vista and its video/driver model in particular, I began to question things and wonder just what the heck happened.

In some ways, I was personally frustrated with the bevy of "Vista BSODed, or BSODs all the time when I try and run, x, y, or z video card..." <Griping without doing anything about the underlying causes always trips a gland or two in me - especially when those griping ought to know better> By now most know that as hardware drivers relate to the Vista Kernel, that they remain one of the fewer areas that run in part, in that mode - in XP, drivers execute entirely in kernel mode and if installed incorrectly, would ensure a system would fail to start or restart with great regularity. Even more frustrating for me was the lack of information about what was actually happening being reflected in our industry press - or better, why things were happening as they were.

To help some understand things, the new driver model [the WDDM], allows multiple applications to utilize the GPU simultaneously by implementing the following:

GPU memory manager-arbitrates video memory allocation
GPU scheduler-schedules various GPU applications according to their priority


"With these technologies, applications no longer have to cede the GPU when another application requiring its services starts-up. Instead, the GPU is scheduled in a more efficient fashion." REF: Microsoft MSDN/TechNet

Perhaps the most significant change comes with the understanding that under the WDDM and Windows Vista [with properly crafted WDDM drivers!!!!!!!], the need to include code for the support of various device driver interfaces introduced over many years, has been removed [again, ref MSDN and MS TechNet]. Thus, Windows Vista implements only a single interface while ensuring that all the older drivers are recognized and function optimally. [Lib REF: aa480220].

Ok, so what do I think happened and who did what?

In one sentence, I suspect that hardware manufacturers "borked" the OEM's and Microsoft and that a GDI+ based driver had to be resurrected in order to address existing and planned inventories held by GPU manufacturers and enable support for a richer UI based upon largely existing GPU hardware inventories. Based upon this, the OEM manufacturers had to plan for and support essentially two channels within largely the same base of physical GPUs.

Why?

One has to understand what was and what is. In XP, applications could refresh based upon requests that were asynchronous. [This is what causes tearing that people see - which is related to the refresh rate that they were running]. Vista does not do this and it renders visuals off the page - so in the context of system resources, Windows Vista will run better, and feel smoother, with Aero turned on - where neither GDI+ as in XP/W2K3 is used as Vista Home Basic, or even worse, where pre-XP technologies are used as at Windows 2000, or in Windows Vista Basic <mode> as on the premium versions of Vista where Aero is disabled.

Again, I suspect the GPU manufacturers - perhaps only one of them, was the real driver behind the "slip and split" and it happened because of the struggle to leverage the new API's [Direct3D10 is the new Direct3D API] in two simultaneous directions - and while the WPF is available to XP SP2 and W2K3 Server, it does not scale well in terms of parallel image processing [which is where I think things became hard to manage - getting too deep here to serve the interests of this post].

I don't yet know enough about new queuing features to speculate much more about that impact, but I suspect there were some request queuing issues in play - and for 8800 users, I reason this is why you have seen some frustration with early and less mature drivers for your new DX10 capable cards.

So there you have it - my speculation as to why there is a GDI+ based UI model in Windows Vista Home Basic and why it persists in Windows - despite using hardware that could run the Vista Aero interface. It wasn't about market segmentation - as I suspect Aero was to be the preferred UI for all versions of Windows Vista - instead it was due to GPU, or "A" GPU manufacturer's struggle with the new WDDM and DWM (Desktop Window Manager) and perhaps a self-imposed late start on WDDM driver development.

If my speculation is wrong and the slip and split was not due to hardware and manufacturer requests and it was due to market segmentation alone, then Microsoft owes an explanation to all of us. I don't think that is true, however. If it were, I suspect that the manufacturer(s) would have spoken up and very loudly. I think it was a situation where all of them were impacted, and Microsoft stepped up, came up with a solution and they all circled the wagons and since all of them probably at least welcomed the additional time, they have remained quiet about it.

Comments

No Comments