[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