[Bf-blender-cvs] [67598d39b41] blender2.8: Revert "Depsgraph: refresh RNA that doesn't need a full rebuild"

Joshua Leung noreply at git.blender.org
Wed May 23 20:41:09 CEST 2018


Commit: 67598d39b413f9cb0d2c7979c4a08207dd44d806
Author: Joshua Leung
Date:   Wed May 23 20:24:58 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB67598d39b413f9cb0d2c7979c4a08207dd44d806

Revert "Depsgraph: refresh RNA that doesn't need a full rebuild"

This reverts commit b4b745b72064ee7d3d8b0245ac8e8358b7fd07a3.

This was causing a problem in 01_025_A.anim.blend from the Spring
production files, where selecting one of Autumn's bones would
result in character jumping back to the origin.

===================================================================

M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M	source/blender/makesdna/DNA_ID.h
M	source/blender/makesrna/intern/rna_access.c

===================================================================

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 900d9cfd1cf..9a1bd87f93d 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -2137,8 +2137,7 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDDepsNode *id_node
 		 */
 		OperationDepsNode *op_entry = comp_node->get_entry_operation();
 		if (op_entry != NULL) {
-			DepsRelation *rel = graph_->add_new_relation(op_cow, op_entry, "CoW Dependency");
-			rel->flag |= DEPSREL_FLAG_NO_FLUSH;
+			graph_->add_new_relation(op_cow, op_entry, "CoW Dependency");
 		}
 		/* All dangling operations should also be executed after copy-on-write. */
 		GHASH_FOREACH_BEGIN(OperationDepsNode *, op_node, comp_node->operations_map)
@@ -2162,8 +2161,7 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDDepsNode *id_node
 					}
 				}
 				if (!has_same_comp_dependency) {
-					DepsRelation *rel_sub = graph_->add_new_relation(op_cow, op_node, "CoW Dependency");
-					rel_sub->flag |= DEPSREL_FLAG_NO_FLUSH;
+					graph_->add_new_relation(op_cow, op_node, "CoW Dependency");
 				}
 			}
 		}
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index 4d59a7c9669..acf054a94d5 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -397,10 +397,6 @@ typedef enum ID_Type {
                                          ID_IS_STATIC_OVERRIDE((_id)) && \
                                          (((ID *)(_id))->override_static->flag & STATICOVERRIDE_AUTO))
 
-/* No copy-on-write for these types. */
-#define ID_TYPE_IS_COW(_id_type) \
-	(!ELEM(_id_type, ID_WM, ID_SCR, ID_SCRN, ID_IM, ID_MC, ID_LI))
-
 #ifdef GS
 #  undef GS
 #endif
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index 4c27d3d2226..a6a834465ff 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -2075,12 +2075,6 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR
 			/* we could add NULL check, for now don't */
 			WM_msg_publish_rna(mbus, ptr, prop);
 		}
-		if (ptr->id.data != NULL) {
-			const short id_type = GS(((ID *)ptr->id.data)->name);
-			if (ID_TYPE_IS_COW(id_type)) {
-				DEG_id_tag_update(ptr->id.data, DEG_TAG_COPY_ON_WRITE);
-			}
-		}
 #endif
 	}



More information about the Bf-blender-cvs mailing list