Archive for May, 2007
I can’t count the number of times I’ve been reading people complain on forums that Microsoft is not releasing DirectX 10 on XP. It’s usually followed up by some conspiracy theory that the only real reason they aren’t is because they just want to sell Vista. While I’m sure it makes the marketing guys happy that in a year or two, Vista will have the a rather compelling feature of running the latest games, there’s absolute cast-in-stone technical reasons that DirectX 10 doesn’t run on XP and will never run on XP in any meaningful way.
Here’s the killer: DirectX 10 doesn’t have “capability bits”. These are something that all previous versions of DirectX has used to tell an application (ie a video game) what the video card you have in your machine supports and what it doesn’t support. Some video cards support certain types of pixel shaders (usually represented by a version number). Some video cards still don’t have shaders at all. Some video cards support certain types and sizes of textures and images while others don’t. It’s currently (on DirectX 9) all up to the game to read this information and change the way it runs based on what the video card supports. This all goes away in DirectX 10. Either your card supports everything DirectX 10 has, or it doesn’t support DirectX 10. That’s the two choices you have and it theoretically makes life a whole lot easier for developers.
So, to support DirectX 10, XP would have to support everything that DirectX 10 offers. That’s the big problem because there were a whole bunch of changes made to the Windows Kernel going from XP to Vista to support some of the less obvious features of DX10 to the end user, but features that are critical to the operation of the system:
- Multitasking the GPU. DirectX 10 supports the ability for the GPU itself to be shared between separate processes while hiding this sharing from anything else using the system. Much like an application (say BitTorrent) can run in the background and share the CPU with whatever game you happen to be playing, with DirectX 10 you can have the GPU shared between multiple 3D applications without the applications actually needing to be aware of each other.
- Virtualized video memory. DirectX 10 allows for the video memory on the card to be virtualized – for it to be “paged” in and out of main memory as the video card needs it. If you never look at part of a texture then that part of the texture doesn’t have to be loaded into your video card’s memory, and this is managed by the OS and not the application using the same techniques that it uses to shift your application’s memory to and from the disk when it’s not used.
- New driver model. Vista and DirectX 10 depend on the new “Windows Vista Video Driver Model”, which is a completely new format for the the video drivers. XP can’t load these at all.
- DRM junk. This wouldn’t be so bad to leave out, but it’s part of the spec (remember that “no exceptions” rule), so would have to be supported for a full implementation.
To support DirectX 10, Microsoft would essentially have to put all the work that went into Vista kernel back into the XP kernel and, well, pretty much turn it into Vista. I can’t see any reasonable argument that they should do all that and give it out to people just because they are “nice guys”. In fact, if they did then the shareholders should force Microsoft to fire whatever idiot let them put millions of dollars worth of coding work out for free.
No, Microsoft is not going to release DirectX 10 for XP. No, it doesn’t make any sense for them to do this from either technical or business standpouints. No, Microsoft doesn’t owe you anything because you paid for XP – you’ve already got 5 years of free upgrades so explain why you should get more?
Took a lot of talking and debating over the weekend, but the final decision was that we are going to head back to Australia once my employment term ends here in Pittsburgh – tentatively on Jan 31 next year, but could easily be late this year if things wind up rapidly at work. The hardest part of the decision was just to get ourselves out of trying to do something/anything to stay in the US even if it wasn’t going to be in our best long-term interests.
Our only serious alternative in the US was to head back to San Jose (where we spent 6 months last year on a temporary work assignment), but the real problem was we’re getting a little past the point in our lives where we want to be making radical changes and starting all over again in a brand new city to settle down and make a new home for ourselves. It’s going to be difficult enough moving, but a move back to Australia will be much more smooth than a move to San Jose simply because we have family and friends everywhere back in Brisbane that are available for the support we’ll need. We want to settle down now (that’s why we bought a house here in Pittsburgh), not spend another few years hunting around in apartments and new places before we can settle.
The second major consideration was the cost of living, particularly the housing market and as a result the inevitable long commutes in San Jose. Trying to find anything even remotely close to a 3 bedroom house on 3 acres of land in Silicon Valley for under $200k is so insanely ridiculous it’s just laughable. We especially don’t want to be living back in a 1 or 2 bedroom apartment again – especially if it’s going to cost us the same as our mortgage over here. Adding everything up, San Jose is around 65% more expensive to live in than Pittsburgh, and a 65% increase in net pay means almost doubling my gross pay (especially with the higher tax rates in California), so again it’s really not worth it.
While this may sound a little like I’m trying to convince myself that moving to Australia is the right move, Tahnia and I really knew in our hearts that it was really the only viable alternative for us once the layoffs were announced at work. We fought (verbally) long and hard with each other over the weekend trying to figure out how we didn’t have to leave our house in Pittsburgh, with lots of really crazy ideas coming up, but the truth is there really isn’t any good way and returning is the only way we can be solidly sure of our future – to settle down again quickly.
I guess it wasn’t enough that Ruffie died, or my friend got in a car accident. My work today informed us they were closing the Pittsburgh office. We have about 8 months (maybe 4, depending on who you are) but that really doesn’t leave me too many options in either case.
Sad part is we just bought a new house and unless they allow me to work remotely at a different office (say, Cleveland) then we really have to sell it again because there’s no real way as I understand it to transfer our work visa to a different company without starting the whole crazy process over again (which takes 18+ months).
So, short of the company offering any sort of relocation assistance to a different office (which we’ll need), it looks like we’re moving back to Australia. Sucks pretty hard because we only just bought our wonderful new house and now we’ll have to turn it over again in a pretty down market.
Update:Â I have 8 months.Â The office officially closes end of January 2008.Â I’m looking at either moving back to Australia, or moving to the San Jose office – either way we’re moving and leaving the beautiful new house we just bought.
Got an email today saying one of my good friends from work (who’s blog I have linked as Digital Meh) was in a car accident this morning, and is in the emergency ward at his local hospital. Hard to feel sorry for myself when I’m worried about a friend. Guess I’ll have to thank him when he comes to for getting me through my own mourning, but he really didn’t have to be quite so dramatic!
Our cat died today of kidney failure (no, nothing to do with the Menu Foods thing). He was the most loving cat I’ve ever known and will be missed terribly by everyone who knew him. RIP Rampageous Rafiki. Dec 4 2000 – May 1 2007.