Vista, Radeon, PhysX: pick two.

This has been pursued in forums everywhere for some months now, so I thought I’d summarise my findings on the matter and hope for a prevailing Google breeze to save others the trouble.

Here’s the thing: It’s late 2008, and the most powerful single video card you can buy for your PC right now is ATI’s Radeon HD 4870 x2. NVidia’s 280 GTX lags behind it a bit, but supports something called PhysX. In short, GPUs are very good at massively parallel tasks, which lends well to the simulation of physics, and NVidia’s Geforce video cards from the 8-series on up supports the PhysX engine and can do more realistic explosions and collisions and such.

This means games like Unreal Tournament 3 can look prettier when drawn by a Geforce, despite getting a higher frame rate on a Radeon. Naturally, the owner of a modern Radeon – like, for instance, my own 4870×2 – might be curious about PhysX support. A lot of the internet has hit upon the idea of using a grunty ATI video card to do the drawing, and a Geforce sitting next to it to do all the extra physics work. This is the golden age of running multiple video cards; surely it can be made to work?

Let’s ignore all the political issues here – PhysX support in games isn’t as widespread as you’d imagine, there are other more established physics engines already in use, it’s all a big money-making conspiracy and so on – and see what can be done to make UT3 look even better.

Annoyingly, nothing can be done just now. The facts are thus:

  • While you ought to be able to get a Radeon and a Geforce working as video cards in the same computer, it’s logically impossible to do so in Windows Vista. Due to something technical to do with the new-in-Vista Windows Display Driver Model, you can’t run more than one video driver at once; you can either have NVidia’s drivers and use the Geforce for video and PhysX, or ATI’s drivers and use the Radeon on its own, and the other card just sort of flaps uselessly in the breeze.
  • Geforce PhysX won’t work without the Geforce drivers running anyway, and NVidia obviously had no reason at all to do it any other way (why wouldn’t you want to run the NVidia drivers, except perhaps to get around other limitations and use it in conjunction with a rival’s hardware?).
  • Windows XP does not have the WDDM limitation; the Radeon-video-plus-Geforce-PhysX thing has been done, but of course you’re stuck with DirectX 9, and XP’s interface, and XP’s hardware support, and all the other reasons plenty of users go with Vista instead.
  • You do have the option of buying an actual standalone card; Ageia designed PhysX cards before they were bought out by NVidia and made to do it on their cards instead. While owning such a thing would be pretty cool, they’re now rare, very expensive, and I can’t help but think it’d be pathetic compared to a modern Geforce card at what it’s designed to do (I have no knowledge whatsoever of how powerful certain cards are compared to others, but I can’t help but imagine a GTX280 would handle it better than a two year old PCI card).
  • There was a lot of talk about PhysX running on a Radeon, but efforts to make it a reality seem dead in the water despite valiant efforts.

Windows 7, the successor to Vista, will avoid the single-WDDM-driver problem, and at least one enterprising nutter has already had his 8500GT running numbers for a 4870 in an early test build. 7 is apparently slated for release in mid-2009, so we may only have six or seven months to wait for an OS that will do what we want.

It just remains to be seen whether my now-redundant 8600GT will have found a better home in the meantime.

Update

It works in Windows 7 – see my other post for details!

2 Responses to “Vista, Radeon, PhysX: pick two.”

  1. Walter says:

    Thanks! This article helps a lot. I was looking into buying a PhysX card but couldn’t find one and wasn’t really sure if they were worth anything. Perhaps on Windows 7 Beta I can use my 8800GT and 4870 together?

  2. tim says:

    I expect you could use an 8800GT with a 4870. I used an 8600GT with my 4870×2.

    See here to see how I got it working in the end!