GPU acceleration support for PhysX 3.3.4 under OS X

I was trying to perform some complex tests on PhysX under OS X and noticed that it’s not enough fast as it should be.

I’ve checked “PX_SUPPORT_GPU_PHYSX” and it was always “0”. It was kind of strange since I think PhysX GPU acceleration should work in OS X by this moment.

I decided to set “PX_SUPPORT_GPU_PHYSX” to “1” and see how things will work.
I got this linkage error saying there is no such thing as a “PxCreateCudaContextManager”:

Undefined symbols for architecture x86_64:
  "physx::PxCreateCudaContextManager(physx::PxFoundation&, physx::PxCudaContextManagerDesc const&, physx::PxProfileZoneManager*)", referenced from:
      Physx::Physx(physx::PxTolerancesScale const&, physx::PxCookingParams const&, bool) in CinderPhysx.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I looked for “PxCreateCudaContextManager” in library source code and found this ( https://github.com/NVIDIAGameWorks/PhysX-3.3/blob/master/PhysXSDK/Source/LowLevel/API/src/px_globals.cpp ):

#if PX_SUPPORT_GPU_PHYSX
#if defined(PX_WINDOWS)
#include "windows/PxvWindowsLoadPhysxGpu.h"
#elif defined(PX_LINUX)
#include "linux/PxvLinuxLoadPhysxGpu.h"
#endif
physx::PxPhysXGpu* gPxPhysXGpu;
#endif

I also checked directory for these includes and there were only two folders: for windows and linux ( https://github.com/NVIDIAGameWorks/PhysX-3.3/tree/master/PhysXSDK/Source/LowLevel/API/src ).

But why OS X header is missing when NVIDIA seem to have already implemented PhysX support for OS X?
Maybe there some ways on how this file can be made without waiting?
Or there any rumors on when it’s done?

I would like to know anything since Internet seem to has no info on this.

Thanks in advance.

PS: I have updated CUDA drivers and currently have version: 7.5.25. But I think it’s not related since there is an actual code missing.

PSS: I got PhysX 3.3.4 from official github. Official samples are not compiling due to some XCode-related errors so I’m currently making PhysX work with Cinder engine. It works, but I still need GPU acceleration.

How are you arriving at the conclusion that PhysX + GPU should just work on OSX? For the longest time GPU support was only available to Windows. The snippet that you posted seems to only have the source code setup to allow support for only Linux and Windows, so again I"m lost as to how it should just work for OSX.

PhysX GPU support requires CUDA, in addition to CUDA, the library must also have GPU support built in. Even with that GPU support is not automatic, one still have to create the CudaContextManager and assign it to the PhysX scene.

Another major fallacy that everyone seems to fall into is that GPU enable PhysX is going to automatically make everything go faster. Afaik I know only fluids and cloth are actually simulated on the GPU, all other rigid body are simulated on the CPU, so its not enable GPU PhysX and my entire PhysX simulation will run on the GPU. In most case the CPU base simulation should be sufficient for the general use case.

Also could you give a little more detail into what constitute “complex test” ?