Commit: 58f1e62871cc9f4be418c4f2397ae6bb86318d15 Author: Hans Goudey Date: Wed Jan 4 12:19:58 2023 -0500 Branches: master https://developer.blender.org/rB58f1e62871cc9f4be418c4f2397ae6bb86318d15
Geometry Nodes: Parallelize deleting vertex group Since 78f28b55d39288926634, allocating on multiple threads is much faster, making it a nice improvement to parallelize vertex group operations. This patch adds multi-threading when removing a vertex group from the "Remove Named Attribute" node. On a Ryzen 3700x: Before: `(Average: 15.6 ms, Min: 15.0 ms)` After: `(Average: 8.1 ms, Min: 7.6 ms)` Differential Revision: https://developer.blender.org/D16916 =================================================================== M source/blender/blenkernel/intern/geometry_component_mesh.cc =================================================================== diff --git a/source/blender/blenkernel/intern/geometry_component_mesh.cc b/source/blender/blenkernel/intern/geometry_component_mesh.cc index 87ddb76171e..ac19fb43568 100644 --- a/source/blender/blenkernel/intern/geometry_component_mesh.cc +++ b/source/blender/blenkernel/intern/geometry_component_mesh.cc @@ -1117,15 +1117,18 @@ class VertexGroupsAttributeProvider final : public DynamicAttributesProvider { return true; } - for (MDeformVert &dvert : mesh->deform_verts_for_write()) { - MDeformWeight *weight = BKE_defvert_find_index(&dvert, index); - BKE_defvert_remove_group(&dvert, weight); - for (MDeformWeight &weight : MutableSpan(dvert.dw, dvert.totweight)) { - if (weight.def_nr > index) { - weight.def_nr--; + MutableSpan<MDeformVert> dverts = mesh->deform_verts_for_write(); + threading::parallel_for(dverts.index_range(), 1024, [&](IndexRange range) { + for (MDeformVert &dvert : dverts.slice(range)) { + MDeformWeight *weight = BKE_defvert_find_index(&dvert, index); + BKE_defvert_remove_group(&dvert, weight); + for (MDeformWeight &weight : MutableSpan(dvert.dw, dvert.totweight)) { + if (weight.def_nr > index) { + weight.def_nr--; + } } } - } + }); return true; } _______________________________________________ Bf-blender-cvs mailing list [email protected] List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs
