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) |
||
---|---|---|
.. | ||
audio | ||
camera | ||
physics_2d | ||
physics_3d | ||
rendering | ||
xr | ||
audio_server.cpp | ||
audio_server.h | ||
camera_server.cpp | ||
camera_server.h | ||
display_server.cpp | ||
display_server.h | ||
navigation_server_2d.cpp | ||
navigation_server_2d.h | ||
navigation_server_3d.cpp | ||
navigation_server_3d.h | ||
physics_server_2d.cpp | ||
physics_server_2d.h | ||
physics_server_3d.cpp | ||
physics_server_3d.h | ||
register_server_types.cpp | ||
register_server_types.h | ||
rendering_server.cpp | ||
rendering_server.h | ||
SCsub | ||
server_wrap_mt_common.h | ||
text_server.cpp | ||
text_server.h | ||
xr_server.cpp | ||
xr_server.h |