[Bf-blender-cvs] [c931a0057ff] master: Sculpt: use dynamic scheduling and chunk size 1 for multithreading

Brecht Van Lommel noreply at git.blender.org
Sun Sep 29 16:24:09 CEST 2019


Commit: c931a0057ffea26175a2dc111718e5f3590b00f8
Author: Brecht Van Lommel
Date:   Sun Sep 29 01:38:44 2019 +0200
Branches: master
https://developer.blender.org/rBc931a0057ffea26175a2dc111718e5f3590b00f8

Sculpt: use dynamic scheduling and chunk size 1 for multithreading

This is under the assumptions that each node has enough work to avoid
the threading overhead, while also having a possible variable amount of
work. For example most of the vertices being masked or outside of the
brush radius.

Improves performance by about 10% for tools like mesh filter on an
entire 3 million poly mesh, tested on a quad core.

Ref T68873

===================================================================

M	source/blender/blenkernel/intern/pbvh.c

===================================================================

diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index 79586c71673..bfc513454b4 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -2550,7 +2550,9 @@ void BKE_pbvh_parallel_range_settings(TaskParallelSettings *settings,
                                       bool use_threading,
                                       int totnode)
 {
-  const int threaded_limit = 4;
+  const int threaded_limit = 1;
   BLI_parallel_range_settings_defaults(settings);
   settings->use_threading = use_threading && (totnode > threaded_limit);
+  settings->min_iter_per_thread = 1;
+  settings->scheduling_mode = TASK_SCHEDULING_DYNAMIC;
 }



More information about the Bf-blender-cvs mailing list