blender/source
Sergey Sharybin a481908232 Task scheduler: Optimize subsequent pushing bunch of tasks
The idea is to accumulate all new tasks in a thread local queue
first without doing any thread synchronization (aka, locks and
conditional variables) and move those tasks to a scheduler queue
once they are all ready. This way we avoid per-task-pool lock
and only have one lock per bunch of tasks.

This is particularly handy when scheduling new dependency graph
node children. Brings FPS of cached simulation from the linked
below file from ~30 to ~50.

See documentation for BLI_task_pool_delayed_push_{begin, end}
and for TaskThreadLocalStorage::do_delayed_push.

Fixes T50027: Rigidbody playback and simulation performance regression with new depsgraph

Thanks Bastien for the review!
2017-05-31 15:44:08 +02:00
..
blender Task scheduler: Optimize subsequent pushing bunch of tasks 2017-05-31 15:44:08 +02:00
blenderplayer Remove MinGW support 2017-05-27 15:34:55 -04:00
creator Remove MinGW support 2017-05-27 15:34:55 -04:00
gameengine Remove MinGW support 2017-05-27 15:34:55 -04:00
tools@b11375e890 Fix blurry icons 2017-01-29 17:21:57 +03:00
CMakeLists.txt