Explorar o código

Bullet: Remove multithread support that is not available anymore. And was never used by the engine in the first place.

Riccardo Balbo %!s(int64=9) %!d(string=hai) anos
pai
achega
7f87a92c72

+ 51 - 51
jme3-bullet-native/src/native/cpp/jmePhysicsSpace.cpp

@@ -66,41 +66,41 @@ void jmePhysicsSpace::stepSimulation(jfloat tpf, jint maxSteps, jfloat accuracy)
     dynamicsWorld->stepSimulation(tpf, maxSteps, accuracy);
 }
 
-btThreadSupportInterface* jmePhysicsSpace::createSolverThreadSupport(int maxNumThreads) {
-#ifdef _WIN32
-    Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("solverThreads", SolverThreadFunc, SolverlsMemoryFunc, maxNumThreads);
-    Win32ThreadSupport* threadSupport = new Win32ThreadSupport(threadConstructionInfo);
-    threadSupport->startSPU();
-#elif defined (USE_PTHREADS)
-    PosixThreadSupport::ThreadConstructionInfo constructionInfo("collision", SolverThreadFunc,
-            SolverlsMemoryFunc, maxNumThreads);
-    PosixThreadSupport* threadSupport = new PosixThreadSupport(constructionInfo);
-    threadSupport->startSPU();
-#else
-    SequentialThreadSupport::SequentialThreadConstructionInfo tci("solverThreads", SolverThreadFunc, SolverlsMemoryFunc);
-    SequentialThreadSupport* threadSupport = new SequentialThreadSupport(tci);
-    threadSupport->startSPU();
-#endif
-    return threadSupport;
-}
+// btThreadSupportInterface* jmePhysicsSpace::createSolverThreadSupport(int maxNumThreads) {
+// #ifdef _WIN32
+//     Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("solverThreads", SolverThreadFunc, SolverlsMemoryFunc, maxNumThreads);
+//     Win32ThreadSupport* threadSupport = new Win32ThreadSupport(threadConstructionInfo);
+//     threadSupport->startSPU();
+// #elif defined (USE_PTHREADS)
+//     PosixThreadSupport::ThreadConstructionInfo constructionInfo("collision", SolverThreadFunc,
+//             SolverlsMemoryFunc, maxNumThreads);
+//     PosixThreadSupport* threadSupport = new PosixThreadSupport(constructionInfo);
+//     threadSupport->startSPU();
+// #else
+//     SequentialThreadSupport::SequentialThreadConstructionInfo tci("solverThreads", SolverThreadFunc, SolverlsMemoryFunc);
+//     SequentialThreadSupport* threadSupport = new SequentialThreadSupport(tci);
+//     threadSupport->startSPU();
+// #endif
+//     return threadSupport;
+// }
 
-btThreadSupportInterface* jmePhysicsSpace::createDispatchThreadSupport(int maxNumThreads) {
-#ifdef _WIN32
-    Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("solverThreads", processCollisionTask, createCollisionLocalStoreMemory, maxNumThreads);
-    Win32ThreadSupport* threadSupport = new Win32ThreadSupport(threadConstructionInfo);
-    threadSupport->startSPU();
-#elif defined (USE_PTHREADS)
-    PosixThreadSupport::ThreadConstructionInfo solverConstructionInfo("solver", processCollisionTask,
-            createCollisionLocalStoreMemory, maxNumThreads);
-    PosixThreadSupport* threadSupport = new PosixThreadSupport(solverConstructionInfo);
-    threadSupport->startSPU();
-#else
-    SequentialThreadSupport::SequentialThreadConstructionInfo tci("solverThreads", processCollisionTask, createCollisionLocalStoreMemory);
-    SequentialThreadSupport* threadSupport = new SequentialThreadSupport(tci);
-    threadSupport->startSPU();
-#endif
-    return threadSupport;
-}
+// btThreadSupportInterface* jmePhysicsSpace::createDispatchThreadSupport(int maxNumThreads) {
+// #ifdef _WIN32
+//     Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("solverThreads", processCollisionTask, createCollisionLocalStoreMemory, maxNumThreads);
+//     Win32ThreadSupport* threadSupport = new Win32ThreadSupport(threadConstructionInfo);
+//     threadSupport->startSPU();
+// #elif defined (USE_PTHREADS)
+//     PosixThreadSupport::ThreadConstructionInfo solverConstructionInfo("solver", processCollisionTask,
+//             createCollisionLocalStoreMemory, maxNumThreads);
+//     PosixThreadSupport* threadSupport = new PosixThreadSupport(solverConstructionInfo);
+//     threadSupport->startSPU();
+// #else
+//     SequentialThreadSupport::SequentialThreadConstructionInfo tci("solverThreads", processCollisionTask, createCollisionLocalStoreMemory);
+//     SequentialThreadSupport* threadSupport = new SequentialThreadSupport(tci);
+//     threadSupport->startSPU();
+// #endif
+//     return threadSupport;
+// }
 
 void jmePhysicsSpace::createPhysicsSpace(jfloat minX, jfloat minY, jfloat minZ, jfloat maxX, jfloat maxY, jfloat maxZ, jint broadphaseId, jboolean threading) {
     // collision configuration contains default setup for memory, collision setup
@@ -140,23 +140,23 @@ void jmePhysicsSpace::createPhysicsSpace(jfloat minX, jfloat minY, jfloat minZ,
     btCollisionDispatcher* dispatcher;
     btConstraintSolver* solver;
     // use the default collision dispatcher. For parallel processing you can use a diffent dispatcher (see Extras/BulletMultiThreaded)
-    if (threading) {
-        btThreadSupportInterface* dispatchThreads = createDispatchThreadSupport(4);
-        dispatcher = new SpuGatheringCollisionDispatcher(dispatchThreads, 4, collisionConfiguration);
-        dispatcher->setDispatcherFlags(btCollisionDispatcher::CD_DISABLE_CONTACTPOOL_DYNAMIC_ALLOCATION);
-    } else {
+    // if (threading) {
+        // btThreadSupportInterface* dispatchThreads = createDispatchThreadSupport(4);
+        // dispatcher = new SpuGatheringCollisionDispatcher(dispatchThreads, 4, collisionConfiguration);
+        // dispatcher->setDispatcherFlags(btCollisionDispatcher::CD_DISABLE_CONTACTPOOL_DYNAMIC_ALLOCATION);
+    // } else {
         dispatcher = new btCollisionDispatcher(collisionConfiguration);
-    }
+    // }
     btGImpactCollisionAlgorithm::registerAlgorithm(dispatcher);
     
 
     // the default constraint solver. For parallel processing you can use a different solver (see Extras/BulletMultiThreaded)
-    if (threading) {
-        btThreadSupportInterface* solverThreads = createSolverThreadSupport(4);
-        solver = new btParallelConstraintSolver(solverThreads);
-    } else {
+    // if (threading) {
+        // btThreadSupportInterface* solverThreads = createSolverThreadSupport(4);
+        // solver = new btParallelConstraintSolver(solverThreads);
+    // } else {
         solver = new btSequentialImpulseConstraintSolver;
-    }
+    // }
 
     //create dynamics world
     btDiscreteDynamicsWorld* world = new btDiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration);
@@ -164,12 +164,12 @@ void jmePhysicsSpace::createPhysicsSpace(jfloat minX, jfloat minY, jfloat minZ,
     dynamicsWorld->setWorldUserInfo(this);
 
     //parallel solver requires the contacts to be in a contiguous pool, so avoid dynamic allocation
-    if (threading) {
-        world->getSimulationIslandManager()->setSplitIslands(false);
-        world->getSolverInfo().m_numIterations = 4;
-        world->getSolverInfo().m_solverMode = SOLVER_SIMD + SOLVER_USE_WARMSTARTING; //+SOLVER_RANDMIZE_ORDER;
-        world->getDispatchInfo().m_enableSPU = true;
-    }
+    // if (threading) { 
+        // world->getSimulationIslandManager()->setSplitIslands(false);
+        // world->getSolverInfo().m_numIterations = 4;
+        // world->getSolverInfo().m_solverMode = SOLVER_SIMD + SOLVER_USE_WARMSTARTING; //+SOLVER_RANDMIZE_ORDER;
+        // world->getDispatchInfo().m_enableSPU = true;
+    // }
 
     broadphase->getOverlappingPairCache()->setInternalGhostPairCallback(new btGhostPairCallback());
 

+ 11 - 11
jme3-bullet-native/src/native/cpp/jmePhysicsSpace.h

@@ -36,15 +36,15 @@
 #include "BulletCollision/CollisionDispatch/btCollisionObject.h"
 #include "BulletCollision/CollisionDispatch/btGhostObject.h"
 #include "BulletDynamics/Character/btKinematicCharacterController.h"
-#ifdef _WIN32
-#include "BulletMultiThreaded/Win32ThreadSupport.h"
-#else
-#include "BulletMultiThreaded/PosixThreadSupport.h"
-#endif
-#include "BulletMultiThreaded/btParallelConstraintSolver.h"
-#include "BulletMultiThreaded/SpuGatheringCollisionDispatcher.h"
-#include "BulletMultiThreaded/SpuCollisionTaskProcess.h"
-#include "BulletMultiThreaded/SequentialThreadSupport.h"
+// #ifdef _WIN32
+// #include "BulletMultiThreaded/Win32ThreadSupport.h"
+// #else
+// #include "BulletMultiThreaded/PosixThreadSupport.h"
+// #endif
+// #include "BulletMultiThreaded/btParallelConstraintSolver.h"
+// #include "BulletMultiThreaded/SpuGatheringCollisionDispatcher.h"
+// #include "BulletMultiThreaded/SpuCollisionTaskProcess.h"
+// #include "BulletMultiThreaded/SequentialThreadSupport.h"
 #include "BulletCollision/CollisionDispatch/btSimulationIslandManager.h"
 #include "BulletCollision/NarrowPhaseCollision/btManifoldPoint.h"
 #include "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h"
@@ -59,8 +59,8 @@ private:
 	JavaVM* vm;
 	btDynamicsWorld* dynamicsWorld;
 	jobject javaPhysicsSpace;
-        btThreadSupportInterface* createSolverThreadSupport(int);
-        btThreadSupportInterface* createDispatchThreadSupport(int);
+        // btThreadSupportInterface* createSolverThreadSupport(int);
+        // btThreadSupportInterface* createDispatchThreadSupport(int);
         void attachThread();
 public:
 	jmePhysicsSpace(){};