Lonbjerg
Diamond Member
- Dec 6, 2009
- 4,419
- 0
- 0
Richard Huddy is both right and wrong.
For the software based physics effects which is what the game devs basically use it runs on as many threads as the game devs like - which being as it's probably a console port isn't very many.
For the hardware based physics effects which are pretty well all nvidia sponsored (and I suspect written) it seems to only use one thread in software mode. That's because no one has bothered to code the software fallback for the hardware mode in a multi-threaded way.
Is this wrong? We personally I don't think so - if it's nvidia's work that is providing the hardware path (via TWIMTBP) then why would nvidia make it work multithreaded? They don't sell quad core cpu's, they sell nvidia graphics cards - and that's why they offer the hardware physx path - to sell nvidia gpu's not AMD cpu's - nvidia isn't a charity.
However it doesn't give a fair comparison (for example say in batman) of what a quad core cpu could really manage is fully utilised for those effects. If you want that comparison just use 3d mark I suppose - they coded it to maximise physics for both cpu and gpu path's.
If you want games with hardware physics to fully utilise multi-threading you'll need to ask the game devs to add them not nvidia. However the bottom line seems to be the game dev's don't care and will just give use straight console ports and no more - it's only nvidia or ati getting involved that seems to give the PC version anything other then higher resolutions and textures.
The problem by running massive parallel physcis on the CPU is that no only does the CPU have a SIMD "handicap" (and the parallel performance dosn't increase linear with more CPU cores, but actually have diminishing returns) but the rest of the game "stalls"...while waiting for the physics calculations, as seen in these 2 examples:
http://physxinfo.com/news/1727/dark-void-benchmark-and-physx-patch-available/
http://www.tomshardware.com/reviews/batman-arkham-asylum,2465-10.html
The CPU physics becomes a bottleneck, increasing the bottleneck the more physics is caculated...and threads waiting for CPU-time dosn't show on the CPU load graph.
(the CPU really isn't very happy about massive parallel SIMD caculations)
We are back to the old analogy:
Would you run your graphics on the CPU...or the GPU?