[Bf-blender-cvs] [25b3515324a] master: Cleanup: Remove unnecessary mesh normals debugging function

Hans Goudey noreply at git.blender.org
Wed Nov 16 20:35:42 CET 2022


Commit: 25b3515324aba98b076e1fb20664a4a44a5ad193
Author: Hans Goudey
Date:   Wed Nov 16 13:07:49 2022 -0600
Branches: master
https://developer.blender.org/rB25b3515324aba98b076e1fb20664a4a44a5ad193

Cleanup: Remove unnecessary mesh normals debugging function

This assertion function came from when derived normal data was stored
as custom data layers, which made it harder to keep track of whether
it was allocated and propagated. Nowadays it's all relatively easy to
predict, so there's no point in keeping this function around-- it only
makes code longer and more complex looking.

===================================================================

M	source/blender/blenkernel/BKE_mesh.h
M	source/blender/blenkernel/intern/DerivedMesh.cc
M	source/blender/blenkernel/intern/mesh.cc
M	source/blender/blenkernel/intern/mesh_normals.cc
M	source/blender/blenkernel/intern/mesh_validate.cc

===================================================================

diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index ec3f12f2475..edd7601ac1d 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -380,13 +380,6 @@ const float (*BKE_mesh_poly_normals_ensure(const struct Mesh *mesh))[3];
  */
 void BKE_mesh_normals_tag_dirty(struct Mesh *mesh);
 
-/**
- * Check that a mesh with non-dirty normals has the caches allocatred with a proper size.
- * If these asserts fail, it means some area cleared the dirty flag but didn't copy or add the
- * normals, or removed normals but didn't set the dirty flag.
- */
-void BKE_mesh_assert_normals_dirty_or_calculated(const struct Mesh *mesh);
-
 /**
  * Retrieve write access to the cached vertex normals, ensuring that they are allocated but *not*
  * that they are calculated. The provided vertex normals should be the same as if they were
diff --git a/source/blender/blenkernel/intern/DerivedMesh.cc b/source/blender/blenkernel/intern/DerivedMesh.cc
index bfdfc447baf..8a57cc66e94 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.cc
+++ b/source/blender/blenkernel/intern/DerivedMesh.cc
@@ -665,7 +665,6 @@ static void mesh_calc_modifiers(struct Depsgraph *depsgraph,
    * constructive modifier is executed, or a deform modifier needs normals
    * or certain data layers. */
   Mesh *mesh_input = (Mesh *)ob->data;
-  BKE_mesh_assert_normals_dirty_or_calculated(mesh_input);
   Mesh *mesh_final = nullptr;
   Mesh *mesh_deform = nullptr;
   /* This geometry set contains the non-mesh data that might be generated by modifiers. */
@@ -1783,8 +1782,6 @@ Mesh *mesh_get_eval_final(struct Depsgraph *depsgraph,
     mesh_eval = BKE_object_get_evaluated_mesh(ob);
   }
 
-  BKE_mesh_assert_normals_dirty_or_calculated(mesh_eval);
-
   return mesh_eval;
 }
 
diff --git a/source/blender/blenkernel/intern/mesh.cc b/source/blender/blenkernel/intern/mesh.cc
index 8331369cb38..8d4e00ef1fd 100644
--- a/source/blender/blenkernel/intern/mesh.cc
+++ b/source/blender/blenkernel/intern/mesh.cc
@@ -165,8 +165,6 @@ static void mesh_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int
     /* XXX This is not nice, we need to make BKE_id_copy_ex fully re-entrant... */
     mesh_dst->key->from = &mesh_dst->id;
   }
-
-  BKE_mesh_assert_normals_dirty_or_calculated(mesh_dst);
 }
 
 void BKE_mesh_free_editmesh(struct Mesh *mesh)
@@ -984,8 +982,6 @@ void BKE_mesh_copy_parameters_for_eval(Mesh *me_dst, const Mesh *me_src)
 
   BKE_mesh_copy_parameters(me_dst, me_src);
 
-  BKE_mesh_assert_normals_dirty_or_calculated(me_dst);
-
   /* Copy vertex group names. */
   BLI_assert(BLI_listbase_is_empty(&me_dst->vertex_group_names));
   BKE_defgroup_copy_list(&me_dst->vertex_group_names, &me_src->vertex_group_names);
@@ -1819,8 +1815,6 @@ void BKE_mesh_calc_normals_split_ex(Mesh *mesh,
                               nullptr,
                               r_lnors_spacearr,
                               clnors);
-
-  BKE_mesh_assert_normals_dirty_or_calculated(mesh);
 }
 
 void BKE_mesh_calc_normals_split(Mesh *mesh)
@@ -2087,7 +2081,6 @@ void BKE_mesh_split_faces(Mesh *mesh, bool free_loop_normals)
   /* Also frees new_verts/edges temp data, since we used its memarena to allocate them. */
   BKE_lnor_spacearr_free(&lnors_spacearr);
 
-  BKE_mesh_assert_normals_dirty_or_calculated(mesh);
 #ifdef VALIDATE_MESH
   BKE_mesh_validate(mesh, true, true);
 #endif
diff --git a/source/blender/blenkernel/intern/mesh_normals.cc b/source/blender/blenkernel/intern/mesh_normals.cc
index 0b827b3a847..49729ede956 100644
--- a/source/blender/blenkernel/intern/mesh_normals.cc
+++ b/source/blender/blenkernel/intern/mesh_normals.cc
@@ -128,13 +128,13 @@ float (*BKE_mesh_poly_normals_for_write(Mesh *mesh))[3]
 void BKE_mesh_vertex_normals_clear_dirty(Mesh *mesh)
 {
   mesh->runtime->vert_normals_dirty = false;
-  BKE_mesh_assert_normals_dirty_or_calculated(mesh);
+  BLI_assert(mesh->runtime->vert_normals || mesh->totvert == 0);
 }
 
 void BKE_mesh_poly_normals_clear_dirty(Mesh *mesh)
 {
   mesh->runtime->poly_normals_dirty = false;
-  BKE_mesh_assert_normals_dirty_or_calculated(mesh);
+  BLI_assert(mesh->runtime->poly_normals || mesh->totpoly == 0);
 }
 
 bool BKE_mesh_vertex_normals_are_dirty(const Mesh *mesh)
@@ -147,16 +147,6 @@ bool BKE_mesh_poly_normals_are_dirty(const Mesh *mesh)
   return mesh->runtime->poly_normals_dirty;
 }
 
-void BKE_mesh_assert_normals_dirty_or_calculated(const Mesh *mesh)
-{
-  if (!mesh->runtime->vert_normals_dirty) {
-    BLI_assert(mesh->runtime->vert_normals || mesh->totvert == 0);
-  }
-  if (!mesh->runtime->poly_normals_dirty) {
-    BLI_assert(mesh->runtime->poly_normals || mesh->totpoly == 0);
-  }
-}
-
 /** \} */
 
 /* -------------------------------------------------------------------- */
diff --git a/source/blender/blenkernel/intern/mesh_validate.cc b/source/blender/blenkernel/intern/mesh_validate.cc
index 9cd3b6e9e9e..c6bd114e911 100644
--- a/source/blender/blenkernel/intern/mesh_validate.cc
+++ b/source/blender/blenkernel/intern/mesh_validate.cc
@@ -298,7 +298,6 @@ bool BKE_mesh_validate_arrays(Mesh *mesh,
   }
 
   const float(*vert_normals)[3] = nullptr;
-  BKE_mesh_assert_normals_dirty_or_calculated(mesh);
   if (!BKE_mesh_vertex_normals_are_dirty(mesh)) {
     vert_normals = BKE_mesh_vertex_normals_ensure(mesh);
   }
@@ -1104,8 +1103,6 @@ bool BKE_mesh_is_valid(Mesh *me)
   bool is_valid = true;
   bool changed = true;
 
-  BKE_mesh_assert_normals_dirty_or_calculated(me);
-
   is_valid &= BKE_mesh_validate_all_customdata(
       &me->vdata,
       me->totvert,
@@ -1141,6 +1138,13 @@ bool BKE_mesh_is_valid(Mesh *me)
                                        do_fixes,
                                        &changed);
 
+  if (!me->runtime->vert_normals_dirty) {
+    BLI_assert(me->runtime->vert_normals || me->totvert == 0);
+  }
+  if (!me->runtime->poly_normals_dirty) {
+    BLI_assert(me->runtime->poly_normals || me->totpoly == 0);
+  }
+
   BLI_assert(changed == false);
 
   return is_valid;



More information about the Bf-blender-cvs mailing list