diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-03 13:39:12 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-05-03 13:42:05 +0300 |
commit | b5eb6548d1e7f8c01d84e4949ce614c83c7174c8 (patch) | |
tree | 77e9c6a992ad86ec850a712cfd6f5b154ec40a54 /source/blender/editors/armature/pose_edit.c | |
parent | ec474291a7e388f9a37e5e5409f42d4353789478 (diff) |
Depsgraph: Remove filtering API
This was an attempt to speed up motion path calculation, which didn't
really work in real world animation files, where animators already
hide and disable all the heavy collections. Filtering approach also
doesn't allow to have multiple frames evaluated in multiple threads
easily.
Filtering also adds extra complexity on keeping the graph in a correct
and consistent state.
Fixes T64057: Blender crash when use motion paths
Diffstat (limited to 'source/blender/editors/armature/pose_edit.c')
-rw-r--r-- | source/blender/editors/armature/pose_edit.c | 34 |
1 files changed, 1 insertions, 33 deletions
diff --git a/source/blender/editors/armature/pose_edit.c b/source/blender/editors/armature/pose_edit.c index cf64210ebdb..954beda7777 100644 --- a/source/blender/editors/armature/pose_edit.c +++ b/source/blender/editors/armature/pose_edit.c @@ -65,7 +65,7 @@ #include "armature_intern.h" -#define DEBUG_TIME +#undef DEBUG_TIME #include "PIL_time.h" #ifdef DEBUG_TIME @@ -197,38 +197,6 @@ void ED_pose_recalculate_paths(bContext *C, Scene *scene, Object *ob, bool curre ListBase targets = {NULL, NULL}; bool free_depsgraph = false; - /* Override depsgraph with a filtered, simpler copy */ - if (!current_frame_only && G.debug_value != -1) { - DEG_FilterQuery query = {{0}}; - - DEG_FilterTarget *dft_ob = MEM_callocN(sizeof(DEG_FilterTarget), "DEG_FilterTarget"); - dft_ob->id = &ob->id; - BLI_addtail(&query.targets, dft_ob); - -#ifdef DEBUG_TIME - TIMEIT_START(filter_pose_depsgraph); -#endif - - depsgraph = DEG_graph_filter(depsgraph, bmain, &query); - -#ifdef DEBUG_TIME - TIMEIT_END(filter_pose_depsgraph); -#endif - - free_depsgraph = true; - MEM_freeN(dft_ob); - -#ifdef DEBUG_TIME - TIMEIT_START(filter_pose_update); -#endif - - BKE_scene_graph_update_tagged(depsgraph, bmain); - -#ifdef DEBUG_TIME - TIMEIT_END(filter_pose_update); -#endif - } - /* set flag to force recalc, then grab the relevant bones to target */ ob->pose->avs.recalc |= ANIMVIZ_RECALC_PATHS; animviz_get_object_motionpaths(ob, &targets); |