Blender Git Loki
Git Commits -> Revision 04313f1
Revision 04313f1 by Campbell Barton (master) July 5, 2021, 08:36 (GMT) |
BMesh: remove redundant mesh-backups from EDBM_op_* API Using BMesh operators through the edit-mesh API created a full copy of the mesh so it was possible to restore the mesh in case one of the operators raised an error. Remove support for automatic backup/restore from the EDBM_op_* API's as it adds significant overhead and was rarely used. Operators that need this can use the BMBackup API to backup & restore the mesh in case of failure. Add warning levels to BMO_error_raise so operators can report problems without it being interpreted as a request to cancel the operation. For high-poly meshes creating and freeing a full copy is an expensive operation, removing this gives a speedup of ~1.77x for most operators except for "connect_verts" / "connect_vert_pair" which still uses this functionality. |
Commit Details:
Full Hash: 04313f1bb5ff89168099cdc03d1855ae5118d29c
Parent Commit: afe7387
Lines Changed: +151, -96
14 Modified Paths:
/source/blender/blenkernel/BKE_editmesh.h (+0, -4) (Diff)
/source/blender/bmesh/intern/bmesh_error.h (+33, -4) (Diff)
/source/blender/bmesh/intern/bmesh_operators.c (+37, -7) (Diff)
/source/blender/bmesh/operators/bmo_bisect_plane.c (+1, -1) (Diff)
/source/blender/bmesh/operators/bmo_bridge.c (+3, -3) (Diff)
/source/blender/bmesh/operators/bmo_connect.c (+1, -1) (Diff)
/source/blender/bmesh/operators/bmo_dissolve.c (+1, -1) (Diff)
/source/blender/bmesh/operators/bmo_fill_grid.c (+4, -3) (Diff)
/source/blender/bmesh/operators/bmo_hull.c (+1, -1) (Diff)
/source/blender/bmesh/operators/bmo_subdivide_edgering.c (+3, -3) (Diff)
/source/blender/editors/mesh/editmesh_tools.c (+16, -3) (Diff)
/source/blender/editors/mesh/editmesh_utils.c (+48, -62) (Diff)
/source/blender/modifiers/intern/MOD_skin.c (+1, -1) (Diff)
/source/blender/python/bmesh/bmesh_py_ops_call.c (+2, -2) (Diff)
/source/blender/bmesh/intern/bmesh_error.h (+33, -4) (Diff)
/source/blender/bmesh/intern/bmesh_operators.c (+37, -7) (Diff)
/source/blender/bmesh/operators/bmo_bisect_plane.c (+1, -1) (Diff)
/source/blender/bmesh/operators/bmo_bridge.c (+3, -3) (Diff)
/source/blender/bmesh/operators/bmo_connect.c (+1, -1) (Diff)
/source/blender/bmesh/operators/bmo_dissolve.c (+1, -1) (Diff)
/source/blender/bmesh/operators/bmo_fill_grid.c (+4, -3) (Diff)
/source/blender/bmesh/operators/bmo_hull.c (+1, -1) (Diff)
/source/blender/bmesh/operators/bmo_subdivide_edgering.c (+3, -3) (Diff)
/source/blender/editors/mesh/editmesh_tools.c (+16, -3) (Diff)
/source/blender/editors/mesh/editmesh_utils.c (+48, -62) (Diff)
/source/blender/modifiers/intern/MOD_skin.c (+1, -1) (Diff)
/source/blender/python/bmesh/bmesh_py_ops_call.c (+2, -2) (Diff)