[Bf-blender-cvs] [b02635ae1b5] profiler-editor: fix
Jacques Lucke
noreply at git.blender.org
Thu Apr 29 11:30:49 CEST 2021
Commit: b02635ae1b5c582a213ad2ba6ff772f480dd831b
Author: Jacques Lucke
Date: Tue Apr 27 19:56:12 2021 +0200
Branches: profiler-editor
https://developer.blender.org/rBb02635ae1b5c582a213ad2ba6ff772f480dd831b
fix
===================================================================
M source/blender/blenlib/BLI_profile.h
M source/blender/blenlib/intern/profile.cc
M source/blender/depsgraph/intern/eval/deg_eval.cc
===================================================================
diff --git a/source/blender/blenlib/BLI_profile.h b/source/blender/blenlib/BLI_profile.h
index 595cd7e122b..f1cbac7b3f7 100644
--- a/source/blender/blenlib/BLI_profile.h
+++ b/source/blender/blenlib/BLI_profile.h
@@ -60,7 +60,7 @@ void _bli_profile_task_end(BLI_ProfileTask *task);
((void)0)
#define BLI_profile_task_end(task_ptr) \
- if (bli_profiling_is_enabled && (task_ptr)->id != BLI_PROFILE_DUMMY_ID) { \
+ if ((task_ptr)->id != BLI_PROFILE_DUMMY_ID) { \
_bli_profile_task_end(task_ptr); \
} \
((void)0)
diff --git a/source/blender/blenlib/intern/profile.cc b/source/blender/blenlib/intern/profile.cc
index ac427ac3708..50c5e61306c 100644
--- a/source/blender/blenlib/intern/profile.cc
+++ b/source/blender/blenlib/intern/profile.cc
@@ -60,7 +60,7 @@ struct ThreadLocalProfileData {
RawStack<uint64_t> id_stack;
};
-static ThreadLocalProfileData threadlocal_profile_data;
+static thread_local ThreadLocalProfileData threadlocal_profile_data;
bool bli_profiling_is_enabled = false;
namespace blender::profile {
@@ -140,7 +140,7 @@ void _bli_profile_task_begin_subtask(BLI_ProfileTask *task,
ThreadLocalProfileData &local_data = threadlocal_profile_data;
const uint64_t id = get_unique_session_id();
- const uint64_t parent_id = local_data.id_stack.peek_default(0);
+ const uint64_t parent_id = parent_task->id;
local_data.id_stack.push(id);
task->id = id;
diff --git a/source/blender/depsgraph/intern/eval/deg_eval.cc b/source/blender/depsgraph/intern/eval/deg_eval.cc
index 620e86550cc..2b6727c67c1 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval.cc
@@ -29,6 +29,7 @@
#include "BLI_compiler_attrs.h"
#include "BLI_gsqueue.h"
+#include "BLI_profile.hh"
#include "BLI_task.h"
#include "BLI_utildefines.h"
@@ -95,10 +96,13 @@ struct DepsgraphEvalState {
bool do_stats;
EvaluationStage stage;
bool need_single_thread_pass;
+ BLI_ProfileTask profile_task;
};
void evaluate_node(const DepsgraphEvalState *state, OperationNode *operation_node)
{
+ BLI_PROFILE_SCOPE_SUBTASK(__func__, &state->profile_task);
+
::Depsgraph *depsgraph = reinterpret_cast<::Depsgraph *>(state->graph);
/* Sanity checks. */
@@ -379,6 +383,9 @@ void deg_evaluate_on_refresh(Depsgraph *graph)
state.graph = graph;
state.do_stats = graph->debug.do_time_debug();
state.need_single_thread_pass = false;
+
+ BLI_profile_task_begin(&state.profile_task, __func__);
+
/* Prepare all nodes for evaluation. */
initialize_execution(&state, graph);
@@ -413,6 +420,8 @@ void deg_evaluate_on_refresh(Depsgraph *graph)
graph->is_evaluating = false;
graph->debug.end_graph_evaluation();
+
+ BLI_profile_task_end(&state.profile_task);
}
} // namespace blender::deg
More information about the Bf-blender-cvs
mailing list