From 91b4f9f1f609e1cd119dc41943cfb2c2276092ac Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Tue, 23 Jan 2024 12:42:25 -0500 Subject: [PATCH] Data Transfer: Avoid unnecessarily computing existing normals If the mix factor means the old values won't be used at all, the existing corner normals from before the modifier don't matter and we can skip computing them. --- source/blender/blenkernel/intern/data_transfer.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/data_transfer.cc b/source/blender/blenkernel/intern/data_transfer.cc index 822ed9ad135..4bf8d305e6b 100644 --- a/source/blender/blenkernel/intern/data_transfer.cc +++ b/source/blender/blenkernel/intern/data_transfer.cc @@ -1060,7 +1060,9 @@ static bool data_transfer_layersmapping_generate(ListBase *r_map, dst_data = static_cast(CustomData_add_layer( &me_dst->corner_data, CD_NORMAL, CD_SET_DEFAULT, me_dst->corners_num)); } - MutableSpan(dst_data, me_dst->corners_num).copy_from(me_dst->corner_normals()); + if (mix_factor != 1.0f) { + MutableSpan(dst_data, me_dst->corners_num).copy_from(me_dst->corner_normals()); + } /* Post-process will convert it back to CD_CUSTOMLOOPNORMAL. */ data_transfer_layersmapping_add_item_cd(r_map, CD_NORMAL,