[Bf-blender-cvs] [b526a38ba23] master: Cycles: Store various render stages timings
Sergey Sharybin
noreply at git.blender.org
Mon Mar 4 11:53:10 CET 2019
Commit: b526a38ba23554c3815a82559fd1f046edb44e56
Author: Sergey Sharybin
Date: Mon Mar 4 11:31:20 2019 +0100
Branches: master
https://developer.blender.org/rBb526a38ba23554c3815a82559fd1f046edb44e56
Cycles: Store various render stages timings
Includes time spent on synchronization and time spent on just
path tracing/denoising.
===================================================================
M intern/cycles/blender/blender_session.cpp
===================================================================
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index da2de6692a8..501e4fec13f 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -393,6 +393,15 @@ static void add_cryptomatte_layer(BL::RenderResult& b_rr, string name, string ma
render_add_metadata(b_rr, prefix+"manifest", manifest);
}
+/* TODO(sergey): Ideally this will be an utility function in util string.h, but
+ * currently is relying on Blender side function, so can not do that. */
+static string make_human_readable_time(double time)
+{
+ char time_str[128];
+ BLI_timecode_string_from_time_simple(time_str, sizeof(time_str), time);
+ return time_str;
+}
+
void BlenderSession::stamp_view_layer_metadata(Scene *scene, const string& view_layer_name)
{
BL::RenderResult b_rr = b_engine.get_result();
@@ -426,6 +435,16 @@ void BlenderSession::stamp_view_layer_metadata(Scene *scene, const string& view_
add_cryptomatte_layer(b_rr, view_layer_name + ".CryptoAsset",
scene->object_manager->get_cryptomatte_assets(scene));
}
+
+ /* Store synchronization and bare-render times. */
+ double total_time, render_time;
+ session->progress.get_time(total_time, render_time);
+ b_rr.stamp_data_add_field((prefix + "total_time").c_str(),
+ make_human_readable_time(total_time).c_str());
+ b_rr.stamp_data_add_field((prefix + "render_time").c_str(),
+ make_human_readable_time(render_time).c_str());
+ b_rr.stamp_data_add_field((prefix + "synchronization_time").c_str(),
+ make_human_readable_time(total_time - render_time).c_str());
}
void BlenderSession::render(BL::Depsgraph& b_depsgraph_)
More information about the Bf-blender-cvs
mailing list