Future of physics, PhysX?

I'm sorry but Crysis physics is shit.

You're always going to have this problem. Most people can't tell the difference between dynamic simulations and prefabbed effects. All that matters is if it "looks cool". Sadly there's currently a big divide between "looks cool" and "computationally intensive".
 
I believe Nvidia is making all the right moves. They work closer with game developers than AMD via their TWIMTBP campaign. More and more games are using nvidia PhysX. What I see as a good move is that nvidia is allowing you to throw PhysX in the mix without using a dedicated card thus making SLi and nvidia products an even better value. They aren't forcing a dedicated card down your throat like Ageia was. If they can continue to penetrate the market with PhysX then I can see it being the future but that is far away as it's not catching on fast enough. Time will tell. I'll just say that it looks more promising that Havok does.
 
there are less and less physX game lately, almost none in existence beside Mafia 2, and still came with unrealistic amount of particles flying all over the place..

Overall, physX is definitely not the future physics engine. As long as its lock into GPU, it will not have a long run ..

someone mention that Crysis's physics is shit.... then I hope you make a better one :)

Crysis's physics is one of the amazing one out there. Even though the in game the buildings are predefine particle mixing together, which most game even with physX does exactly the same thing.
The barrel explosion lag the crap out of framerate is due to effects running over the GPU, not because of the limitation of CPU physics, its too many graphical effects that is running that ruins the performance.
Show me a physX with such graphical game that does the same thing but runs better.. YEP.. none in existence...
 
I believe Nvidia is making all the right moves. They work closer with game developers than AMD via their TWIMTBP campaign. More and more games are using nvidia PhysX. What I see as a good move is that nvidia is allowing you to throw PhysX in the mix without using a dedicated card thus making SLi and nvidia products an even better value. They aren't forcing a dedicated card down your throat like Ageia was. If they can continue to penetrate the market with PhysX then I can see it being the future but that is far away as it's not catching on fast enough. Time will tell. I'll just say that it looks more promising that Havok does.

One thing people seem to forget when they're whining about CPU PhysX is that nVidia inherited an old, crufty codebase dating back at least two companies (Ageia didn't write it first). You don't have to be a developer to realize what mess this means, including a lack of SSE-usage and proper multi-threading. A while ago nVidia's own PhysX developers admitted that it's a crufty codebase and that they're currently rewriting it. This should be the next major release of PhysX and herald a major boost for CPU PhysX.

Disclaimer: my company uses PhysX in our game engine :)
 
One thing people seem to forget when they're whining about CPU PhysX is that nVidia inherited an old, crufty codebase dating back at least two companies (Ageia didn't write it first). You don't have to be a developer to realize what mess this means, including a lack of SSE-usage and proper multi-threading. A while ago nVidia's own PhysX developers admitted that it's a crufty codebase and that they're currently rewriting it. This should be the next major release of PhysX and herald a major boost for CPU PhysX.

Disclaimer: my company uses PhysX in our game engine :)

I didn't know this. That's good to know, I'm sure you can't reveal what company and what game but thanx for the info.
 
I'm sorry but Crysis physics is shit. The trees jiggle in an unrealistic predetermined fashion, buildings break apart into predefined chunks and there's nothing dynamic about fluid flows, mists, smokes, etc. The only cool things about crysis physics is some (but not all) of the trees have progressive damage, and the way when you fire a rocket past trees they bend in the wake of the rocket. I've seen videos of people using boxes and barrels and tornados to simulate some pretty cool effects in Crysis, but they all also run at terrible framerates (far below playable).

BFBC2 is a step better in the destruction department, but has completely stationary foilage and destruction is more progressive but still predefined and rubble just vanishes.

I haven't seen a game that uses CPU physics in any sort of impressive way, nothing beyond simple rigid body physics and simplistic destruction.

agreed
 

Much like with that recent Ghostbusters game, when you had the demo of many rigid bodies being spun and thrown about. That's not impressive at all, and something even a lowly budget CPU will yawn at. For some strange reason that game didn't advertise cloth/soft body/particle physics ;)

One thing I think will really boost GPU physics is things like AMD's Bulldozer: integrating a capable GPU core on the same chip/die as the CPU, allowing for very quick access to its functions without having to go over the PCIe bus, which really is as fast as a glacier in comparison with even system RAM access. This should make the GPU a really capable co-processor, give CPUs vector-processing capability (far beyond what SSE4 and AVX can do) and change things for the better :)
 
I'm sick of all these proprietary APIs - DirectX, PhysX etc... If you want full adoption of you tech, make it open and able to be run on multiple platforms without someone having to hack or reverse engineer it. If engine developers would spend as much time contributing to OpenGL, OpenCL etc... and decide to standardize and work together on making open spec APIs to fill in the gaps (ie. The rest of the DirectX suite that doesn't have a parallel in something like OpenGL, CL, AL etc...), they'd have a better product and game developers would be lining up to take advantage of it.

PhysX is an annoyance, being limited to a single graphics card type and as others have said GPU Physics have limitations. I'm not going to buy a proprietary piece of hardware to run a proprietary bit of software because some game is using a proprietary integrated API, especially when said software is written specifically to NOT work if I'm using a competitor's graphics card, even if I buy one of their own cards for physics alone!

Much like EAX, PhysX does nothing but hold back the industry in the hopes of short term capitalizing on a few hardware sales because "Broom 'N Brown 2: The Return of Bloom 'N Brown - Now with 10% more Bald Space Marine" chose PhysX and if you don't buy a card that works with it, you only get to see a brown brick break into a hundred pieces instead of a thousand.
 
I'm sick of all these proprietary APIs - DirectX, PhysX etc... If you want full adoption of you tech, make it open and able to be run on multiple platforms without someone having to hack or reverse engineer it.
Yes, because DirectX doesn't run on the 360, and it is having SUCH HUGE trouble getting widely adopted. :rolleyes:

The rest of your post may or may not have been interesting (and it was semi-interesting, mostly a rehash of everything that's been said in the thread), but when you say stuff like this, most people aren't going to bother to read the rest.
 
Yes, because DirectX doesn't run on the 360, and it is having SUCH HUGE trouble getting widely adopted. :rolleyes:

Technically the XBox 360 uses a DirectX-inspired API, without any direct relation to DirectX. So that means DirectX is in fact totally alone on x86, Windows platforms.
 
Technically the XBox 360 uses a DirectX-inspired API, without any direct relation to DirectX. So that means DirectX is in fact totally alone on x86, Windows platforms.

Technically yes, and technically the X in Xbox stands for X in DirectX, but close enough. ;)
 
I hope I didn't make a bad choice.. MSI K9N2 SLI PLATINUM

I chose this because, seeing as apparantly PhysX alone is not worth it, it would be nice to have SLI as an option, then I can always set one card to PhysX if I wish. I just bought new 4gb ddr2 ram, so it would be a shame to upgrade to ddr3. It is next to impossible to find a board with all these specs. The next best option was MSI 790XT-G45, but then I would only be allowed to have physX, no SLI, because it is AMD chipset. I hope I made the right choice.

I know you said 750a is outdated, but it was next to impossible to find anything else! I checked MSI's websites and fortunately this MOBO will support 125W, and has Windows 7 drivers, so I hope I will be alright in the future.
 
Technically yes, and technically the X in Xbox stands for X in DirectX, but close enough. ;)

So what does the X stand for, then? I'd say the marketing department of MSFT just likes the letter 'X' :p
 
So what does the X stand for, then? I'd say the marketing department of MSFT just likes the letter 'X' :p

Well, DirectX is the combination of several APIs such as DirectDraw, Direct3D, DirectSound, etc. The X being a variable for draw, 3d, sound etc. The X in the Original Xbox was intended to reflect it using DirectX technology. The APIs for the Xbox continued to use the X name in the form Xinput, etc.

So is some ways, they do just like the letter X :p
 
One thing people seem to forget when they're whining about CPU PhysX is that nVidia inherited an old, crufty codebase dating back at least two companies (Ageia didn't write it first). You don't have to be a developer to realize what mess this means, including a lack of SSE-usage and proper multi-threading. A while ago nVidia's own PhysX developers admitted that it's a crufty codebase and that they're currently rewriting it. This should be the next major release of PhysX and herald a major boost for CPU PhysX.

Disclaimer: my company uses PhysX in our game engine :)

Didn't Intel admit that the old GTX2xx series cards were around 14x faster than the Core I7 series at this kind of funciton?
 
Didn't Intel admit that the old GTX2xx series cards were around 14x faster than the Core I7 series at this kind of funciton?

Don't confuse theoretical and best case numbers with what you can actually get out of the card under a real workload. Actually getting anywhere close to the max performance of a GPU is frustratingly hard, if not impossible, for most problems. The problem with using a GPU for physics is going to be shuffling the data around, because of that you'll never be able to get the full power the GPU is capable of, and unfortunately the data shuffling penalty is rather hefty.

Graphics don't have that problem because things like textures stay almost entirely on the video card only. The game doesn't need to reference or modify them often if at all. Physics data, however, is managed in the game, sent to the card, the card does it's number crunching thing, sent back to the game, which then applies it's rules to the results as well as converts the results to graphics calls, and then sends that back to the card. All that back and forth incurs a lot of latency, slowing everything down. Because of that, for many things simply sticking with the slower CPU will end up being faster.

I recently ran into this myself. In initial testing, it looked like the GPU would be 100x faster at the problem I was working on (GTX 460 vs. a Phenom X4). Once I better integrated it with the actual architecture, the GPU acceleration became a bottleneck, and for most conditions the CPU ended up 2-4x faster simply because it didn't need to do as many memory copies and didn't need to transfer over the PCI-Express bus.
 
Well, DirectX is the combination of several APIs such as DirectDraw, Direct3D, DirectSound, etc. The X being a variable for draw, 3d, sound etc. The X in the Original Xbox was intended to reflect it using DirectX technology. The APIs for the Xbox continued to use the X name in the form Xinput, etc.

So is some ways, they do just like the letter X :p

Of course, then the ironic thing is that they took out DirectDraw, DirectSound and others, leaving basically just Direct3D :p

More on topic, GPU acceleration is really only possible if you have a very parallel task, with large data sets and very little to no interaction between threads. Physics processing would be a lot more feasible for smaller simulations if the huge PCIe latency were to be removed, something like AMD proposes with Bulldozer.
 
Of course, then the ironic thing is that they took out DirectDraw, DirectSound and others, leaving basically just Direct3D :p

More on topic, GPU acceleration is really only possible if you have a very parallel task, with large data sets and very little to no interaction between threads.
Yes, exactly. This is exactly what multithreaded friendly problems are, a series of parallel tasks that have no interaction on each other.

Physics processing would be a lot more feasible for smaller simulations if the huge PCI-e latency were to be removed, something like AMD proposes with Bulldozer.
Only if you need to solve a hybrid problem. If you need some serial tasks, and then a parallel task and repeat. If you simply have parallel tasks, then there's no need to touch the PCI-E bus and you can have some very high speed just using GPU hardware.
 
Don't confuse theoretical and best case numbers with what you can actually get out of the card under a real workload.

Those numbers go as high as 1000x if you listen to NVIDIA. I'm pretty certain that Intel used the worst case scenario to come up with 14x.

I think that the GPU is better at handling physics than the CPU, besides since we are talking about video games, the video card seems the best place to be handling this. It's a shame other video card companies are unable to provide such a feature.

This may be why Intel does not want to bring Havok to the GPU. So at least for the foreseeable future it's PhysX or nothing.
 
It always has, and continues to stagger me how fundamentally STUPID GPU based physics processing is.


For any 3D game since ever, a game's framerate will be primarily limited by the GPU, unless you have a tragically old CPU. Even today with modern multicore games I watch as my 4 cpu cores are barely utilised much above 50% each. And yet I cringe as my graphics card struggles to render frames. The fucking last thing I EVER want to do is add more load to the GPU! Physics should (and only should) be done on the CPU regardless of how parallel it apparently inherently is. I never ever want to sacrifice visual quality for the sake of physics especially if my CPU is being under-utilised.


Until physics in unilaterally and exclusively done on the CPU it will NEVER be fully intertwined with gameplay. Period! (note BF:BC2's CPU based destructable buildings). ;)
 
Well the future isn't far off, integrated GPU on the chip should make an interesting computational unit which would be ideal for physics etc. Wont be far off that all CPUs will be integrated with only the needy buying an additional graphics card.

You probably are thinking that hey no one is going to be satisfied with the performance of an integrated unit, but I disagree. Most game developers these days release materials on the console as a primary target, this means that the content and effects are limited to the HW in the current consoles (unless they want to spend a lot of money making a specific PC version which they don't) so until the next gen consoles will be here we wont see a huge trend to high end graphics cards (and not even then I daresay).

Im a bit biased since I really want AMDs fuzion to kickoff, both on the PC (face it intel with an integrated GPU has been and always will be a joke) and on the serverfarms (who would say no to a GPU processing unit in the same formfactor as the CPU).

/Q
 
@spine - Did you ever entertain the thought that not everyone plays at huge resolutions, on triple monitors, and that it's very easy to add an older GPU (from your last upgrade or so) to do the physics calculations? Based on the benchmarks I have seen here at HardOCP for CPU PhysX-enabled games, it merely seems to limit one's ability to use AA. At already pretty high resolutions. How terrible.

Did perhaps PhysX kick your dog or so?

Only if you need to solve a hybrid problem. If you need some serial tasks, and then a parallel task and repeat. If you simply have parallel tasks, then there's no need to touch the PCI-E bus and you can have some very high speed just using GPU hardware.

True :) In the end it's all about interactions. Embarrassingly parallel tasks are still the way to go for GPU acceleration. Everything else is going to be iffy or result in an outright performance hit. This is one reason why I refuse to buy into the OpenCL hype and will stick with CUDA for the foreseeable future. As a developer it's nice to make one's own decisions on what runs where :)
 
Only if you need to solve a hybrid problem. If you need some serial tasks, and then a parallel task and repeat. If you simply have parallel tasks, then there's no need to touch the PCI-E bus and you can have some very high speed just using GPU hardware.

Even then only if most of the data can be sent to the card once. If all your data is coming from the CPU and ultimately needs to make it back there, you're still going to run into that blasted PCI-E bus. It also needs to be a large enough data set to make it worth it in the first place.

Those numbers go as high as 1000x if you listen to NVIDIA. I'm pretty certain that Intel used the worst case scenario to come up with 14x.

I think that the GPU is better at handling physics than the CPU, besides since we are talking about video games, the video card seems the best place to be handling this. It's a shame other video card companies are unable to provide such a feature.

This may be why Intel does not want to bring Havok to the GPU. So at least for the foreseeable future it's PhysX or nothing.

No, even the theoretical is no where near 1000x. The i7 980 XE can do 107 GFLOPs double precision. The GTX 480 can do 1344 GLOPs single precision, and a 168 GFLOPs double precision. Game physics doesn't need double precision, fortunately. So the theoretical is ~13x (and let's say ~20x for an i7 quad), assuming the i7 isn't any faster doing SP than it is DP (and I think it's actually twice as fast doing SP). If Nvidia ever claimed 1000x, they basically made the number up or did something like compare a Fermi based Tesla to a Pentium 4.

The GPU *is* better for physics, absolutely, but the problem is that it isn't always fast enough to make up the extra time spent setting up the data to be GPU friendly and then transferring that across the PCI-E bus. Does that make sense?

Also, the GPU has a very very simple execution core. Things like branching are a bad idea unless the entire block of 32 threads takes the same branch (or something like that). CPUs have that whole cache and out of order execution thing going on, making it *much* easier to get, say, 80% of the performance the CPU is capable of without much work. Getting even 50% out of a GPU can be extraordinarily difficult.
 
GPUs have this whole warp thing (as CUDA calls it), with a single kernel (execution core/process) performing the same procedure on a block of data. With the Fermi architecture it's possible to run more than one kernel simultaneously. Branching is far less painful with Fermi as well. There's always the bottleneck of VRAM (global memory) being so hideously slow (copying data to/from) compared to the local RAM and the registers. And then there is the PCIe bus, of course, which has all the elegance of a cliff face disguised as a speed bump.

I still wish we'd get the option of more dual-socket mainboards, which would allow us to have one CPU and one GPU core on the same board, linked together with a HT link, akin to how the Opteron architecture allows for separate co-processors for Java execution and such in another socket. It'd blow any Tesla card or rack unit connected with PCIe out of the water. And GPU physics would be awesome this way.

One can dream, right? :)
 
Bad company 2 have enough physics without any special GPU needs.
great overal eyecandy.

BF3 might be decent.
 
GPUs have this whole warp thing (as CUDA calls it), with a single kernel (execution core/process) performing the same procedure on a block of data. With the Fermi architecture it's possible to run more than one kernel simultaneously. Branching is far less painful with Fermi as well. There's always the bottleneck of VRAM (global memory) being so hideously slow (copying data to/from) compared to the local RAM and the registers. And then there is the PCIe bus, of course, which has all the elegance of a cliff face disguised as a speed bump.

I still wish we'd get the option of more dual-socket mainboards, which would allow us to have one CPU and one GPU core on the same board, linked together with a HT link, akin to how the Opteron architecture allows for separate co-processors for Java execution and such in another socket. It'd blow any Tesla card or rack unit connected with PCIe out of the water. And GPU physics would be awesome this way.

One can dream, right? :)

Your dreams might come true. Who knows, BIG BLUE might create some Havok when they release Sandy Bridge... :)

And, AMD hired former Aegia (phsyx) CEO for work with fusion:
http://www.fool.com/investing/general/2010/08/26/amd-taps-competitors-for-talent.aspx
 
GPUs have this whole warp thing (as CUDA calls it), with a single kernel (execution core/process) performing the same procedure on a block of data. With the Fermi architecture it's possible to run more than one kernel simultaneously. Branching is far less painful with Fermi as well. There's always the bottleneck of VRAM (global memory) being so hideously slow (copying data to/from) compared to the local RAM and the registers. And then there is the PCIe bus, of course, which has all the elegance of a cliff face disguised as a speed bump.

Don't forget to coalesce your global memory access as well (and god forbid if your data isn't aligned) and there's also the page locked memory crap you've got to deal with on the OS side. I also love that if you use too many registers, the number of threads in a warp gets cut in half :/
 
One thing people seem to forget when they're whining about CPU PhysX is that nVidia inherited an old, crufty codebase dating back at least two companies (Ageia didn't write it first). You don't have to be a developer to realize what mess this means, including a lack of SSE-usage and proper multi-threading.

rofl, when PhysX first hit the scene back in 2006 even the little demos in the PhysX control panel were capable of maxing out all 4 cores on a Quad-core machine. The showcase game they released, Cellfactor, also effortlessly used up to 4 cores when using CPU PhysX.

In fact, PhysX continued to be very good at utilizing all available CPU resources until shortly after Nvidia bought them, where it all of a sudden became commonplace for PhysX to not use more than one CPU core. I'm sure that's just a coincidence though. :rolleyes:
 
rofl, when PhysX first hit the scene back in 2006 even the little demos in the PhysX control panel were capable of maxing out all 4 cores on a Quad-core machine. The showcase game they released, Cellfactor, also effortlessly used up to 4 cores when using CPU PhysX.

In fact, PhysX continued to be very good at utilizing all available CPU resources until shortly after Nvidia bought them, where it all of a sudden became commonplace for PhysX to not use more than one CPU core. I'm sure that's just a coincidence though. :rolleyes:

I don't think he was necessarily referring to the thread support but rather the complete lack of SSE being used.

It is pretty sad to see Nvidia's multi-thread Physx samples not actually utilize more than 1 thread.
 
rofl, when PhysX first hit the scene back in 2006 even the little demos in the PhysX control panel were capable of maxing out all 4 cores on a Quad-core machine. The showcase game they released, Cellfactor, also effortlessly used up to 4 cores when using CPU PhysX.

In fact, PhysX continued to be very good at utilizing all available CPU resources until shortly after Nvidia bought them, where it all of a sudden became commonplace for PhysX to not use more than one CPU core. I'm sure that's just a coincidence though. :rolleyes:

http://www.geeks3d.com/20100216/preview-multi-core-cpu-support-in-physx-seems-to-work/


Multi core cpu support still exists, still works, some devs are just lazy f**ks, as per standard.

edit to add the final tool:
http://www.geeks3d.com/20100521/gpu...-1-2-0-available-with-multi-core-cpu-support/
 
Well the future isn't far off, integrated GPU on the chip should make an interesting computational unit which would be ideal for physics etc. Wont be far off that all CPUs will be integrated with only the needy buying an additional graphics card.

You probably are thinking that hey no one is going to be satisfied with the performance of an integrated unit, but I disagree. Most game developers these days release materials on the console as a primary target, this means that the content and effects are limited to the HW in the current consoles (unless they want to spend a lot of money making a specific PC version which they don't) so until the next gen consoles will be here we wont see a huge trend to high end graphics cards (and not even then I daresay).

Im a bit biased since I really want AMDs fuzion to kickoff, both on the PC (face it intel with an integrated GPU has been and always will be a joke) and on the serverfarms (who would say no to a GPU processing unit in the same formfactor as the CPU).

/Q

Intel's new "HD Video" is actually a good leap above their previous IGPs. Sandy Bridge GPU cores are actually good enough especially when combined with some new APIs Intel has. I want AMD's Fuzion to take off as well since their GPU cores will be better than Intel's. And we know AMD will be steadily updating their GPU cores.

Also supposedly during the settlement with AMD & Intel when the cross licensing agreements were updated some of AMD's GPU tech was included. Basically the APUs from AMD & Intel that will become common for mid markets are going to make things better for the industry as a whole while putting the hurt on Nvidia.

If Havok can use the GPU core on either Intel or AMD APUs while also using a discrete card we'll be seeing some impressive games in a few years. Not to mention Bullet has been updated for Direct Compute & OpenCL.
 
Not to mention Bullet has been updated for Direct Compute & OpenCL.

Limited acceleration only (cloth, no particle or soft body). It should also be noted that OpenCL support in AMD drivers is still quite iffy and thus GPU Bullet will work best on an nVidia card. Direct Compute is a cute idea, but who is going to use DC when it's Windows-only? It makes much more sense to just stick to one framework.
 
Limited acceleration only (cloth, no particle or soft body). It should also be noted that OpenCL support in AMD drivers is still quite iffy and thus GPU Bullet will work best on an nVidia card. Direct Compute is a cute idea, but who is going to use DC when it's Windows-only? It makes much more sense to just stick to one framework.

I do believe the goal of DirectCompute is more for use in games (specifically, DirectX games). So far, I've only seen Microsoft, Nvidia, and AMD talk about DirectCompute in the context of games (at GDC and with real-time 3d graphics examples). I'm not familiar with DirectCompute, but I would assume MS has kind of integrated it partially with Direct3D, making the jump between GPGPU and 3D easier.
 
I do believe the goal of DirectCompute is more for use in games (specifically, DirectX games). So far, I've only seen Microsoft, Nvidia, and AMD talk about DirectCompute in the context of games (at GDC and with real-time 3d graphics examples). I'm not familiar with DirectCompute, but I would assume MS has kind of integrated it partially with Direct3D, making the jump between GPGPU and 3D easier.

http://en.wikipedia.org/wiki/DirectCompute

DC is GPGPU, so it could in theory be used for anything. I have no detailed information on it, however, nor do I know anyone who uses it. I doubt I'll ever use it either since it's a MSFT thing, and thus limited to Windows and maybe its consoles. What I like about OpenCL and CUDA is that they run on anything from Windows to Linux, BSDs and high-end systems with more exotic architectures and OSs. There's a snowball's chance in hell of seeing DC appear there, limiting its appeal.

The games and software my company is developing are cross-platform, ergo we use APIs like OpenGL, OpenAL, CUDA and program mostly in C++, as .NET has lots of portability issues as well.

TBH I don't really understand why Bullet felt the need to port to DC as well, as it shouldn't add anything over OpenCL, which runs everywhere already. Just seems like they're duplicating work.
 
It always has, and continues to stagger me how fundamentally STUPID GPU based physics processing is.


For any 3D game since ever, a game's framerate will be primarily limited by the GPU, unless you have a tragically old CPU. Even today with modern multicore games I watch as my 4 cpu cores are barely utilised much above 50% each. And yet I cringe as my graphics card struggles to render frames. The fucking last thing I EVER want to do is add more load to the GPU! Physics should (and only should) be done on the CPU regardless of how parallel it apparently inherently is. I never ever want to sacrifice visual quality for the sake of physics especially if my CPU is being under-utilised.


Until physics in unilaterally and exclusively done on the CPU it will NEVER be fully intertwined with gameplay. Period! (note BF:BC2's CPU based destructable buildings). ;)

I agree with a lot of this.

CPU physics makes way more sense right now, we have this constantly expanding resource that is getting more cores and getting faster and for gaming traditionally we don't make much use of that at all.

While the GPUs maybe technically better (more parallel) at tasks like physics simulation they also have a great deal more load to deal with, typically the graphics engine will try and run as fast as possible and developers have to continually cut back on what sort of graphics effects they want to use, simply to make the game playable on the average video card.

The CPU however is often left at fractional usage so we have this reasonably significant source of untapped calculating power sitting idle. When you actually set a goal of putting that to good use such as the physics engine in Ghostbusters the end result is pretty fucking good, not only can you simulate a lot of bodies and/or particles at once but they're also relevant to the environment, which means you can do some very nice things like alter AI path finding behaviour to dynamically navigate around physics objects.

So far the only good PhysX is really done has allowed these mass scale physics to be available such as significantly higher resolution cloth and liquid simulation. But these effects are just that - effects. They're higher resolution, more accurate representation of other effects, except they do not have a good performance to visual payoff ratio, you have to dedicate and entire video card to simulation and the end result is cloth and liquid that only looks marginally better than if those effects are "faked".

Playing devils advocate - It could just be that it's a young technology and developers are being a bit retarded with it as is what usually happens when something new is available, for example the extreme overuse of HDR/Bloom when that became available. But I'm not convinced this is the case, I think distancing the simulation from the traditional game logic (on the CPU/RAM) is a fundamental design flaw that hinders significant use of the technology.

If PhysX was merely another option then it would be enough to simply ignore it and let it die, but actually it's corrosive to gamers who don't have hardware invested for PhysX, because the "all or nothing" GPU accelerated approach often leaves the CPU accelerated PhysX dragging behind what it is usually capable of. In games like Batman AA we see effects that traditionally the CPU had no problem calculating being made exclusive to GPU only rendering, which degrades the quality of the game for anyone not investing in GPU acceleration (or more accurately not investing in NVIDIA specific hardware)
 
Before the advent of PCIe the idea of GPGPU was beyond ridiculous thanks to the hideous hack called the AGP bus. PCIe allowed a wide range of new purposes for the GPU.

What we're seeing with AMD's Fusion but also with some projects Intel is working on (like what used to be Larrabee), the future is to have the GPU more as a co-processor close to the CPU, or, as Arstechnica suggested, a GPU with a tiny CPU core inside it.

To claim that GPU physics is dead or dying is like saying that there's no future for floating point calculations back when FPUs still came as separate co-processors (387/487). Don't underestimate technological progress. Or the need among gamers for shiny things :)
 
Elledan said:
To claim that GPU physics is dead or dying is like saying that there's no future for floating point calculations back when FPUs still came as separate co-processors (387/487). Don't underestimate technological progress. Or the need among gamers for shiny things

Well its certainly not thriving. even with GTX 460 SLI I need all my GPU horsepower for framerate and stuff like AA/AF, shadows etc, but I have an i7-950 thats barely loaded. Especially in light of the fact that nVidia has basically crippled PhysX on the CPU, this seems like a total mis-use of resources. And I'm supposed to cram another power hungry GPU in there on top of everything else? The incremental power cost of loading up the CPU is probably substantially lower than adding something like a GTS 250 or 450 to the system. Make PhysX run right on the CPU and the API will have a future, as of right now they're just screwing it up.
 
To claim that GPU physics is dead or dying is like saying that there's no future for floating point calculations back when FPUs still came as separate co-processors (387/487). Don't underestimate technological progress. Or the need among gamers for shiny things :)

The clock is ticking, the CPU has started its evolution into parallel processing, and it wont be too long before large scale physics is possible on the CPU, in fact I'd argue that it's possible to some degree already.

I played the batman AA demo at about 25fps with full GPU PhysX enabled on my Q9450 (quad core) clocked at 3.6GHz, the game wasn't playable at that frame rate obviously, however the overall CPU load was only about 30-40%. If Nvidia decided to optimize for the CPU they could have playable frame rates in games like Batman AA using PhysX on anyone with a high end quad core today.
 
Back
Top