Depsgraph: clear update flags when skipping through no-op nodes.
As an optimization, dependency graph evaluation skips through no-op nodes at the scheduling stage. However, that leaves update flags enabled on the node, and the most problematic one is the USER_MODIFIED flag, which get flushed to children every time the no-op node is tagged. This in turn can cause simulation caches downstream to be permanently stuck in an outdated state until the depsgraph is rebuilt and the stuck flag cleared out. Differential Revision: https://developer.blender.org/D16868
This commit is contained in:
@@ -224,6 +224,10 @@ enum OperationFlag {
|
||||
|
||||
/* Set of flags which gets flushed along the relations. */
|
||||
DEPSOP_FLAG_FLUSH = (DEPSOP_FLAG_USER_MODIFIED),
|
||||
|
||||
/* Set of flags which get cleared upon evaluation. */
|
||||
DEPSOP_FLAG_CLEAR_ON_EVAL = (DEPSOP_FLAG_DIRECTLY_MODIFIED | DEPSOP_FLAG_NEEDS_UPDATE |
|
||||
DEPSOP_FLAG_USER_MODIFIED),
|
||||
};
|
||||
|
||||
/* Atomic Operation - Base type for all operations */
|
||||
|
||||
Reference in New Issue
Block a user