[Bf-blender-cvs] [66fdcd5f333] functions: minor fixes

Jacques Lucke noreply at git.blender.org
Sat Jan 4 16:39:19 CET 2020


Commit: 66fdcd5f333b5e99f7eda35493373e827ecd3deb
Author: Jacques Lucke
Date:   Sat Jan 4 16:38:09 2020 +0100
Branches: functions
https://developer.blender.org/rB66fdcd5f333b5e99f7eda35493373e827ecd3deb

minor fixes

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

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 13f3ed0100e..27a35e0e957 100644
--- a/source/blender/functions/intern/multi_function_network_optimization.cc
+++ b/source/blender/functions/intern/multi_function_network_optimization.cc
@@ -12,7 +12,22 @@ static bool node_can_be_constant(MFBuilderNode &node)
 {
   if (node.is_function()) {
     const MultiFunction &fn = node.as_function().function();
-    return !fn.depends_on_context();
+    if (fn.depends_on_context()) {
+      return false;
+    }
+
+    /* TODO: Support vectors. */
+    for (auto *socket : node.inputs()) {
+      if (socket->data_type().is_vector()) {
+        return false;
+      }
+    }
+    for (auto *socket : node.outputs()) {
+      if (socket->data_type().is_vector()) {
+        return false;
+      }
+    }
+    return true;
   }
   else {
     return false;
@@ -65,10 +80,6 @@ void optimize_network__constant_folding(MFNetworkBuilder &network_builder,
 
     for (MFBuilderOutputSocket *output_socket : node->outputs()) {
       MFDataType data_type = output_socket->data_type();
-      if (data_type.is_vector()) {
-        /* TODO: support vector */
-        continue;
-      }
 
       for (MFBuilderInputSocket *target_socket : output_socket->targets()) {
         if (!is_constant[target_socket->node().id()]) {
@@ -84,6 +95,10 @@ void optimize_network__constant_folding(MFNetworkBuilder &network_builder,
     }
   }
 
+  if (ids_to_compute.size() == 0) {
+    return;
+  }
+
   MFNetwork network{network_builder};
 
   Vector<const MFInputSocket *> sockets_to_compute;
@@ -140,7 +155,7 @@ void optimize_network__constant_folding(MFNetworkBuilder &network_builder,
     }
   }
 
-  network_builder.to_dot__clipboard();
+  // network_builder.to_dot__clipboard();
 }
 
 }  // namespace FN



More information about the Bf-blender-cvs mailing list