[Bf-blender-cvs] [295b3aefb0b] master: Functions: make constant folding work on unfinished networks
Jacques Lucke
noreply at git.blender.org
Fri Jul 10 14:23:50 CEST 2020
Commit: 295b3aefb0bd884ebec7f838b9dffcbcce3b4eea
Author: Jacques Lucke
Date: Fri Jul 10 14:19:45 2020 +0200
Branches: master
https://developer.blender.org/rB295b3aefb0bd884ebec7f838b9dffcbcce3b4eea
Functions: make constant folding work on unfinished networks
===================================================================
M source/blender/functions/intern/multi_function_network_optimization.cc
===================================================================
diff --git a/source/blender/functions/intern/multi_function_network_optimization.cc b/source/blender/functions/intern/multi_function_network_optimization.cc
index 55c6b2ec7c3..4fe0b506df8 100644
--- a/source/blender/functions/intern/multi_function_network_optimization.cc
+++ b/source/blender/functions/intern/multi_function_network_optimization.cc
@@ -142,6 +142,19 @@ void dead_node_removal(MFNetwork &network)
*
* \{ */
+static Vector<MFNode *> find_non_constant_nodes(MFNetwork &network)
+{
+ Vector<MFNode *> non_constant_nodes;
+ non_constant_nodes.extend(network.dummy_nodes());
+
+ for (MFFunctionNode *node : network.function_nodes()) {
+ if (!node->all_inputs_have_origin()) {
+ non_constant_nodes.append(node);
+ }
+ }
+ return non_constant_nodes;
+}
+
static bool output_has_non_constant_target_node(MFOutputSocket *output_socket,
Span<bool> is_not_constant_mask)
{
@@ -168,7 +181,7 @@ static MFInputSocket *try_find_dummy_target_socket(MFOutputSocket *output_socket
static Vector<MFInputSocket *> find_constant_inputs_to_fold(
MFNetwork &network, Vector<MFDummyNode *> &r_temporary_nodes)
{
- Span<MFNode *> non_constant_nodes = network.dummy_nodes();
+ Vector<MFNode *> non_constant_nodes = find_non_constant_nodes(network);
Array<bool> is_not_constant_mask = mask_nodes_to_the_right(network, non_constant_nodes);
Vector<MFNode *> constant_nodes = find_nodes_based_on_mask(network, is_not_constant_mask, false);
More information about the Bf-blender-cvs
mailing list