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) {