Commit Graph
42 Commits
Author SHA1 Message Date
Lunkhound 4254837170 solvers: remove erroneous 'break' statement that can occur with incorrectly flagged objects; also added asserts to warn when incorrectly flagged objects are detected 2018-05-12 19:54:39 -07:00
Lunkhound 8d5cd1c324 constraint solvers: fix crash for collision-bodies with incorrect flags 2018-05-11 17:47:08 -07:00
Lunkhound ded33f3e7e parallel solver: remove bad assert 2018-05-06 23:39:01 -07:00
Lunkhound b0b7d89979 readme: for premake the options must come before the 'gmake' or they are silently ignored 2018-03-18 23:10:34 -07:00
Lunkhound bdc3c2bafb task scheduler: add multiple job queues to improve performance when there are many threads 2018-03-17 22:59:29 -07:00
Lunkhound 04e0d57dc1 add premake option 'enable-multithreading' 2018-03-16 23:42:43 -07:00
Lunkhound e526e48df8 parallel solver: slightly overallocate to reduce how often allocation is needed 2018-03-13 04:19:02 -07:00
Lunkhound eec478709a parallel solver: small tweaks and fixes 2018-03-06 02:43:59 -08:00
Lunkhound 45fd4acf6e dynamicsWorldMt: make island mgr aware of whether a parallel solver is present and make handoff from parallel solver to solver-pool more explicit 2018-03-05 20:05:38 -08:00
Lunkhound d900a74939 add new source files to setup.py to fix travis-ci build 2018-02-27 03:03:12 -08:00
Lunkhound 06690e542b fix compile error for GCC 2018-02-27 00:30:45 -08:00
Lunkhound b8720f2161 parallel solver: various changes
- threading: adding btSequentialImpulseConstraintSolverMt
 - task scheduler: added parallelSum so that parallel solver can compute residuals
 - CommonRigidBodyMTBase: add slider for solver least squares residual and allow multithreading without needing OpenMP, TBB, or PPL
 - taskScheduler: don't wait for workers to sleep/signal at the end of each parallel block
 - parallel solver: convertContacts split into an allocContactConstraints and setupContactConstraints stage, the latter of which is done in parallel
 - parallel solver: rolling friction is now interleaved along with normal friction
 - parallel solver: batchified split impulse solving + some cleanup
 - parallel solver: sorting batches from largest to smallest
 - parallel solver: added parallel batch creation
 - parallel solver: added warmstartingWriteBackContacts func + other cleanup
 - task scheduler: truncate low bits to preserve determinism with parallelSum
 - parallel solver: reducing dynamic mem allocs and trying to parallelize more of the batch setup
 - parallel solver: parallelize updating constraint batch ids for merging
 - parallel solver: adding debug visualization
 - task scheduler: make TBB task scheduler parallelSum deterministic
 - parallel solver: split batch gen code into separate file; allow selection of batch gen method
 - task scheduler: add sleepWorkerThreadsHint() at end of simulation
 - parallel solver: added grain size per phase
 - task Scheduler: fix for strange threading issue; also no need for main thread to wait for workers to sleep
 - base constraint solver: break out joint setup into separate function for profiling/overriding
 - parallel solver: allow different batching method for contacts vs joints
 - base constraint solver: add convertJoint and convertBodies to make it possible to parallelize joint and body conversion
 - parallel solver: convert joints and bodies in parallel now
 - parallel solver: speed up batch creation with run-length encoding
 - parallel solver: batch gen: run-length expansion in parallel; collect constraint info in parallel
 - parallel solver: adding spatial grid batching method
 - parallel solver: enhancements to spatial grid batching
 - sequential solver: moving code for writing back into functions that derived classes can call
 - parallel solver: do write back of bodies and joints in parallel
 - parallel solver: removed all batching methods except for spatial grid (others were ineffective)
 - parallel solver: added 2D or 3D grid batching options; and a bit of cleanup
 - move btDefaultTaskScheduler into LinearMath project
2018-02-26 22:47:33 -08:00
Lunkhound b7f35000aa NNCG solver: apply rolling friction consistently regardless of the solver flags 2017-07-02 21:12:25 -07:00
Lunkhound e85e2ee127 MultiThreadedDemo: make it possible to dial in a single large island, and
tilt the ground and adjust rolling friction
2017-07-02 21:05:51 -07:00
Lunkhound 79877116e7 CommonRigidBodyMTBase: replace 'stricmp' with 'strcmp' 2017-06-11 10:04:38 -07:00
Lunkhound f86b9b4fc4 example browser: GUI improvements for CommonRigidBodyMT based demos 2017-06-11 08:15:28 -07:00
Lunkhound e9ec5044d1 SequentialImpulseConstraintSolver: fix bugs with SOLVER_SIMD flag 2017-06-10 04:33:40 -07:00
Lunkhound 8b3f979c27 fix a stray override keyword that slipped in 2017-06-09 18:28:46 -07:00
lunkhound 6bf3d4e08e Merge branch 'master' into pr-fix-thread-index 2017-06-05 00:33:02 -07:00
Lunkhound 03aa178ca5 example browser: fix 'clamp-to-integer' on GUI-sliders 2017-06-04 17:34:21 -07:00
Lunkhound 0fc3ce69e9 fix thread index going out of range bug 2017-06-03 18:03:59 -07:00
Lunkhound cc1e6dc269 make MultiThreadedDemo available if threadsafe 2017-05-30 00:47:41 -07:00
Lunkhound a6a0ea5f54 add task scheduler implemented with thread support interface 2017-05-30 00:21:10 -07:00
Lunkhound 562858251a remove bad thread affinity mask setting 2017-05-30 00:09:05 -07:00
Lunkhound ba88d332fb fix crash with out of range thread index 2017-05-29 23:54:15 -07:00
Lunkhound 34e2c1b784 add profiling info 2017-05-29 23:53:35 -07:00
Lunkhound d77c3d5b68 fix compile errors in non-threadsafe build 2017-05-23 02:34:29 -07:00
Lunkhound dfe184e8d3 Bullet 2 threading refactor: moved parallel-for calls into core libs 2017-05-23 01:01:20 -07:00
Lunkhound 5bc9d431a0 CommonRigidBodyMTBase: replace dynamic_cast (which crashes without RTTI) with static_cast 2017-05-21 03:14:09 -07:00
Lunkhound f65644f3e0 fix compile error when BT_THREADSAFE not defined 2017-01-29 21:13:24 -08:00
Lunkhound b979064817 fix compile error on GCC 2017-01-06 21:20:44 -08:00
Lunkhound ea0df70c77 example browser: fix for GUI button toggle state 2017-01-02 23:01:22 -08:00
Lunkhound da03d8ce5a options to change solver type and mode
Conflicts:
	examples/MultiThreadedDemo/CommonRigidBodyMTBase.h
2017-01-02 22:57:48 -08:00
Lunkhound f7ccf7e5a7 example browser: restore on-screen text 2016-12-20 01:15:39 -08:00
Lunkhound 6d2c7b9aba constraint solver: fix bug in getOrInitSolverBody (threadsafe case only) for kinematic objects 2016-12-19 21:31:38 -08:00
Lunkhound a10244e1ab MultiThreadedDemo: make the ground a kinematic object that can shake 2016-12-19 21:31:18 -08:00
Lunkhound 4300ef45a3 fix missing globals 2016-11-20 18:00:21 -08:00
Lunkhound 49b27f30bd example browser: slider widget improvements 2016-11-20 16:38:11 -08:00
Lunkhound 2f4ec4f8c9 collisionObject: renamed uniqueId to worldArrayIndex; removed linear search in removeCollisionObject 2016-11-12 12:41:55 -08:00
Lunkhound 1c3686ca51 MultiThreaded Demo:
- fixing various race conditions throughout (usage of static vars, etc)
 - addition of a few lightweight mutexes (which are compiled out by default)
 - slight code rearrangement in discreteDynamicsWorld to facilitate multithreading
 - PoolAllocator::allocate() can now be called when pool is full without
     crashing (null pointer returned)
 - PoolAllocator allocate and freeMemory, are OPTIONALLY threadsafe
     (default is un-threadsafe)
 - CollisionDispatcher no longer checks if the pool allocator is full
     before calling allocate(), instead it just calls allocate() and
     checks if the return is null -- this avoids a race condition
 - SequentialImpulseConstraintSolver OPTIONALLY uses different logic in
     getOrInitSolverBody() to avoid a race condition with kinematic bodies
 - addition of 2 classes which together allow simulation islands to be run
   in parallel:
    - btSimulationIslandManagerMt
    - btDiscreteDynamicsWorldMt
 - MultiThreadedDemo example in the example browser demonstrating use of
   OpenMP, Microsoft PPL, and Intel TBB
 - use multithreading for other demos
 - benchmark demo: add parallel raycasting
2016-10-30 12:47:27 -07:00
Lunkhound beaf1b5922 fix for fix 2014-11-25 13:48:20 -08:00
Lunkhound 8cac481091 quickfix: SSE was accidentally disabled on windows desktop by a change intended to disable it only for Windows Phone 2014-11-25 12:44:22 -08:00