From 39b525e0f07fa25dcda54226ade789959b642dec Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Fri, 10 Jul 2020 12:05:31 +0200 Subject: Fix T78296: Performance - Use Binary Search for MDeformWeight Use binary search for querying deform weights. Spring 02_020_A.anim.blend on Ryzen 1700X goes from 12.4 to 12.7fps. During profiling it was detected that adding new items to the head was faster than adding to the tail. Reviewed By: Campbell Barton Differential Revision: https://developer.blender.org/D8127 --- source/blender/blenkernel/intern/customdata.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'source/blender/blenkernel/intern/customdata.c') diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index c11fa69db76..6843c4c58fa 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -47,6 +47,7 @@ #include "BKE_customdata.h" #include "BKE_customdata_file.h" +#include "BKE_deform.h" #include "BKE_main.h" #include "BKE_mesh_mapping.h" #include "BKE_mesh_remap.h" @@ -320,6 +321,7 @@ static void layerInterp_mdeformvert(const void **sources, } dvert->dw[i] = node->dw; } + BKE_defvert_array_sort_weights(dvert, count); } else { memset(dvert, 0, sizeof(*dvert)); -- cgit v1.2.3