[Bf-blender-cvs] [db1728096ab] master: Cleanup: Remove unused node socket cache handling
Hans Goudey
noreply at git.blender.org
Wed Nov 30 20:30:24 CET 2022
Commit: db1728096ab6bcd05f7b4f087c060a6349b5b2ce
Author: Hans Goudey
Date: Wed Nov 30 13:25:06 2022 -0600
Branches: master
https://developer.blender.org/rBdb1728096ab6bcd05f7b4f087c060a6349b5b2ce
Cleanup: Remove unused node socket cache handling
This cache was never written to, only "copied" between sockets in one
case, it dates back at least a decade. It doesn't make sense to store
caches on node trees directly anyway, since they can be used in
multiple places.
===================================================================
M source/blender/blenkernel/BKE_node.h
M source/blender/blenkernel/BKE_node_runtime.hh
M source/blender/blenkernel/intern/node.cc
M source/blender/editors/space_node/node_group.cc
M source/blender/nodes/composite/node_composite_tree.cc
M source/blender/nodes/composite/node_composite_util.cc
M source/blender/render/intern/pipeline.cc
===================================================================
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index a8e28ba492a..2cd2fa9ac62 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -405,8 +405,6 @@ typedef struct bNodeTreeType {
int ui_icon;
/* callbacks */
- void (*free_cache)(struct bNodeTree *ntree);
- void (*free_node_cache)(struct bNodeTree *ntree, struct bNode *node);
/* Iteration over all node classes. */
void (*foreach_nodeclass)(struct Scene *scene, void *calldata, bNodeClassCallback func);
/* Check visibility in the node editor */
@@ -521,8 +519,6 @@ void ntreeUpdateAllUsers(struct Main *main, struct ID *id);
*/
void ntreeSetOutput(struct bNodeTree *ntree);
-void ntreeFreeCache(struct bNodeTree *ntree);
-
void ntreeNodeFlagSet(const bNodeTree *ntree, int flag, bool enable);
/**
* Returns localized tree for execution in threads.
diff --git a/source/blender/blenkernel/BKE_node_runtime.hh b/source/blender/blenkernel/BKE_node_runtime.hh
index ef32dcd8351..56d51169934 100644
--- a/source/blender/blenkernel/BKE_node_runtime.hh
+++ b/source/blender/blenkernel/BKE_node_runtime.hh
@@ -133,9 +133,6 @@ class bNodeSocketRuntime : NonCopyable, NonMovable {
/* Runtime-only cache of the number of input links, for multi-input sockets. */
short total_inputs = 0;
- /** Cached data from execution. */
- void *cache = nullptr;
-
/** Only valid when #topology_cache_is_dirty is false. */
Vector<bNodeLink *> directly_linked_links;
Vector<bNodeSocket *> directly_linked_sockets;
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc
index 8e160607e04..7c437f8fa9f 100644
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@ -2234,9 +2234,6 @@ static void node_socket_copy(bNodeSocket *sock_dst, const bNodeSocket *sock_src,
MEM_dupallocN(sock_src->default_attribute_name));
sock_dst->stack_index = 0;
- /* XXX some compositor nodes (e.g. image, render layers) still store
- * some persistent buffer data here, need to clear this to avoid dangling pointers. */
- sock_dst->runtime->cache = nullptr;
}
namespace blender::bke {
@@ -2923,10 +2920,6 @@ static void node_free_node(bNodeTree *ntree, bNode *node)
if (ntree) {
BLI_remlink(&ntree->nodes, node);
- if (ntree->typeinfo->free_node_cache) {
- ntree->typeinfo->free_node_cache(ntree, node);
- }
-
/* texture node has bad habit of keeping exec data around */
if (ntree->type == NTREE_TEXTURE && ntree->runtime->execdata) {
ntreeTexEndExecTree(ntree->runtime->execdata);
@@ -3107,17 +3100,6 @@ void ntreeFreeLocalTree(bNodeTree *ntree)
}
}
-void ntreeFreeCache(bNodeTree *ntree)
-{
- if (ntree == nullptr) {
- return;
- }
-
- if (ntree->typeinfo->free_cache) {
- ntree->typeinfo->free_cache(ntree);
- }
-}
-
void ntreeSetOutput(bNodeTree *ntree)
{
/* find the active outputs, might become tree type dependent handler */
diff --git a/source/blender/editors/space_node/node_group.cc b/source/blender/editors/space_node/node_group.cc
index b6c062a2a83..f95561035a3 100644
--- a/source/blender/editors/space_node/node_group.cc
+++ b/source/blender/editors/space_node/node_group.cc
@@ -889,9 +889,6 @@ static void node_group_make_insert_selected(const bContext &C, bNodeTree &ntree,
}
}
- /* node groups don't use internal cached data */
- ntreeFreeCache(ngroup);
-
/* create input node */
bNode *input_node = nodeAddStaticNode(&C, ngroup, NODE_GROUP_INPUT);
input_node->locx = real_min[0] - center[0] - offsetx;
diff --git a/source/blender/nodes/composite/node_composite_tree.cc b/source/blender/nodes/composite/node_composite_tree.cc
index d821733244f..a2a3d7d1b64 100644
--- a/source/blender/nodes/composite/node_composite_tree.cc
+++ b/source/blender/nodes/composite/node_composite_tree.cc
@@ -62,22 +62,6 @@ static void foreach_nodeclass(Scene * /*scene*/, void *calldata, bNodeClassCallb
func(calldata, NODE_CLASS_LAYOUT, N_("Layout"));
}
-static void free_node_cache(bNodeTree * /*ntree*/, bNode *node)
-{
- LISTBASE_FOREACH (bNodeSocket *, sock, &node->outputs) {
- if (sock->runtime->cache) {
- sock->runtime->cache = nullptr;
- }
- }
-}
-
-static void free_cache(bNodeTree *ntree)
-{
- LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
- free_node_cache(ntree, node);
- }
-}
-
/* local tree then owns all compbufs */
static void localize(bNodeTree *localtree, bNodeTree *ntree)
{
@@ -137,14 +121,6 @@ static void local_merge(Main *bmain, bNodeTree *localtree, bNodeTree *ntree)
orig_node->storage = BKE_tracking_distortion_copy((MovieDistortion *)lnode->storage);
}
}
-
- for (lsock = (bNodeSocket *)lnode->outputs.first; lsock; lsock = lsock->next) {
- if (bNodeSocket *orig_socket = nodeFindSocket(orig_node, SOCK_OUT, lsock->identifier)) {
- orig_socket->runtime->cache = lsock->runtime->cache;
- lsock->runtime->cache = nullptr;
- orig_socket = nullptr;
- }
- }
}
}
}
@@ -186,8 +162,6 @@ void register_node_tree_type_cmp()
tt->ui_icon = ICON_NODE_COMPOSITING;
strcpy(tt->ui_description, N_("Compositing nodes"));
- tt->free_cache = free_cache;
- tt->free_node_cache = free_node_cache;
tt->foreach_nodeclass = foreach_nodeclass;
tt->localize = localize;
tt->local_merge = local_merge;
diff --git a/source/blender/nodes/composite/node_composite_util.cc b/source/blender/nodes/composite/node_composite_util.cc
index 9176e0f5284..afe11de059d 100644
--- a/source/blender/nodes/composite/node_composite_util.cc
+++ b/source/blender/nodes/composite/node_composite_util.cc
@@ -22,12 +22,6 @@ bool cmp_node_poll_default(bNodeType * /*ntype*/, bNodeTree *ntree, const char *
void cmp_node_update_default(bNodeTree * /*ntree*/, bNode *node)
{
- LISTBASE_FOREACH (bNodeSocket *, sock, &node->outputs) {
- if (sock->runtime->cache) {
- // free_compbuf(sock->cache);
- // sock->cache = nullptr;
- }
- }
node->runtime->need_exec = 1;
}
diff --git a/source/blender/render/intern/pipeline.cc b/source/blender/render/intern/pipeline.cc
index f59c4761646..3b8a2a1df33 100644
--- a/source/blender/render/intern/pipeline.cc
+++ b/source/blender/render/intern/pipeline.cc
@@ -1115,9 +1115,6 @@ static void do_render_compositor(Render *re)
int update_newframe = 0;
if (compositor_needs_render(re->pipeline_scene_eval, 1)) {
- /* save memory... free all cached images */
- ntreeFreeCache(ntree);
-
/* render the frames
* it could be optimized to render only the needed view
* but what if a scene has a different number of views
More information about the Bf-blender-cvs
mailing list