Game Devs Only Use PhysX For the Money, Says AMD
arcticstoat writes "AMD has just aimed a shot at Nvidia's PhysX technology, saying that most game developers only implement GPU-accelerated PhysX for the money. AMD's Richard Huddy explained that 'Nvidia creates a marketing deal with a title, and then as part of that marketing deal, they have the right to go in and implement PhysX in the game.' However, he adds that 'the problem with that is obviously that the game developer doesn't actually want it. They're not doing it because they want it; they're doing it because they're paid to do it. So we have a rather artificial situation at the moment where you see PhysX in games, but it isn't because the game developer wants it in there.' AMD is pushing open standards such as OpenCL and DirectCompute as alternatives to PhysX, as these APIs can run on both AMD and Nvidia GPUs. AMD also announced today that it will be giving away free versions of Pixelux's DMM2 physics engine, which now includes Bullet Physics, to some game developers."
Tell that to AMD who have sold 2 million directx11 GPUs since release. (http://www.dailytech.com/ATI+Sells+Over+2+Million+DirectX+11+GPUs+Celebrates+With+Radeon+Cake/article17349.htm)
IGP are sufficient for 90% of users... but that hasn't changed since back in the Pentium 1 days. Many PCs were equipped with IGP or something that amounted to the same thing but in card form even then.
Also: GPGPU is NOT meant for gfx processing on the fly at all, so it has absolutely nothing to do with devs having to target the lowest common denominator. You even state that its useless except for scientific purposes in your own comment. The entire purpose of the GPGPU move is towards scientific purposes where vast quantities of repeated calcs have to be done. Something that GPUs excel at.
At least get SOME of your facts straight before spouting FUD.
I've done some work with both PhysX and the things that AMD is pushing for. I try to keep with the Physics Abstraction Layer, which lets me plug in whatever physics engine as the backend, which gives a pretty damn good apples-to-apples performance metric. Personally, my ultimate choice of physics engine is the one which exhibits the best performance. My experience may differ from others, but I generally get the best performance from PhysX on with an nVidia GPU and BulletPhysics with an AMD GPU. Sometimes, the software version of PhysX outstrips the competition, but I have never seen anything beat PhysX in performance with GPU acceleration turned on. And with PAL, it is easy to check if there is GPU support on the machine and swap in the physics engine with the best performance (PAL is awesome).
Here's the thing: GPU-accelerated physics are just plain faster. Why? Because collision detection is a highly parallelizable problem. Guess what hardware we have that can help? The GPU. Another great part of using the GPU is that it frees the CPU to do more random crap (like AI or parsing the horribly slow scripting language).
AMD is working on both BulletPhysics and Havok so they can do GPU acceleration. But I have a feeling that PhysX performance will remain faster for a while: PhysX was designed to natively run on the GPU (technically, a GPU-like device), while these other libraries are not. Furthermore, nVidia has quite a head start in performance tuning, optimization and simple experience. In five years, that shouldn't matter, but I'm just saying that it will take a while.
So here is my message to AMD: If you want people to use your stuff, make something that works and let me test it out in my applications. You've released a demo of Havok with GPU acceleration. PhysX has been and continues to work with GPU acceleration on nVidia GPUs and will frequently outperform the software implementation. I'm all for open alternatives, but in this case, the open alternatives aren't good enough.
My UID is a prime number. Yeah, I planned that.