Physics on iGPU?

Denithor

Diamond Member
Apr 11, 2004
6,298
23
81
Just wondering, Intel and AMD are putting so much effort into increasing the horsepower of their integrated GPUs - which gamers don't utilize at all due to discrete cards. They have designed ways to use these iGPUs to assist/accelerate video encoding and various other tasks. nVidia has shown with PhysX that these kind of calculations are well-suited to run on GPU. So why hasn't anybody come up with a way to run physics on this unused hardware? It would seem like Intel could do it through Havok maybe?
 

ViRGE

Elite Member, Moderator Emeritus
Oct 9, 1999
31,516
167
106
Virtually all cases for true GPU accelerated physics is for so-called "second order" simulations. That is, interactions that are purely visual and don't impact the main simulation. Examples would be things like extra particles (smoke), cloth ripples, certain water effects, etc.

The distinction is important because doing second order physics on the GPU means that the data is generated and consumed locally on the GPU. It doesn't have to be transferred from elsewhere in the system, conserving bandwidth and avoiding latency. You can of course do physics simulations on the iGPU, however in the case of second order physics it may not be a good use of resources since you now have to transfer that data to the dGPU for rendering.
 

Deders

Platinum Member
Oct 14, 2012
2,401
1
91
Virtually all cases for true GPU accelerated physics is for so-called "second order" simulations. That is, interactions that are purely visual and don't impact the main simulation. Examples would be things like extra particles (smoke), cloth ripples, certain water effects, etc.

The distinction is important because doing second order physics on the GPU means that the data is generated and consumed locally on the GPU. It doesn't have to be transferred from elsewhere in the system, conserving bandwidth and avoiding latency. You can of course do physics simulations on the iGPU, however in the case of second order physics it may not be a good use of resources since you now have to transfer that data to the dGPU for rendering.

I have noticed that in some cases (Arkham City for instance) a lot of GPU accelerated PhysX are still reliant on the CPU. When it first came out I found the only way I could make it playable at max detail with max PhysX is if I overclocked my old i5-750 by 1GHz.

This infers that there is already data being transferred from the CPU to the GPU. I realise that Arkham City uses an older version of PhysX and that more modern versions have started to make better use of CPU SIMD's and this is showing in games like the Witcher 3 and the Metro Redux games where a lot of the PhysX calculations that would have previously GPU dependent are now run on the CPU, and the difference in visuals between pure CPU physX and CPU/GPU PhysX are harder to spot than they were several years ago.

I think there could be some potential here especially with APU's, but I expect we'd need cross platform code before it could be a reality.
 

sxr7171

Diamond Member
Jun 21, 2002
5,079
40
91
I've been running a dedicated 750ti for Physx for 2 years and I can't tell if it has made an iota of a difference in anything.
 

zir_blazer

Golden Member
Jun 6, 2013
1,239
537
136
Because PhysX is nVidia propietary. If anything, it would be interesing if they are going to try to do something similar using OpenCL.
 

ViRGE

Elite Member, Moderator Emeritus
Oct 9, 1999
31,516
167
106
I have noticed that in some cases (Arkham City for instance) a lot of GPU accelerated PhysX are still reliant on the CPU. When it first came out I found the only way I could make it playable at max detail with max PhysX is if I overclocked my old i5-750 by 1GHz.

This infers that there is already data being transferred from the CPU to the GPU. I realise that Arkham City uses an older version of PhysX and that more modern versions have started to make better use of CPU SIMD's and this is showing in games like the Witcher 3 and the Metro Redux games where a lot of the PhysX calculations that would have previously GPU dependent are now run on the CPU, and the difference in visuals between pure CPU physX and CPU/GPU PhysX are harder to spot than they were several years ago.

I think there could be some potential here especially with APU's, but I expect we'd need cross platform code before it could be a reality.
You're not wrong of course. We already send a ton of data to the GPU each and every frame. I'm just saying having PhysX on an iGPU may be suboptimal since current GPU implementations are built around having it local or having it on a connected dGPU.