diff options
-rw-r--r-- | source/blender/depsgraph/intern/depsgraph_build_relations.cc | 9 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_mirror.c | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_build_relations.cc b/source/blender/depsgraph/intern/depsgraph_build_relations.cc index 2453701e664..8ee113ec341 100644 --- a/source/blender/depsgraph/intern/depsgraph_build_relations.cc +++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cc @@ -892,6 +892,15 @@ void DepsgraphRelationBuilder::build_driver(ID *id, FCurve *fcu) } DRIVER_TARGETS_LOOPER_END } + + /* It's quite tricky to detect if the driver actually depends on time or not, + * so for now we'll be quite conservative here about optimization and consider + * all python drivers to be depending on time. + */ + if (driver->type == DRIVER_TYPE_PYTHON) { + TimeSourceKey time_src_key; + add_relation(time_src_key, driver_key, DEPSREL_TYPE_TIME, "[TimeSrc -> Driver]"); + } } void DepsgraphRelationBuilder::build_world(World *world) diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c index d3080ca235a..cc02d84dd8e 100644 --- a/source/blender/modifiers/intern/MOD_mirror.c +++ b/source/blender/modifiers/intern/MOD_mirror.c @@ -93,13 +93,14 @@ static void updateDepgraph(ModifierData *md, DagForest *forest, static void updateDepsgraph(ModifierData *md, struct Main *UNUSED(bmain), struct Scene *UNUSED(scene), - Object *UNUSED(ob), + Object *ob, struct DepsNodeHandle *node) { MirrorModifierData *mmd = (MirrorModifierData *)md; if (mmd->mirror_ob != NULL) { DEG_add_object_relation(node, mmd->mirror_ob, DEG_OB_COMP_TRANSFORM, "Mirror Modifier"); } + DEG_add_object_relation(node, ob, DEG_OB_COMP_TRANSFORM, "Mirror Modifier"); } static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd, |