Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2016-12-05 17:59:31 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2016-12-05 17:59:31 +0300
commit2cb5dffc8d307753f2e05f6a474289182c6b058b (patch)
tree47851172baf683b3da5b91ef2664e5c3db3e8218 /source/blender/depsgraph/intern/builder/deg_builder_relations.cc
parent60dae91db85479f714cf8c797e467d6a941dea18 (diff)
Depsgraph: Avoid transitive relation from local transform to final
There is always an uber eval node on the way. so we can avoid creating some relations here in order to speed up both construction time and evaluation.
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations.cc')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc18
1 files changed, 12 insertions, 6 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index ac917f2148a..46f053e23e0 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -406,12 +406,18 @@ void DepsgraphRelationBuilder::build_object(Main *bmain, Scene *scene, Object *o
add_relation(ob_ubereval_key, final_transform_key, DEPSREL_TYPE_COMPONENT_ORDER, "Temp Ubereval");
}
else {
- /* operation order */
- add_relation(base_op_key, final_transform_key, DEPSREL_TYPE_COMPONENT_ORDER, "Object Transform");
-
- // XXX
- add_relation(base_op_key, ob_ubereval_key, DEPSREL_TYPE_COMPONENT_ORDER, "Temp Ubereval");
- add_relation(ob_ubereval_key, final_transform_key, DEPSREL_TYPE_COMPONENT_ORDER, "Temp Ubereval");
+ /* NOTE: Keep an eye here, we skip some relations here to "streamline"
+ * dependencies and avoid transitive relations which causes overhead.
+ * But once we get rid of uber eval node this will need reconsideration.
+ */
+ add_relation(base_op_key,
+ ob_ubereval_key,
+ DEPSREL_TYPE_COMPONENT_ORDER,
+ "Temp Ubereval");
+ add_relation(ob_ubereval_key,
+ final_transform_key,
+ DEPSREL_TYPE_COMPONENT_ORDER,
+ "Temp Ubereval");
}