[Bf-blender-cvs] [543a63cfc65] temp-geometry-nodes-timings: Remove decimal places and show "<1". Remove logging from MF node.

Erik noreply at git.blender.org
Thu Nov 11 00:06:50 CET 2021


Commit: 543a63cfc653f5831fdad0549971f5badb76222f
Author: Erik
Date:   Thu Nov 11 00:05:41 2021 +0100
Branches: temp-geometry-nodes-timings
https://developer.blender.org/rB543a63cfc653f5831fdad0549971f5badb76222f

Remove decimal places and show "<1".
Remove logging from MF node.

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

M	release/datafiles/locale
M	release/scripts/addons
M	source/blender/editors/space_node/node_draw.cc
M	source/blender/modifiers/intern/MOD_nodes_evaluator.cc
M	source/tools

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

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 8ee2942570f..9d270fd007f 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 8ee2942570f08d10484bb2328d0d1b0aaaa0367c
+Subproject commit 9d270fd007f628b23ccbcbd87caa2dc35286b26a
diff --git a/release/scripts/addons b/release/scripts/addons
index f2a08d80ccd..b3c179b2869 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit f2a08d80ccd3c13af304525778df3905f95bd44d
+Subproject commit b3c179b2869d86c44a4b29e2c638ce2a596a820d
diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc
index 3a13e23824c..db4f7ab9694 100644
--- a/source/blender/editors/space_node/node_draw.cc
+++ b/source/blender/editors/space_node/node_draw.cc
@@ -1582,66 +1582,58 @@ static void node_add_error_message_button(
 static void node_add_execution_time_label(const bContext *C, bNode &node, const rctf &rect)
 {
   SpaceNode *snode = CTX_wm_space_node(C);
-  uint64_t exec_time = 0;
+  uint64_t exec_time_us = 0;
 
   if (node.type == NODE_GROUP_OUTPUT) {
-    const geo_log::TreeLog *tree_log = geo_log::ModifierLog::find_tree_by_node_editor_context(
-        *snode);
-    if (tree_log) {
-      tree_log->foreach_node_log(
-          [&](const geo_log::NodeLog &node_log) { exec_time += node_log.execution_time(); });
+    auto *tree_log = geo_log::ModifierLog::find_tree_by_node_editor_context(*snode);
+
+    if (tree_log == nullptr) {
+      return;
     }
+    tree_log->foreach_node_log(
+        [&](const geo_log::NodeLog &node_log) { exec_time_us += node_log.execution_time(); });
   }
   else if (node.type == NODE_GROUP) {
-    const geo_log::TreeLog *tree_log = geo_log::ModifierLog::find_tree_by_node_editor_context(
-        *snode);
-    if (tree_log) {
-      const geo_log::TreeLog *child_tree_log = tree_log->lookup_child_log(node.name);
-      if (child_tree_log) {
-        child_tree_log->foreach_node_log(
-            [&](const geo_log::NodeLog &node_log) { exec_time += node_log.execution_time(); });
-      }
+    auto *root_tree_log = geo_log::ModifierLog::find_tree_by_node_editor_context(*snode);
+    if (root_tree_log == nullptr) {
+      return;
+    }
+    auto *tree_log = root_tree_log->lookup_child_log(node.name);
+    if (tree_log == nullptr) {
+      return;
     }
+    tree_log->foreach_node_log(
+        [&](const geo_log::NodeLog &node_log) { exec_time_us += node_log.execution_time(); });
   }
   else {
-    const geo_log::NodeLog *node_log = geo_log::ModifierLog::find_node_by_node_editor_context(
-        *snode, node);
-    exec_time = node_log ? node_log->execution_time() : 0;
-  }
-  /* Don't show if time is below 100 microseconds */
-  if (exec_time >= 100) {
-    std::string timing_str;
-    short precision = 0;
-
-    /* Show decimals if value is below 10s */
-    if (exec_time < 10000) {
-      precision = 1;
-    }
-    if (exec_time < 1000) {
-      precision = 2;
-    }
-
-    std::stringstream stream;
-    stream << std::fixed << std::setprecision(precision) << (exec_time / 1000.0f);
-    timing_str = stream.str() + " ms";
-
-    uiBut *but_timing = uiDefBut(node.block,
-                                 UI_BTYPE_LABEL,
-                                 0,
-                                 timing_str.c_str(),
-                                 (int)(rect.xmin + NODE_MARGIN_X + 0.4f),
-                                 (int)(rect.ymax - NODE_DY + (22.0f * U.dpi_fac)),
-                                 (short)(rect.xmax - rect.xmin),
-                                 (short)NODE_DY,
-                                 nullptr,
-                                 0,
-                                 0,
-                                 0,
-                                 0,
-                                 "");
-    if (node.flag & NODE_MUTED) {
-      UI_but_flag_enable(but_timing, UI_BUT_INACTIVE);
-    }
+    auto *node_log = geo_log::ModifierLog::find_node_by_node_editor_context(*snode, node);
+    exec_time_us = node_log ? node_log->execution_time() : 0;
+  }
+
+  /* Don't show the label if execution time is 0 microseconds. */
+  if (exec_time_us == 0) {
+    return;
+  }
+
+  int exec_time_ms = static_cast<int>((exec_time_us / 1000.0f) + 0.5f);
+  std::string timing_str = (exec_time_us < 1000 ? "<1" : std::to_string(exec_time_ms)) + " ms";
+
+  uiBut *but_timing = uiDefBut(node.block,
+                               UI_BTYPE_LABEL,
+                               0,
+                               timing_str.c_str(),
+                               (int)(rect.xmin + NODE_MARGIN_X + 0.4f),
+                               (int)(rect.ymax - NODE_DY + (20.0f * U.dpi_fac)),
+                               (short)(rect.xmax - rect.xmin),
+                               (short)NODE_DY,
+                               nullptr,
+                               0,
+                               0,
+                               0,
+                               0,
+                               "");
+  if (node.flag & NODE_MUTED) {
+    UI_but_flag_enable(but_timing, UI_BUT_INACTIVE);
   }
 }
 
diff --git a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
index 6cb345705cc..fa75a2fe727 100644
--- a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
+++ b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
@@ -939,12 +939,10 @@ class GeometryNodesEvaluator {
                                    const nodes::NodeMultiFunctions::Item &fn_item,
                                    NodeState &node_state)
   {
-    NodeParamsProvider params_provider{*this, node, node_state};
-    GeoNodeExecParams params{params_provider};
-    auto begin = std::chrono::high_resolution_clock::now();
-
     if (node->idname().find("Legacy") != StringRef::not_found) {
       /* Create geometry nodes params just for creating an error message. */
+      NodeParamsProvider params_provider{*this, node, node_state};
+      GeoNodeExecParams params{params_provider};
       params.error_message_add(geo_log::NodeWarningType::Legacy,
                                TIP_("Legacy node will be removed before Blender 4.0"));
     }
@@ -991,10 +989,6 @@ class GeometryNodesEvaluator {
       output_state.has_been_computed = true;
       output_index++;
     }
-
-    auto end = std::chrono::high_resolution_clock::now();
-    int duration = std::chrono::duration_cast<std::chrono::microseconds>(end - begin).count();
-    params.execution_time(duration);
   }
 
   void execute_unknown_node(const DNode node, NodeState &node_state)
diff --git a/source/tools b/source/tools
index 2e8c8792488..b22d19e47f4 160000
--- a/source/tools
+++ b/source/tools
@@ -1 +1 @@
-Subproject commit 2e8c879248822c8e500ed49d79acc605e5aa75b9
+Subproject commit b22d19e47f4d0353082f3d9f30ee8d244c5266d5



More information about the Bf-blender-cvs mailing list