[Bf-blender-cvs] [8553449cf2d] blender-v2.79a-release: Task scheduler: Start with suspended pool to avoid threading overhead on push
Sergey Sharybin
noreply at git.blender.org
Mon Jan 22 12:57:27 CET 2018
Commit: 8553449cf2d659ef5c05bcfc02ac27d3ede6d4e4
Author: Sergey Sharybin
Date: Mon Jan 22 12:57:08 2018 +0100
Branches: blender-v2.79a-release
https://developer.blender.org/rB8553449cf2d659ef5c05bcfc02ac27d3ede6d4e4
Task scheduler: Start with suspended pool to avoid threading overhead on push
The idea is to avoid any threading overhead when we start pushing tasks in a
loop. Similarly to how we do it from the new dependency graph. Gives couple of
percent of speedup here, but also improves scalability.
===================================================================
M source/blender/blenlib/intern/task.c
===================================================================
diff --git a/source/blender/blenlib/intern/task.c b/source/blender/blenlib/intern/task.c
index da632e92e08..a064c69e8a5 100644
--- a/source/blender/blenlib/intern/task.c
+++ b/source/blender/blenlib/intern/task.c
@@ -1101,7 +1101,7 @@ static void task_parallel_range_ex(
}
task_scheduler = BLI_task_scheduler_get();
- task_pool = BLI_task_pool_create(task_scheduler, &state);
+ task_pool = BLI_task_pool_create_suspended(task_scheduler, &state);
num_threads = BLI_task_scheduler_num_threads(task_scheduler);
/* The idea here is to prevent creating task for each of the loop iterations
@@ -1328,7 +1328,7 @@ void BLI_task_parallel_listbase(
}
task_scheduler = BLI_task_scheduler_get();
- task_pool = BLI_task_pool_create(task_scheduler, &state);
+ task_pool = BLI_task_pool_create_suspended(task_scheduler, &state);
num_threads = BLI_task_scheduler_num_threads(task_scheduler);
/* The idea here is to prevent creating task for each of the loop iterations
More information about the Bf-blender-cvs
mailing list