448c41a3e4
Use ThreadWorkPool to process physics step tasks in multiple threads. Collisions are all processed in parallel and solving impulses is processed in parallel for rigid body islands. Additional changes: - Proper islands for soft bodies linked to active bodies - All moving areas are on separate islands (can be parallelized) - Fix inconsistencies with body islands (Kinematic bodies could link bodies together or not depending on the processing order) - Completely prevent static bodies to be active (it could cause islands to be wrongly created and cause dangerous multi-threading operations as well as inconsistencies in created islands) - Apply impulses only on dynamic bodies to avoid unsafe multi-threaded operations (static bodies can be on multiple islands) - Removed inverted iterations when populating body islands, it's now faster in regular order (maybe after fixing inconsistencies) |
||
---|---|---|
.. | ||
area_2d_sw.cpp | ||
area_2d_sw.h | ||
area_pair_2d_sw.cpp | ||
area_pair_2d_sw.h | ||
body_2d_sw.cpp | ||
body_2d_sw.h | ||
body_pair_2d_sw.cpp | ||
body_pair_2d_sw.h | ||
broad_phase_2d_basic.cpp | ||
broad_phase_2d_basic.h | ||
broad_phase_2d_hash_grid.cpp | ||
broad_phase_2d_hash_grid.h | ||
broad_phase_2d_sw.cpp | ||
broad_phase_2d_sw.h | ||
collision_object_2d_sw.cpp | ||
collision_object_2d_sw.h | ||
collision_solver_2d_sat.cpp | ||
collision_solver_2d_sat.h | ||
collision_solver_2d_sw.cpp | ||
collision_solver_2d_sw.h | ||
constraint_2d_sw.h | ||
joints_2d_sw.cpp | ||
joints_2d_sw.h | ||
physics_server_2d_sw.cpp | ||
physics_server_2d_sw.h | ||
physics_server_2d_wrap_mt.cpp | ||
physics_server_2d_wrap_mt.h | ||
SCsub | ||
shape_2d_sw.cpp | ||
shape_2d_sw.h | ||
space_2d_sw.cpp | ||
space_2d_sw.h | ||
step_2d_sw.cpp | ||
step_2d_sw.h |