[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55217] trunk/blender/source/blender/ compositor/intern: Print compositor execution statistics when in background mode
Sergey Sharybin
sergey.vfx at gmail.com
Tue Mar 12 15:28:52 CET 2013
Revision: 55217
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55217
Author: nazgul
Date: 2013-03-12 14:28:52 +0000 (Tue, 12 Mar 2013)
Log Message:
-----------
Print compositor execution statistics when in background mode
This will print memory usage, mapped memory usage, memory peak,
compositing tree name and number of finished tiles to stdout
when blender is rendering in background mode.
This makes compositor a less blackbox and should help trouble
shooting issues happening during 4K ToS project.
Modified Paths:
--------------
trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.cpp
trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.h
Modified: trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.cpp
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.cpp 2013-03-12 14:06:18 UTC (rev 55216)
+++ trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.cpp 2013-03-12 14:28:52 UTC (rev 55217)
@@ -40,6 +40,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
+#include "BKE_global.h"
#include "PIL_time.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -410,6 +411,29 @@
return result;
}
+void ExecutionGroup::printBackgroundStats(void)
+{
+ uintptr_t mem_in_use, mmap_in_use, peak_memory;
+ float megs_used_memory, mmap_used_memory, megs_peak_memory;
+
+ mem_in_use = MEM_get_memory_in_use();
+ mmap_in_use = MEM_get_mapped_memory_in_use();
+ peak_memory = MEM_get_peak_memory();
+
+ megs_used_memory = (mem_in_use - mmap_in_use) / (1024.0 * 1024.0);
+ mmap_used_memory = (mmap_in_use) / (1024.0 * 1024.0);
+ megs_peak_memory = (peak_memory) / (1024.0 * 1024.0);
+
+ fprintf(stdout, "Mem:%.2fM (%.2fM, Peak %.2fM) ",
+ megs_used_memory, mmap_used_memory, megs_peak_memory);
+
+ printf("| Tree %s, Tile %d-%d ", this->m_bTree->id.name + 2,
+ this->m_chunksFinished, this->m_numberOfChunks);
+
+ fputc('\n', stdout);
+ fflush(stdout);
+}
+
void ExecutionGroup::finalizeChunkExecution(int chunkNumber, MemoryBuffer **memoryBuffers)
{
if (this->m_chunkExecutionStates[chunkNumber] == COM_ES_SCHEDULED)
@@ -433,6 +457,9 @@
float progress = this->m_chunksFinished;
progress /= this->m_numberOfChunks;
this->m_bTree->progress(this->m_bTree->prh, progress);
+
+ if (G.background)
+ printBackgroundStats();
}
}
Modified: trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.h 2013-03-12 14:06:18 UTC (rev 55216)
+++ trunk/blender/source/blender/compositor/intern/COM_ExecutionGroup.h 2013-03-12 14:28:52 UTC (rev 55217)
@@ -341,6 +341,11 @@
* @see determineChunkRect
*/
MemoryBuffer *allocateOutputBuffer(int chunkNumber, rcti *rect);
+
+ /**
+ * @brief print execution statistics to stdout when running in a background mode
+ */
+ void printBackgroundStats(void);
/**
* @brief after a chunk is executed the needed resources can be freed or unlocked.
More information about the Bf-blender-cvs
mailing list