[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42626] branches/tile/source/blender/ compositor: Tile branch
Jeroen Bakker
j.bakker at atmind.nl
Wed Dec 14 09:52:02 CET 2011
Revision: 42626
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42626
Author: jbakker
Date: 2011-12-14 08:51:50 +0000 (Wed, 14 Dec 2011)
Log Message:
-----------
Tile branch
some changes to clean up memory in order to continue tracking the threading/memory issue
Modified Paths:
--------------
branches/tile/source/blender/compositor/COM_defines.h
branches/tile/source/blender/compositor/intern/COM_InputSocket.cpp
branches/tile/source/blender/compositor/intern/COM_InputSocket.h
branches/tile/source/blender/compositor/intern/COM_Node.cpp
branches/tile/source/blender/compositor/intern/COM_NodeBase.cpp
branches/tile/source/blender/compositor/intern/COM_OutputSocket.cpp
branches/tile/source/blender/compositor/intern/COM_OutputSocket.h
branches/tile/source/blender/compositor/intern/COM_WorkPackage.cpp
branches/tile/source/blender/compositor/intern/COM_WorkScheduler.cpp
branches/tile/source/blender/compositor/intern/COM_compositor.cpp
branches/tile/source/blender/compositor/operations/COM_CompositorOperation.cpp
branches/tile/source/blender/compositor/operations/COM_CompositorOperation.h
branches/tile/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp
Modified: branches/tile/source/blender/compositor/COM_defines.h
===================================================================
--- branches/tile/source/blender/compositor/COM_defines.h 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/COM_defines.h 2011-12-14 08:51:50 UTC (rev 42626)
@@ -56,7 +56,8 @@
// chunk size determination
#define COM_PREVIEW_SIZE 140.0f
-#define COM_OPENCL_ENABLED TRUE
+#define COM_OPENCL_ENABLED true
+#define COM_PREVIEW_ENABLED true
// workscheduler threading models
/**
* COM_TM_PTHREAD is a threading model based on pthread library. where the control (picking new work) is done by each thread
Modified: branches/tile/source/blender/compositor/intern/COM_InputSocket.cpp
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_InputSocket.cpp 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_InputSocket.cpp 2011-12-14 08:51:50 UTC (rev 42626)
@@ -40,10 +40,6 @@
this->resizeMode = from->getResizeMode();
}
-InputSocket::~InputSocket() {
-}
-
-
int InputSocket::isInputSocket() const { return true; }
const int InputSocket::isConnected() const { return this->connection != NULL; }
Modified: branches/tile/source/blender/compositor/intern/COM_InputSocket.h
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_InputSocket.h 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_InputSocket.h 2011-12-14 08:51:50 UTC (rev 42626)
@@ -90,7 +90,6 @@
InputSocket(DataType datatype);
InputSocket(DataType datatype, InputSocketResizeMode resizeMode);
InputSocket(InputSocket* from);
- ~InputSocket();
void setConnection(SocketConnection* connection);
SocketConnection* getConnection();
Modified: branches/tile/source/blender/compositor/intern/COM_Node.cpp
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_Node.cpp 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_Node.cpp 2011-12-14 08:51:50 UTC (rev 42626)
@@ -78,12 +78,14 @@
}
void Node::addPreviewOperation(ExecutionSystem *system, OutputSocket *outputSocket, int priority) {
+#if COM_PREVIEW_ENABLED
PreviewOperation *operation = new PreviewOperation();
system->addOperation(operation);
operation->setbNode(this->getbNode());
operation->setbNodeTree(system->getContext().getbNodeTree());
operation->setPriority(priority);
this->addLink(system, outputSocket, operation->getInputSocket(0));
+#endif
}
void Node::addPreviewOperation(ExecutionSystem *system, InputSocket *inputSocket, int priority) {
Modified: branches/tile/source/blender/compositor/intern/COM_NodeBase.cpp
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_NodeBase.cpp 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_NodeBase.cpp 2011-12-14 08:51:50 UTC (rev 42626)
@@ -34,17 +34,14 @@
NodeBase::~NodeBase(){
- unsigned int index;
- for (index = 0 ; index < this->outputsockets.size(); index ++) {
- OutputSocket * socket = this->outputsockets[index];
- delete socket;
+ while (!this->outputsockets.empty()) {
+ delete (this->outputsockets.back());
+ this->outputsockets.pop_back();
}
- this->outputsockets.clear();
- for (index = 0 ; index < this->inputsockets.size(); index ++) {
- InputSocket * socket = this->inputsockets[index];
- delete socket;
+ while (!this->inputsockets.empty()) {
+ delete (this->inputsockets.back());
+ this->inputsockets.pop_back();
}
- this->inputsockets.clear();
}
void NodeBase::addInputSocket(DataType datatype) {
Modified: branches/tile/source/blender/compositor/intern/COM_OutputSocket.cpp
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_OutputSocket.cpp 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_OutputSocket.cpp 2011-12-14 08:51:50 UTC (rev 42626)
@@ -37,9 +37,6 @@
this->inputSocketDataTypeDeterminatorIndex = from->getInputSocketDataTypeDeterminatorIndex();
}
-OutputSocket::~OutputSocket() {
-}
-
int OutputSocket::isOutputSocket() const { return true; }
const int OutputSocket::isConnected() const { return this->connections.size()!=0; }
Modified: branches/tile/source/blender/compositor/intern/COM_OutputSocket.h
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_OutputSocket.h 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_OutputSocket.h 2011-12-14 08:51:50 UTC (rev 42626)
@@ -57,7 +57,6 @@
OutputSocket(DataType datatype);
OutputSocket(DataType datatype, int inputSocketDataTypeDeterminatorIndex);
OutputSocket(OutputSocket * from);
- ~OutputSocket();
void addConnection(SocketConnection *connection);
SocketConnection* getConnection(unsigned int index) {return this->connections[index];}
const int isConnected() const;
Modified: branches/tile/source/blender/compositor/intern/COM_WorkPackage.cpp
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_WorkPackage.cpp 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_WorkPackage.cpp 2011-12-14 08:51:50 UTC (rev 42626)
@@ -21,8 +21,10 @@
*/
#include "COM_WorkPackage.h"
+#include <stdio.h>
WorkPackage::WorkPackage(ExecutionGroup *group, unsigned int chunkNumber) {
+ printf("%d: %d\n", group, chunkNumber);
this->executionGroup = group;
this->chunkNumber = chunkNumber;
}
Modified: branches/tile/source/blender/compositor/intern/COM_WorkScheduler.cpp
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_WorkScheduler.cpp 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_WorkScheduler.cpp 2011-12-14 08:51:50 UTC (rev 42626)
@@ -130,8 +130,8 @@
void WorkScheduler::schedule(ExecutionGroup *group, int chunkNumber) {
-#if COM_CURRENT_THREADING_MODEL == COM_TM_PTHREAD
WorkPackage* package = new WorkPackage(group, chunkNumber);
+#if COM_CURRENT_THREADING_MODEL == COM_TM_PTHREAD
if (group->isOpenCL() && openclActive){
BLI_mutex_lock(&gpumutex);
gpuwork.push_back(package);
@@ -142,7 +142,6 @@
BLI_mutex_unlock(&cpumutex);
}
#elif COM_CURRENT_THREADING_MODEL == COM_TM_NOTHREAD
- WorkPackage* package = new WorkPackage(group, chunkNumber);
CPUDevice device;
device.execute(package);
delete package;
@@ -278,15 +277,15 @@
Device* device;
while(cpudevices.size()>0) {
device = cpudevices.back();
+ cpudevices.pop_back();
device->deinitialize();
delete device;
- cpudevices.pop_back();
}
while(gpudevices.size()>0) {
device = gpudevices.back();
+ gpudevices.pop_back();
device->deinitialize();
delete device;
- gpudevices.pop_back();
}
#if COM_OPENCL_ENABLED
if (program) {
Modified: branches/tile/source/blender/compositor/intern/COM_compositor.cpp
===================================================================
--- branches/tile/source/blender/compositor/intern/COM_compositor.cpp 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/intern/COM_compositor.cpp 2011-12-14 08:51:50 UTC (rev 42626)
@@ -38,13 +38,13 @@
WorkScheduler::initialize(); ///TODO: call workscheduler.deinitialize somewhere
}
BLI_mutex_lock(mutex);
-// if (editingtree->test_break && editingtree->test_break(editingtree->tbh)) {
-// // during editing multiple calls to this method can be triggered.
-// // make sure one the last one will be doing the work.
-// BLI_mutex_unlock(mutex);
-// return;
+ if (editingtree->test_break && editingtree->test_break(editingtree->tbh)) {
+ // during editing multiple calls to this method can be triggered.
+ // make sure one the last one will be doing the work.
+ BLI_mutex_unlock(mutex);
+ return;
-// }
+ }
/* set progress bar to 0% and status to init compositing*/
editingtree->progress(editingtree->prh, 0.0);
Modified: branches/tile/source/blender/compositor/operations/COM_CompositorOperation.cpp
===================================================================
--- branches/tile/source/blender/compositor/operations/COM_CompositorOperation.cpp 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/operations/COM_CompositorOperation.cpp 2011-12-14 08:51:50 UTC (rev 42626)
@@ -50,27 +50,23 @@
// When initializing the tree during initial load the width and height can be zero.
this->imageInput = getInputSocketReader(0);
this->alphaInput = getInputSocketReader(1);
- initImage();
-}
-
-void CompositorOperation::initImage() {
+ if (this->getWidth() * this->getHeight() != 0) {
+ this->outputBuffer=(float*) MEM_mapallocN(this->getWidth()*this->getHeight()*4*sizeof(float), "CompositorOperation");
+ }
const Scene * scene = this->scene;
Render* re= RE_GetRender(scene->id.name);
RenderResult *rr= RE_AcquireResultWrite(re);
if(rr) {
-
if(rr->rectf != NULL) {
MEM_freeN(rr->rectf);
}
- if (this->getWidth() * this->getHeight() != 0) {
- this->outputBuffer=(float*) MEM_mapallocN(this->getWidth()*this->getHeight()*4*sizeof(float), "CompositorOperation");
- }
rr->rectf= outputBuffer;
}
if (re) {
RE_ReleaseResult(re);
re = NULL;
}
+
}
void CompositorOperation::deinitExecution() {
Modified: branches/tile/source/blender/compositor/operations/COM_CompositorOperation.h
===================================================================
--- branches/tile/source/blender/compositor/operations/COM_CompositorOperation.h 2011-12-14 08:38:21 UTC (rev 42625)
+++ branches/tile/source/blender/compositor/operations/COM_CompositorOperation.h 2011-12-14 08:51:50 UTC (rev 42626)
@@ -42,8 +42,6 @@
bool isOutputOperation(bool rendering) const {return true;}
void initExecution();
void deinitExecution();
- const int getRenderPriority() const {return 7;};
-private:
- void initImage();
+ const int getRenderPriority() const {return 7;}
};
#endif
Modified: branches/tile/source/blender/compositor/operations/COM_ViewerBaseOperation.cpp
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list