Bullet3 using MT
Posted: Thu Jul 09, 2020 6:35 am
I am trying to use the default threaded scheduler,
cout<<"btCreateDefaultTaskScheduler:"<<btCreateDefaultTaskScheduler()<<endl;
cout<<"btGetOpenMPTaskScheduler:"<<btGetOpenMPTaskScheduler()<<endl;
both cases return NULL.
Is there some flag to be set to while building bullet3 to get this work.
My simulation running the default sequential solver works fine, using btDiscreteDynamicsWorldMt crashes randomly:
pCollisionConfiguration = make_shared<btDefaultCollisionConfiguration>();
pBroadphase = make_shared<btDbvtBroadphase>();
btSetTaskScheduler(btCreateDefaultTaskScheduler());
psolver = make_shared<btSequentialImpulseConstraintSolverMt>();
pDispatcher =make_shared<btCollisionDispatcherMt>(b.pCollisionConfiguration.get());
pSolverPool = make_shared<btConstraintSolverPoolMt>(BT_MAX_THREAD_COUNT);
pWorld = make_shared<btDiscreteDynamicsWorldMt>(pDispatcher.get(), pBroadphase.get(), pSolverPool.get(), psolver.get(), b.pCollisionConfiguration.get());
cout<<"btCreateDefaultTaskScheduler:"<<btCreateDefaultTaskScheduler()<<endl;
cout<<"btGetOpenMPTaskScheduler:"<<btGetOpenMPTaskScheduler()<<endl;
both cases return NULL.
Is there some flag to be set to while building bullet3 to get this work.
My simulation running the default sequential solver works fine, using btDiscreteDynamicsWorldMt crashes randomly:
pCollisionConfiguration = make_shared<btDefaultCollisionConfiguration>();
pBroadphase = make_shared<btDbvtBroadphase>();
btSetTaskScheduler(btCreateDefaultTaskScheduler());
psolver = make_shared<btSequentialImpulseConstraintSolverMt>();
pDispatcher =make_shared<btCollisionDispatcherMt>(b.pCollisionConfiguration.get());
pSolverPool = make_shared<btConstraintSolverPoolMt>(BT_MAX_THREAD_COUNT);
pWorld = make_shared<btDiscreteDynamicsWorldMt>(pDispatcher.get(), pBroadphase.get(), pSolverPool.get(), psolver.get(), b.pCollisionConfiguration.get());