Cycles: Add some statistics logging

Covers number of entities in the scene (objects, meshes etc), also reports
sizes of textures being allocated.
This commit is contained in:
Sergey Sharybin 2015-04-10 15:36:56 +05:00
parent 1e71270f77
commit 2f5dd83759
12 changed files with 29 additions and 0 deletions

@ -38,6 +38,7 @@
#include "util_debug.h" #include "util_debug.h"
#include "util_foreach.h" #include "util_foreach.h"
#include "util_function.h" #include "util_function.h"
#include "util_logging.h"
#include "util_opengl.h" #include "util_opengl.h"
#include "util_progress.h" #include "util_progress.h"
#include "util_system.h" #include "util_system.h"
@ -115,6 +116,7 @@ public:
void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool /*periodic*/) void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool /*periodic*/)
{ {
VLOG(1) << "Texture allocate: " << name << ", " << mem.memory_size() << " bytes.";
kernel_tex_copy(&kernel_globals, name, mem.data_pointer, mem.data_width, mem.data_height, mem.data_depth, interpolation); kernel_tex_copy(&kernel_globals, name, mem.data_pointer, mem.data_width, mem.data_height, mem.data_depth, interpolation);
mem.device_pointer = mem.data_pointer; mem.device_pointer = mem.data_pointer;
mem.device_size = mem.memory_size(); mem.device_size = mem.memory_size();

@ -419,6 +419,7 @@ public:
void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool periodic) void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool periodic)
{ {
/* todo: support 3D textures, only CPU for now */ /* todo: support 3D textures, only CPU for now */
VLOG(1) << "Texture allocate: " << name << ", " << mem.memory_size() << " bytes.";
/* determine format */ /* determine format */
CUarray_format_enum format; CUarray_format_enum format;

@ -25,6 +25,7 @@
#include "util_foreach.h" #include "util_foreach.h"
#include "util_list.h" #include "util_list.h"
#include "util_logging.h"
#include "util_map.h" #include "util_map.h"
#include "util_time.h" #include "util_time.h"
@ -170,6 +171,8 @@ public:
void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool periodic) void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool periodic)
{ {
VLOG(1) << "Texture allocate: " << name << ", " << mem.memory_size() << " bytes.";
foreach(SubDevice& sub, devices) { foreach(SubDevice& sub, devices) {
mem.device_pointer = 0; mem.device_pointer = 0;
sub.device->tex_alloc(name, mem, interpolation, periodic); sub.device->tex_alloc(name, mem, interpolation, periodic);

@ -164,6 +164,8 @@ public:
void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool periodic) void tex_alloc(const char *name, device_memory& mem, InterpolationType interpolation, bool periodic)
{ {
VLOG(1) << "Texture allocate: " << name << ", " << mem.memory_size() << " bytes.";
thread_scoped_lock lock(rpc_lock); thread_scoped_lock lock(rpc_lock);
mem.device_pointer = ++mem_counter; mem.device_pointer = ++mem_counter;

@ -28,6 +28,7 @@
#include "buffers.h" #include "buffers.h"
#include "util_foreach.h" #include "util_foreach.h"
#include "util_logging.h"
#include "util_map.h" #include "util_map.h"
#include "util_math.h" #include "util_math.h"
#include "util_md5.h" #include "util_md5.h"
@ -859,6 +860,7 @@ public:
InterpolationType /*interpolation*/, InterpolationType /*interpolation*/,
bool /*periodic*/) bool /*periodic*/)
{ {
VLOG(1) << "Texture allocate: " << name << ", " << mem.memory_size() << " bytes.";
mem_alloc(mem, MEM_READ_ONLY); mem_alloc(mem, MEM_READ_ONLY);
mem_copy_to(mem); mem_copy_to(mem);
assert(mem_map.find(name) == mem_map.end()); assert(mem_map.find(name) == mem_map.end());

@ -662,6 +662,8 @@ void LightManager::device_update_points(Device *device, DeviceScene *dscene, Sce
void LightManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) void LightManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
{ {
VLOG(1) << "Total " << scene->lights.size() << " lights.";
if(!need_update) if(!need_update)
return; return;

@ -1150,6 +1150,8 @@ void MeshManager::device_update_flags(Device * /*device*/,
void MeshManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) void MeshManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
{ {
VLOG(1) << "Total " << scene->meshes.size() << " meshes.";
if(!need_update) if(!need_update)
return; return;

@ -23,6 +23,7 @@
#include "scene.h" #include "scene.h"
#include "util_foreach.h" #include "util_foreach.h"
#include "util_logging.h"
#include "util_map.h" #include "util_map.h"
#include "util_progress.h" #include "util_progress.h"
#include "util_vector.h" #include "util_vector.h"
@ -377,6 +378,8 @@ void ObjectManager::device_update_transforms(Device *device, DeviceScene *dscene
void ObjectManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) void ObjectManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
{ {
VLOG(1) << "Total " << scene->objects.size() << " objects.";
if(!need_update) if(!need_update)
return; return;

@ -75,6 +75,8 @@ void OSLShaderManager::reset(Scene * /*scene*/)
void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) void OSLShaderManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
{ {
VLOG(1) << "Total " << scene->shaders.size() << " shaders.";
if(!need_update) if(!need_update)
return; return;

@ -19,6 +19,7 @@
#include "scene.h" #include "scene.h"
#include "util_foreach.h" #include "util_foreach.h"
#include "util_logging.h"
#include "util_map.h" #include "util_map.h"
#include "util_progress.h" #include "util_progress.h"
#include "util_vector.h" #include "util_vector.h"
@ -92,6 +93,9 @@ void ParticleSystemManager::device_update_particles(Device *device, DeviceScene
void ParticleSystemManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) void ParticleSystemManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
{ {
VLOG(1) << "Total " << scene->particle_systems.size()
<< " particle systems.";
if(!need_update) if(!need_update)
return; return;

@ -24,6 +24,7 @@
#include "svm.h" #include "svm.h"
#include "util_debug.h" #include "util_debug.h"
#include "util_logging.h"
#include "util_foreach.h" #include "util_foreach.h"
#include "util_progress.h" #include "util_progress.h"
@ -45,6 +46,8 @@ void SVMShaderManager::reset(Scene * /*scene*/)
void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress)
{ {
VLOG(1) << "Total " << scene->shaders.size() << " shaders.";
if(!need_update) if(!need_update)
return; return;

@ -19,6 +19,7 @@
#include "tables.h" #include "tables.h"
#include "util_debug.h" #include "util_debug.h"
#include "util_logging.h"
CCL_NAMESPACE_BEGIN CCL_NAMESPACE_BEGIN
@ -36,6 +37,8 @@ LookupTables::~LookupTables()
void LookupTables::device_update(Device *device, DeviceScene *dscene) void LookupTables::device_update(Device *device, DeviceScene *dscene)
{ {
VLOG(1) << "Total " << lookup_tables.size() << " lookup tables.";
if(!need_update) if(!need_update)
return; return;