[Bf-blender-cvs] [46f0b0798a0] temp-geometry-nodes-evaluator-refactor: make logging optional
Jacques Lucke
noreply at git.blender.org
Sun Sep 4 12:53:41 CEST 2022
Commit: 46f0b0798a0ff9763ae2eff158d3b7b71df5800e
Author: Jacques Lucke
Date: Sun Sep 4 12:49:07 2022 +0200
Branches: temp-geometry-nodes-evaluator-refactor
https://developer.blender.org/rB46f0b0798a0ff9763ae2eff158d3b7b71df5800e
make logging optional
===================================================================
M source/blender/modifiers/intern/MOD_nodes.cc
M source/blender/nodes/NOD_geometry_exec.hh
M source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc
M source/blender/nodes/intern/node_geometry_exec.cc
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index 2193973bc4d..1345fe723b1 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -1113,7 +1113,6 @@ static GeometrySet compute_geometry(const bNodeTree &btree,
NodesModifierData *nmd,
const ModifierEvalContext *ctx)
{
- UNUSED_VARS(logging_enabled);
const blender::nodes::GeometryNodesLazyFunctionGraphInfo &lf_graph_info =
blender::nodes::ensure_geometry_nodes_lazy_function_graph(btree);
@@ -1145,9 +1144,10 @@ static GeometrySet compute_geometry(const bNodeTree &btree,
blender::nodes::GeoNodesModifierData geo_nodes_modifier_data;
geo_nodes_modifier_data.depsgraph = ctx->depsgraph;
geo_nodes_modifier_data.self_object = ctx->object;
- /* TODO: Only use logging when enabled. */
auto eval_log = std::make_unique<GeoModifierLog>();
- geo_nodes_modifier_data.eval_log = eval_log.get();
+ if (logging_enabled(ctx)) {
+ geo_nodes_modifier_data.eval_log = eval_log.get();
+ }
blender::nodes::GeoNodesLFUserData user_data;
user_data.modifier_data = &geo_nodes_modifier_data;
blender::nodes::ModifierContextStack modifier_context_stack{nullptr, nmd->modifier.name};
diff --git a/source/blender/nodes/NOD_geometry_exec.hh b/source/blender/nodes/NOD_geometry_exec.hh
index 8983f75a225..9c53d4414a5 100644
--- a/source/blender/nodes/NOD_geometry_exec.hh
+++ b/source/blender/nodes/NOD_geometry_exec.hh
@@ -145,13 +145,16 @@ class GeoNodeExecParams {
}
}
- geo_eval_log::GeoTreeLogger &get_local_tree_logger() const
+ geo_eval_log::GeoTreeLogger *get_local_tree_logger() const
{
GeoNodesLFUserData *user_data = this->user_data();
BLI_assert(user_data != nullptr);
const ContextStack *context_stack = user_data->context_stack;
BLI_assert(context_stack != nullptr);
- return user_data->modifier_data->eval_log->get_local_tree_logger(*context_stack);
+ if (user_data->modifier_data->eval_log == nullptr) {
+ return nullptr;
+ }
+ return &user_data->modifier_data->eval_log->get_local_tree_logger(*context_stack);
}
/**
diff --git a/source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc b/source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc
index 3e9cc255e4e..58bd0775558 100644
--- a/source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc
+++ b/source/blender/nodes/intern/geometry_nodes_to_lazy_function_graph.cc
@@ -118,10 +118,10 @@ class LazyFunctionForGeometryNode : public LazyFunction {
node_.typeinfo->geometry_node_execute(geo_params);
geo_eval_log::TimePoint end_time = geo_eval_log::Clock::now();
- geo_eval_log::GeoTreeLogger *tree_logger =
- &user_data->modifier_data->eval_log->get_local_tree_logger(*user_data->context_stack);
- if (tree_logger != nullptr) {
- tree_logger->node_execution_times.append_as(node_.name, start_time, end_time);
+ if (geo_eval_log::GeoModifierLog *modifier_log = user_data->modifier_data->eval_log) {
+ geo_eval_log::GeoTreeLogger &tree_logger = modifier_log->get_local_tree_logger(
+ *user_data->context_stack);
+ tree_logger.node_execution_times.append_as(node_.name, start_time, end_time);
}
}
};
@@ -1083,6 +1083,9 @@ void GeometryNodesLazyFunctionLogger::log_socket_value(const fn::lazy_function::
GeoNodesLFUserData *user_data = dynamic_cast<GeoNodesLFUserData *>(context.user_data);
BLI_assert(user_data != nullptr);
+ if (user_data->modifier_data->eval_log == nullptr) {
+ return;
+ }
geo_eval_log::GeoTreeLogger &tree_logger =
user_data->modifier_data->eval_log->get_local_tree_logger(*user_data->context_stack);
for (const bNodeSocket *bsocket : bsockets) {
diff --git a/source/blender/nodes/intern/node_geometry_exec.cc b/source/blender/nodes/intern/node_geometry_exec.cc
index 6bc84ee8cb7..9199dfc3cbb 100644
--- a/source/blender/nodes/intern/node_geometry_exec.cc
+++ b/source/blender/nodes/intern/node_geometry_exec.cc
@@ -15,8 +15,9 @@ namespace blender::nodes {
void GeoNodeExecParams::error_message_add(const NodeWarningType type, std::string message) const
{
- geo_eval_log::GeoTreeLogger &tree_logger = this->get_local_tree_logger();
- tree_logger.node_warnings.append({node_.name, {type, std::move(message)}});
+ if (geo_eval_log::GeoTreeLogger *tree_logger = this->get_local_tree_logger()) {
+ tree_logger->node_warnings.append({node_.name, {type, std::move(message)}});
+ }
}
void GeoNodeExecParams::used_named_attribute(std::string attribute_name,
More information about the Bf-blender-cvs
mailing list