[Bf-blender-cvs] [509ffe1] fracture_modifier: fix for missing omp condition evaluation (should work for boolean now only, because it causes errors with other algorithms)
Martin Felke
noreply at git.blender.org
Thu Nov 24 19:43:31 CET 2016
Commit: 509ffe100261f724b7131ca4e57cfc0f6fd75ddc
Author: Martin Felke
Date: Thu Nov 24 19:42:47 2016 +0100
Branches: fracture_modifier
https://developer.blender.org/rB509ffe100261f724b7131ca4e57cfc0f6fd75ddc
fix for missing omp condition evaluation (should work for boolean now only, because it causes errors with other algorithms)
===================================================================
M source/blender/blenkernel/intern/fracture.c
===================================================================
diff --git a/source/blender/blenkernel/intern/fracture.c b/source/blender/blenkernel/intern/fracture.c
index fa5b29d..d53250e 100644
--- a/source/blender/blenkernel/intern/fracture.c
+++ b/source/blender/blenkernel/intern/fracture.c
@@ -554,7 +554,7 @@ static void handle_boolean_fractal(Shard* s, Shard* t, int expected_shards, Deri
/* and we need both halves, so twice again */
Shard *s2 = NULL;
int index = 0;
- int max_retries = 20;
+ int max_retries = 3;
/*continue with "halves", randomly*/
if ((*i) == 0) {
@@ -972,13 +972,22 @@ static void parse_cells(cell *cells, int expected_shards, ShardID parent_id, Fra
}
BLI_kdtree_balance(preselect_tree);
-#pragma omp parallel for if (algorithm == MOD_FRACTURE_BOOLEAN && !threaded)
- for (i = 0; i < expected_shards; i++) {
- bool stop = handle_boolean_bisect(fm, obj, expected_shards, algorithm, parent_id, tempshards, dm_parent,
- bm_parent, obmat, inner_material_index, num_cuts, num_levels, fractal,
- &i, smooth, &tempresults, &dm_p, uv_layer, preselect_tree, solver, thresh);
- //if (stop)
- // break;
+
+ if ((algorithm == MOD_FRACTURE_BOOLEAN) && !threaded)
+ {
+ #pragma omp parallel for
+ for (i = 0; i < expected_shards; i++) {
+ handle_boolean_bisect(fm, obj, expected_shards, algorithm, parent_id, tempshards, dm_parent,
+ bm_parent, obmat, inner_material_index, num_cuts, num_levels, fractal,
+ &i, smooth, &tempresults, &dm_p, uv_layer, preselect_tree, solver, thresh);
+ }
+ }
+ else {
+ for (i = 0; i < expected_shards; i++) {
+ handle_boolean_bisect(fm, obj, expected_shards, algorithm, parent_id, tempshards, dm_parent,
+ bm_parent, obmat, inner_material_index, num_cuts, num_levels, fractal,
+ &i, smooth, &tempresults, &dm_p, uv_layer, preselect_tree, solver, thresh);
+ }
}
BLI_kdtree_free(preselect_tree);
More information about the Bf-blender-cvs
mailing list