Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHoward Trickey <howard.trickey@gmail.com>2020-08-22 22:53:22 +0300
committerHoward Trickey <howard.trickey@gmail.com>2020-08-22 22:53:22 +0300
commitf4e337a7da38445615cf0def3ecc112a1948e5ff (patch)
tree9230f71005001209eed6ab223c457b1b7fa8e416 /source/blender/blenlib
parent99d4d94762dcd5eb64fb6b4c1d56ca610447e741 (diff)
Some tweaks to multithreading parameters based on tests to minimize time.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r--source/blender/blenlib/intern/mesh_intersect.cc8
-rw-r--r--source/blender/blenlib/tests/BLI_mesh_intersect_test.cc6
2 files changed, 5 insertions, 9 deletions
diff --git a/source/blender/blenlib/intern/mesh_intersect.cc b/source/blender/blenlib/intern/mesh_intersect.cc
index 32b423c9f2c..28cd9c216e6 100644
--- a/source/blender/blenlib/intern/mesh_intersect.cc
+++ b/source/blender/blenlib/intern/mesh_intersect.cc
@@ -2486,9 +2486,7 @@ static void calc_overlap_itts(Map<std::pair<int, int>, ITT_value> &itt_map,
int tot_intersect_pairs = data.intersect_pairs.size();
TaskParallelSettings settings;
BLI_parallel_range_settings_defaults(&settings);
- constexpr int intersect_threading_threshold = 100;
- settings.use_threading = (intersect_use_threading &&
- tot_intersect_pairs > intersect_threading_threshold);
+ settings.min_iter_per_thread = 1000;
BLI_task_parallel_range(0, tot_intersect_pairs, &data, calc_overlap_itts_range_func, &settings);
}
@@ -2614,9 +2612,7 @@ static void calc_subdivided_tris(Array<IMesh> &r_tri_subdivided,
int overlap_tri_range_tot = data.overlap_tri_range.size();
TaskParallelSettings settings;
BLI_parallel_range_settings_defaults(&settings);
- constexpr int trisubdiv_threading_threshold = 100;
- settings.use_threading = (intersect_use_threading &&
- overlap_tri_range_tot > trisubdiv_threading_threshold);
+ settings.min_iter_per_thread = 50;
BLI_task_parallel_range(
0, overlap_tri_range_tot, &data, calc_subdivided_tri_range_func, &settings);
}
diff --git a/source/blender/blenlib/tests/BLI_mesh_intersect_test.cc b/source/blender/blenlib/tests/BLI_mesh_intersect_test.cc
index f03bab14ffb..c430db349b9 100644
--- a/source/blender/blenlib/tests/BLI_mesh_intersect_test.cc
+++ b/source/blender/blenlib/tests/BLI_mesh_intersect_test.cc
@@ -925,7 +925,7 @@ static void spheresphere_test(int nrings, double y_offset, bool use_self)
std::cout << "Create time: " << time_create - time_start << "\n";
std::cout << "Intersect time: " << time_intersect - time_create << "\n";
std::cout << "Total time: " << time_intersect - time_start << "\n";
- write_obj_mesh(out, "spheresphere");
+ // write_obj_mesh(out, "spheresphere");
BLI_task_scheduler_exit();
}
@@ -1064,12 +1064,12 @@ static void spheregrid_test(int nrings, int grid_level, double z_offset, bool us
TEST(mesh_intersect_perf, SphereSphere)
{
- spheresphere_test(64, 0.5, false);
+ spheresphere_test(512, 0.5, false);
}
TEST(mesh_intersect_perf, SphereGrid)
{
- spheregrid_test(64, 4, 0.1, false);
+ spheregrid_test(512, 4, 0.1, false);
}
#endif