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.
This commit is contained in:
parent
af83535dd0
commit
8553449cf2
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue