[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