Lets consider the software development lifecycle, the DX10 lifecycle, and the history of Vista,
The first step taken is to create a code branch for the new OS. XP RTM’ed in August 2001. I remember the ship party and still wear the t-shirt.
As changes go in to the new branch, it no longer resembles the thing that it was before.
DX10 itself wasnt fully baked when the initial branch was taken. DX9.L to support Aero and desktop composition took a bit of time. And the design if DX10 itself went thru a process with the IHV community where feature asks went back and forth, and features made the cut and missed the cut. Features miss the cut for a variety of reasons but that all takes time. Negotiations with the IHVs didnt conclude until late in 2003. This resulted in simplifications to the original MS Input Assembler design request. I worked at ATI in this timeframe as Director of Strategic Relationships and owned the ATI-MS relationship so I have 1st hand knowledge. I was in the meetings.
Given XP shipped in 2001 and it was late 2003 when the DX10 design solidified – it should be obvious that “what the OS was” was well beyond XP before serious DX10 work commenced. Heck, the Longhorn reset was in 2004 and DX10 wasnt done until later. The build that was demo’ed at WinHEC 2004 with the texture memory management was a very fresh build and wasnt feature complete – and that was April or May 2004. The 1st DX SDK supporting DX10 didnt appear until Dec 2005 here, http://www.microsoft.com/downloads/details.aspx?FamilyID=7d29004e-7a8d-4f0a-b199-6a740d8f27bb&DisplayLang=en. Further validating these points.
After the Longhorn reset, a new code branch based on W2K3 was started. Again that wasnt XP. And again kernel changes, which had to go in before the driver layer and the API could be brought up, made it even more not XP.
DX9 was in the original code branch, and was in W2K3 – so maintaining compat is of course an order of magnitude easier then new implementation.
Given the new features in the driver model and hardware ( with GPU task switching, GPU memory management and more ) all of which require kernel support – hoisting a driver layer like that on XP is rewriting it to be Vista. FWIW, the MS hw developer page has the graphics logo requirements and it explicitly mentions these GPU features as being required. They are essentially hidden features that API programmers and end-users never see.
At some point, the question “to serve existing customers” or “to get new customers” is a question every business has to ask itself. Given XP has had a 5+ year run it is hard to see how XP customers have a strong case they were not given good value for the money. Especially when the features in question are ones that are a rewrite of the kernel and the driver layer, and require such a hw leap. Really.
I hope the community can appreciate my points about how the branch and life-cycle work to make assumptions that Microsoft developed DX10 on XP not really true.
I also hope you can appreciate the level of the change, so the community understand the ask is a non-trivial investment of engineering resources.
We can politely disagree about whether or not MS should provide this functionality to XP users. And whether or not the investment makes sense.
I appreciate the strong feelings people have over this, but ad-hominems dont help advance the discussion. Could we keep them out of the discussion, please?