From edd1164575feefda103c73119a98cbd994e53141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dietrich?= Date: Thu, 1 Oct 2020 23:16:01 +0200 Subject: Cycles: add time statistics to scene update Gathers information for time spent in the various managers or object (Film, Camera, etc.) being updated in Scene::device_update. The stats include the total time spent in the device_update methods as well as time spent in subroutines (e.g. bvh build, displacement, etc.). This does not qualify as a full blown profiler, but is useful to identify potential bottleneck areas. The stats can be enabled and printed by passing `--cycles-print-stats` on the command line to Cycles, or `-- --cycles-print-stats` to Blender. Reviewed By: brecht Maniphest Tasks: T79174 Differential Revision: https://developer.blender.org/D8596 --- intern/cycles/render/scene.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'intern/cycles/render/scene.h') diff --git a/intern/cycles/render/scene.h b/intern/cycles/render/scene.h index 0e32a70952b..cc2ef8da589 100644 --- a/intern/cycles/render/scene.h +++ b/intern/cycles/render/scene.h @@ -59,6 +59,7 @@ class Progress; class BakeManager; class BakeData; class RenderStats; +class SceneUpdateStats; class Volume; /* Scene Device Data */ @@ -260,6 +261,9 @@ class Scene : public NodeOwner { /* mutex must be locked manually by callers */ thread_mutex mutex; + /* scene update statistics */ + SceneUpdateStats *update_stats; + Scene(const SceneParams ¶ms, Device *device); ~Scene(); @@ -280,6 +284,8 @@ class Scene : public NodeOwner { void collect_statistics(RenderStats *stats); + void enable_update_stats(); + bool update(Progress &progress, bool &kernel_switch_needed); /* This function is used to create a node of a specified type instead of -- cgit v1.2.3