From 2bfe00233b0c4f456aca42a2f6d866cb48463083 Mon Sep 17 00:00:00 2001 From: Johnathon Selstad Date: Fri, 22 Dec 2023 01:05:01 -0800 Subject: [PATCH] Make Determinism Truly Deterministic --- src/manifold/src/csg_tree.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/manifold/src/csg_tree.cpp b/src/manifold/src/csg_tree.cpp index 610d3e1e1..c48d692ad 100644 --- a/src/manifold/src/csg_tree.cpp +++ b/src/manifold/src/csg_tree.cpp @@ -223,11 +223,12 @@ Manifold::Impl CsgLeafNode::Compose( // if we are already parallelizing for each node, do not perform multithreaded // copying as it will slightly hurt performance - if (nodes.size() > 1 && policy == ExecutionPolicy::Par) + if ((nodes.size() > 1 && policy == ExecutionPolicy::Par) || + ManifoldParams().deterministic) policy = ExecutionPolicy::Seq; for_each_n( - nodes.size() > 1 ? ExecutionPolicy::Par : ExecutionPolicy::Seq, + !ManifoldParams().deterministic && nodes.size() > 1 ? ExecutionPolicy::Par : ExecutionPolicy::Seq, countAt(0), nodes.size(), [&nodes, &vertIndices, &edgeIndices, &triIndices, &propVertIndices, numPropOut, &combined, policy](int i) {