PhysX GPU support?!

Any idea when we will see PhysX GPU support in Unity?

Is it on the roadmap for V3?

bet on never
as neither ATI, Intel, OSX, iphone, android, webplayer would support it but any windows user (really any, independent of webplayer, ati, intel or nvidia) you have to install the PhysX GPU driver

I would find it very useful for my Windows work and a far as the last years have shown, they gave up the “it only will be implemented, if it runs on all platforms” mantra already. I think GPU physics acceleration is missing in Unity, the sooner, the better.

1 Like

it has not even anything to do with platform.
On windows it works for < 50% of all users as it is NVIDIA hardware only. Neither intel nor ATI can use it.
But both of them must install the physx driver or will not even be able to run your game / the unity webplayer.

thats why I basically take it for granted that it will rather not happen on either of the two, only on x360 and ps3 where it is always “HW accelerated”

Who says that you always want to target all platforms/users?

An example: You have client wok where you have a lot of physics calculations and this machine stays at the client’s place(s). Same for a functionality which is only available on the intranet for a specific group.

Beside of this even a few of the bigger games now support it and last but not least it might be just for your own amusement.

1 Like

It has nothing to do with what you want.

You either use the dynamic version with HW support or you don’t use it. You can’t enable the physx driver requirement through a switch, its an integral part of the runtime.

That means if they decide to add it every single game created WILL require the driver independent on if you use HW or not actually

I don’t know if i understad you properly here.

If you use a windows machine with a PhysX ready GPU by nVIDIA, will the current version of Unity then run the physics on the GPU or not?

No it will not.

As mentioned, for Unity to offer that, every single windows user who wants to use unity or play a unity generated game (standalone or webplayer) would have to install the PhysX Drivers.
This is independent on if this user can even use HW acceleration (so this also holds for NVIDIA gpus prior the 8400, this holds for all intel as well as all ATI).

There is a reason why there are so few PhysX HW accelerated games out there :slight_smile:

When I first started working in UE3 I had an ATI GPU and I didn’t have to install any PhysX drivers to run the game, Unless it was installed with the Unreal installation. If it was, then Surely Unity could do the same thing.

@Dreamora
So fine, this matches with my understanding of Unity.

Now back to the original question: Why can’t it be supported?

If you have the proper drivers and hardware installed you could take the GPU and if not the CPU route.

You seem to missunderstand.
The PhysX driver is an additional software package you must install, it is not your regular graphic card driver.

It would need to be installed on every single windows machine that wants to play back any unity content at all, independent on if HW physics is activated on the project or not, independent on if physics is even used, independent on if the HW can support it at all. Also aside of those with NVIDIA DX10+ hw that enabled the usage of their gpu for physx in the driver panel, nobody would gain anything from this aside of the useless driver install etc.

This for casual gamers is a big no go and on the webplayer is suicide as it will ensure that no further installations will happen.
Also it logically would require all to be on admin accounts, AGAIN (after that was removed as webplayer install requirement with 2.6)

If you want physx hw support use a technology that has no proper websupport and installs like T3D but don’t expect flash or unity with a general webplayer and wide support to offer it cause for them it would be a major step backward.

HW physics support won’t happen until the physx hw acceleration is done through OpenCL or until UT replaces physx with havok or bullet

No, actually it seems that you haven’t understood the reason why i was asking for it.

Maybe rereading what i already wrote above helps. I’m not after your examples, where it does not make so much sense, i’m after my examples where it makes quite a lot of sense and where the support of it is missing.

I fully understand why you are asking for it.
But it doesn’t change the fact that a 40mb+ extra download in addition to the unity content that requires admin rights to install, is a true system level driver and that only gives 30% and less of the users anything at all is neither favorable nor anything you will find any reasonable support for unless you lie to people by omitting the fact that they will no longer be able to reasonably spread their game through webplayer builds at all (as the webplayer installbase growth will break in seriously to completely as most don’t install drivers they aren’t 100% and many just can’t as they aren’t admins of their networks) and that the performance delta between nvidia and ati / windows - osx users will be in the range of 300% to 1000% depending on the explicit feature

Sorry, but the way you are arguing again indicates that you haven’t understood what i was talking about.

Its’ a no brainer that you have to install the driver on your own there and that it’s limited to a specific hardware. That’s not the problem at all. The problem is that it’s not supported in Unity.

You don’t seem to get the problem I guess as you still talk about “is not supported in unity”

You are still thinking in terms as if unity could add a flag for you to enable or disable it on a per project base and all is fine, which is exactly whats not the case.

If unity would offer HW accelration then every single game developed with unity as well as the unity editor would require the physx hw driver (not nvidia driver nor any gpu driver thing at all) to be installed or the engine will not even initialize anymore.

Unity is linked against the static library for PhysX likely which you can use alternatively if you license the pricy thing, this one allows you to get rid of the requirement that the physx driver must be present to run at all at the price of no longer being able to use it

EDIT: Just to clarify that - PhysX runs through the physx drivers you must install either 100% of the time or never. if that code that goes through the driver ends on the gpu or not depends on the gpu and nvidia graphics driver panel settings as well as the hw flag on physx you set when you create it

From what I understand, you can actually just include the physX dll’s with your distribution which adds about 1.5Mb.

1 Like

That dll is the engine, that is not the physx driver.
Unity has the static library counterpart (or the part of it which it uses which likely falls more into the 300k range) present, otherwise physics wouldn’t work at all.

the physx driver is independent and required. Games that offer physx hw support install it silently normally.
This is also the part not present on osx (and the part that never will happen on osx as apple does not allow fake control-overriden relay drivers like the physx. hw accelerated physx will not happen on osx till nvidia implements it through OpenCL instead of a layer thats closed source and fully under their control)

there is another good reason to not use that driver: its well known that nvidia artificially crippled the cpu implementation to favor the gpu one.
no idea when they are going to end that joke there cause they lost some major projects to havok which only requires any kind of SM3 hardware for gpu acceleration (unlike physx which requires the physx hw driver additional install and an NVIDIA DX10+ card)

I don’t understand why you seriously think that it’s impossible to provide a functionality through Unity which already is present in a number of games out there and which enables users to consume their content in different ways according to their setups.

1 Like

I don’t think it makes sense to repeat the same thing again a 20th time.

this is nothing about what you can or what not.
its about whats bullshit if you want to want to have any future webplayer build support for windows at all

If you don’t get that at all that adding a hardbind against an additional fake driver layer, resulting in an enforced presence of the same and admin rights to install is among the worst thing that could happen then there is nothing to help you understanding at all as you either don’t want to understand the fundamental problem behind the physx hw support or think that your personal requirements are more worth than the one of all webplayer projects and other users.

and just to make that clear: its not about me not wanting it from the performance gain view.
I have a GTX280 + 8800GTS in my system where the gts is dedicated exclusively to CUDA usage ie physx and CUDA acceleration in applications and own code I’ve written. I’ve also worked on the C++ side against the physx sdk directly and know what massive performance gains I have on the various usages and that although I’ve a Core i7 920 in my box

But in this case here it just gets a massive no as I am not willing to accept the defakto kill blow against the webplayer because the amount of new installations will drop to a fraction of what it is now, ensuring that it never gets a broad enough install base to be even considered as a thread for flash.