We have been facing a strange issue with physx vehicles. The game behaves correctly in almost every situation: jumps, impacts, etc.
Gravity is applied correctly downward.
But when the vehicle is put upside down in a track, in a loop or twist, somehow it's stuck to the track as if SpiderCar was playing.
Find a video of it here. And an image below:

We are using PxVehicleUpdate::updateDrive4W as coming in the framework version 3.2.2 So the call is just
void VehicleManager::updateVehicle(const PxF32 timestep, const PxVec3& gravity,PxVehicleDrivableSurfaceToTireFrictionPairs * mSurfaceTirePairs) { PxVehicleUpdates(timestep,gravity,*mSurfaceTirePairs,mNumVehicles,mVehicles); } Gravity is a vector (0.0,-9.8,0) being Y the vertical coordinates. Inside it calls updateDrive4W for all the vehicles, which is about 400 lines
PxVehicleDrivableSurfaceToTireFrictionPairsis adding forces to keep the car on the road. You may want to look into the documentation for that. \$\endgroup\$