Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-10-21 16:49:29 +0300
committerJacques Lucke <jacques@blender.org>2021-10-21 16:50:04 +0300
commit090be2775e3d7c0dc3f7956b05c7fb9a72c4bdfc (patch)
treec5783ec4b2ee736e810c0b82339fe9dced785255 /source/blender/nodes/NOD_geometry_nodes_eval_log.hh
parent6600ae3aa707d7e1c2728b9af50dc15e81fd7f2b (diff)
Geometry Nodes: fix force-computing multiple non-output sockets
There were some issues when multiple inputs of the same node were forced to be computed (e.g. for the spreadsheet), but none of the node outputs (if existant) were used. Essentially the node was marked as "finished" too early in this case. This fix is necessary for the improved viewer node (T92167).
Diffstat (limited to 'source/blender/nodes/NOD_geometry_nodes_eval_log.hh')
-rw-r--r--source/blender/nodes/NOD_geometry_nodes_eval_log.hh14
1 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/nodes/NOD_geometry_nodes_eval_log.hh b/source/blender/nodes/NOD_geometry_nodes_eval_log.hh
index ff8e137e341..ffe2a0d63c3 100644
--- a/source/blender/nodes/NOD_geometry_nodes_eval_log.hh
+++ b/source/blender/nodes/NOD_geometry_nodes_eval_log.hh
@@ -181,17 +181,19 @@ class LocalGeoLogger {
/** The root logger class. */
class GeoLogger {
private:
- /** The entire geometry of sockets in this set should be cached, because e.g. the spreadsheet
- * displays the data. We don't log the entire geometry at all places, because that would require
- * way too much memory. */
- Set<DSocket> log_full_geometry_sockets_;
+ /**
+ * Log the entire value for these sockets, because they may be inspected afterwards.
+ * We don't log everything, because that would take up too much memory and cause significant
+ * slowdowns.
+ */
+ Set<DSocket> log_full_sockets_;
threading::EnumerableThreadSpecific<LocalGeoLogger> threadlocals_;
friend LocalGeoLogger;
public:
- GeoLogger(Set<DSocket> log_full_geometry_sockets)
- : log_full_geometry_sockets_(std::move(log_full_geometry_sockets)),
+ GeoLogger(Set<DSocket> log_full_sockets)
+ : log_full_sockets_(std::move(log_full_sockets)),
threadlocals_([this]() { return LocalGeoLogger(*this); })
{
}