Oh, we're discussing PhysX again? ;D And an old thread at that. LOL.
IMHO, dedicated PhysX card's job is to alleviate the burden of main card(s) on rendering a scene. But due to its very specific job, which is calculating NVIDIA's physics simulations (yup, their proprietary-exclusive gpu/cuda-accelerated physics simulations not the common ones... my post somewhere above), its usefulness depends on how complex and heavy a scene that the main card(s) is working.
Let me try to explain. But first you must remember, we're talking about games that uses NVIDIA PhysX (physics simulations exclusively using NVIDIA's GPU) not just common physics simulations bundled also inside PhysX. Oh and an open-source now. Right. When the main card is doing a fine job of rendering a scene with some set parameters (eg. 60fps, AA, screen size, etc.), then a dedicated PhysX card (dPc) is negligible and might even dragging down performance if its clock speed (or boost clock, if your dPc has it) is so much lower than the main card. When your main card is struggling in pumping out a scene when you: increase resolution, increase fps (or VSYNC off), add effects, etc. then a dPc eases any workload related to NVIDIA PhysX. What happens then? Do I get a better performance? Yes and no. Yes, you will get less minimum framerate occurrences due to less stresses on the main card's CUDA cores, that means better average fps. No, you really don't have better maximum fps if your main card able to handle your set parameters and also no, unless the scene is a complex NVIDIA PhysX bonanza which no game ever has.
How to check a game is using NVIDIA PhysX? The developer said so, or NVIDIA said so, or you can check if there is any DLL (with PhysX or APEX on the filename) though sometimes they are bundled inside the game's assets. How to check if dPc is really being utilized? Here's what I do. First, assign your dPc in NVIDIA's control panel. Use a GPU-utilization monitor software (I uses OpenHardwareMonitor and GPU-Z). Efficient way is to use a second monitor for any monitoring software. Run your game and watch your dPc's load, it should be up. Don't trust on looking only just on clock speed 'cause some games initialize all discrete cards in your system and thus spike the graphs.
I did some experiments using a single main card and a dedicated PhysX card that is far and close in base clock. A good old sample from Metro:LL. Left result is without dPc and right side using a close base-clock to the main card. Check out the minimum framerate and notice the less black (little variance) on the graphs. Quick break-down of this: my main card is struggling with my set parameters and thus a dPc helps.
Another thing, not every games with NVIDIA PhysX are using dPC. Far Cry 4 uses smoke, debris, etc but not utilizing dPc. Ughh, right? To make my point easy to visualize, let me list some games I've experimented on, categorized by their PhysX processor' utilization:
PhysX:
A. common physics simulations
1. GPU
- all games with PhysX logo I guess
2. CPU only
- Witcher 3 (due to GameWorks)*
- Vanishing of Ethan Carter
B. CUDA physics simulations
1. Able to utilize dPc
- Metro: LL
- Trine 2
- Borderlands Pre-Sequel
- Lords of the Fallen
- Batman Arkham series
- King's Quest (the new one, obviously
)
2. Won't utilize dPc, only uses main card
- Far Cry 4
- Gauntlet
* Witcher 3 implements GameWorks, an exclusive game developer's library (meanwhile, NVIDIA release their PhysX with basic physics simulations as an open source now). Inside GameWorks are various specialized physics simulations for their GPU from PhysX, tweaked, married to, I don't know, it's a secret. I haven't seen the SDK for their library but Witcher 3 has dynamic clothing and particles which was NVIDIA PhysX. So, GameWorks must be accessing directly to their GPU for that and left common PhysX to CPU. You can turn on PhysX Indicator from NVIDIA control panel and see that the game uses CPU as its PhysX processor. That's why I put Witcher 3 there, although I doubt clothing and particles is done on CPU (the game must be very slow and laggy if so). A bit more about HairWorks. ;P TressFX and HairWorks use almost the same basic physics properties (density, clumping, wetness, etc) and physics simulations (various dynamic forces like gravity, wind, etc, shape preservation, stiffness, etc) but they use different implementation of technology. HairWorks is actually originated from the old HairFX from PhysX, improved by using a new implementation technique using tessellation and LOD control. Remember the ruse with Batman's cap that's heavy on tessellation and slows down AMD cards? Heheh.
Need summary?
(a) Your main card
(b) an NVIDIA PhysX game
(c) a dedicated PhysX card with clock speed close to your main
1. (a) is fine with (b) and you have (c) = NO, more power more heat same performance
2. (a) is fine with (b) and you don't have (c) = NO, not worth it. As above plus dragging down performance
3. (a) is struggling with (b) and you have (c) = YES, do it
4. (a) is struggling with (b) and you don't have (c) = NO, dragging down performance
5. (a) is struggling with not (b) and you have or don't have (c) = UPGRADE! (gosh, dude)
It's clear why a lot of people see having a dedicated PhysX card is really not efficient and beneficial. If you're at #3 now, good for you, but still... not a lot of games (you probably like to buy) utilizes a dedicated PhysX card.
Cheers.