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:
Diffstat (limited to 'intern/cycles/render/stats.cpp')
-rw-r--r--intern/cycles/render/stats.cpp79
1 files changed, 79 insertions, 0 deletions
diff --git a/intern/cycles/render/stats.cpp b/intern/cycles/render/stats.cpp
index 0937b95a891..1a840a906a5 100644
--- a/intern/cycles/render/stats.cpp
+++ b/intern/cycles/render/stats.cpp
@@ -34,6 +34,12 @@ bool namedSizeEntryComparator(const NamedSizeEntry &a, const NamedSizeEntry &b)
return a.size > b.size;
}
+bool namedTimeEntryComparator(const NamedTimeEntry &a, const NamedTimeEntry &b)
+{
+ /* We sort in descending order. */
+ return a.time > b.time;
+}
+
bool namedTimeSampleEntryComparator(const NamedNestedSampleStats &a,
const NamedNestedSampleStats &b)
{
@@ -55,6 +61,14 @@ NamedSizeEntry::NamedSizeEntry(const string &name, size_t size) : name(name), si
{
}
+NamedTimeEntry::NamedTimeEntry() : name(""), time(0)
+{
+}
+
+NamedTimeEntry::NamedTimeEntry(const string &name, double time) : name(name), time(time)
+{
+}
+
/* Named size statistics. */
NamedSizeStats::NamedSizeStats() : total_size(0)
@@ -87,6 +101,20 @@ string NamedSizeStats::full_report(int indent_level)
return result;
}
+string NamedTimeStats::full_report(int indent_level)
+{
+ const string indent(indent_level * kIndentNumSpaces, ' ');
+ const string double_indent = indent + indent;
+ string result = "";
+ result += string_printf("%sTotal time: %fs\n", indent.c_str(), total_time);
+ sort(entries.begin(), entries.end(), namedTimeEntryComparator);
+ foreach (const NamedTimeEntry &entry, entries) {
+ result += string_printf(
+ "%s%-40s %fs\n", double_indent.c_str(), entry.name.c_str(), entry.time);
+ }
+ return result;
+}
+
/* Named time sample statistics. */
NamedNestedSampleStats::NamedNestedSampleStats() : name(""), self_samples(0), sum_samples(0)
@@ -317,4 +345,55 @@ string RenderStats::full_report()
return result;
}
+NamedTimeStats::NamedTimeStats() : total_time(0.0)
+{
+}
+
+string UpdateTimeStats::full_report(int indent_level)
+{
+ return times.full_report(indent_level + 1);
+}
+
+SceneUpdateStats::SceneUpdateStats()
+{
+}
+
+string SceneUpdateStats::full_report()
+{
+ string result = "";
+ result += "Scene:\n" + scene.full_report(1);
+ result += "Geometry:\n" + geometry.full_report(1);
+ result += "Light:\n" + light.full_report(1);
+ result += "Object:\n" + object.full_report(1);
+ result += "Image:\n" + image.full_report(1);
+ result += "Background:\n" + background.full_report(1);
+ result += "Bake:\n" + bake.full_report(1);
+ result += "Camera:\n" + camera.full_report(1);
+ result += "Film:\n" + film.full_report(1);
+ result += "Integrator:\n" + integrator.full_report(1);
+ result += "OSL:\n" + osl.full_report(1);
+ result += "Particles:\n" + particles.full_report(1);
+ result += "SVM:\n" + svm.full_report(1);
+ result += "Tables:\n" + tables.full_report(1);
+ return result;
+}
+
+void SceneUpdateStats::clear()
+{
+ geometry.times.clear();
+ image.times.clear();
+ light.times.clear();
+ object.times.clear();
+ background.times.clear();
+ bake.times.clear();
+ camera.times.clear();
+ film.times.clear();
+ integrator.times.clear();
+ osl.times.clear();
+ particles.times.clear();
+ scene.times.clear();
+ svm.times.clear();
+ tables.times.clear();
+}
+
CCL_NAMESPACE_END