From e2a9e7e80395c7706e20d4574851d698d7d01bac Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Wed, 22 Dec 2021 11:25:55 -0600 Subject: Nodes: Remove unnecessary node tree socket tagging `SOCK_IN_USE` is now set in `update_socket_used_tags` in `node_tree_update.cc` when a node tree is changed. It doesn't need to run every single redraw. Removing this results in a small speedup of 0.4 ms when drawing a tree with about 4000 nodes (from about 70 ms total). Differential Revision: https://developer.blender.org/D13645 --- source/blender/blenkernel/BKE_node.h | 1 - source/blender/blenkernel/intern/node.cc | 20 -------------------- source/blender/editors/space_node/node_draw.cc | 1 - 3 files changed, 22 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 7fbf9de53ce..5c35ff69233 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -827,7 +827,6 @@ void nodeClearActiveID(struct bNodeTree *ntree, short idtype); struct bNode *nodeGetActiveTexture(struct bNodeTree *ntree); int nodeSocketIsHidden(const struct bNodeSocket *sock); -void ntreeTagUsedSockets(struct bNodeTree *ntree); void nodeSetSocketAvailability(struct bNodeTree *ntree, struct bNodeSocket *sock, bool is_available); diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc index e5aa28f8e0a..e05d452ca50 100644 --- a/source/blender/blenkernel/intern/node.cc +++ b/source/blender/blenkernel/intern/node.cc @@ -4304,26 +4304,6 @@ void ntreeUpdateNodeLevels(bNodeTree *ntree) } } -void ntreeTagUsedSockets(bNodeTree *ntree) -{ - /* first clear data */ - LISTBASE_FOREACH (bNode *, node, &ntree->nodes) { - LISTBASE_FOREACH (bNodeSocket *, sock, &node->inputs) { - sock->flag &= ~SOCK_IN_USE; - } - LISTBASE_FOREACH (bNodeSocket *, sock, &node->outputs) { - sock->flag &= ~SOCK_IN_USE; - } - } - - LISTBASE_FOREACH (bNodeLink *, link, &ntree->links) { - link->fromsock->flag |= SOCK_IN_USE; - if (!(link->flag & NODE_LINK_MUTED)) { - link->tosock->flag |= SOCK_IN_USE; - } - } -} - void ntreeUpdateAllNew(Main *main) { Vector new_ntrees; diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc index 635ef41d859..2d3c42b16d1 100644 --- a/source/blender/editors/space_node/node_draw.cc +++ b/source/blender/editors/space_node/node_draw.cc @@ -2380,7 +2380,6 @@ static void node_update_nodetree(const bContext &C, { /* Make sure socket "used" tags are correct, for displaying value buttons. */ SpaceNode *snode = CTX_wm_space_node(&C); - ntreeTagUsedSockets(&ntree); count_multi_input_socket_links(ntree, *snode); -- cgit v1.2.3