[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54599] trunk/blender: Added option for group node buffering in the compositor.

Monique Dewanchand m.dewanchand at atmind.nl
Sat Feb 16 21:21:42 CET 2013


Revision: 54599
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54599
Author:   mdewanchand
Date:     2013-02-16 20:21:41 +0000 (Sat, 16 Feb 2013)
Log Message:
-----------
Added option for group node buffering in the compositor.

Justa cluster did not have enough memory to handle all Mango 4k scenes.
Option is default disabled and can be enabled in the performance panel.

 - At Mind -

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_node.py
    trunk/blender/source/blender/compositor/intern/COM_CompositorContext.h
    trunk/blender/source/blender/compositor/nodes/COM_GroupNode.cpp
    trunk/blender/source/blender/makesdna/DNA_node_types.h
    trunk/blender/source/blender/makesrna/intern/rna_nodetree.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_node.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_node.py	2013-02-16 19:24:52 UTC (rev 54598)
+++ trunk/blender/release/scripts/startup/bl_ui/space_node.py	2013-02-16 20:21:41 UTC (rev 54599)
@@ -252,6 +252,7 @@
 
         col = layout.column()
         col.prop(tree, "use_opencl")
+        col.prop(tree, "use_groupnode_buffer")
         col.prop(tree, "two_pass")
         col.prop(snode, "show_highlight")
         col.prop(snode, "use_hidden_preview")

Modified: trunk/blender/source/blender/compositor/intern/COM_CompositorContext.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_CompositorContext.h	2013-02-16 19:24:52 UTC (rev 54598)
+++ trunk/blender/source/blender/compositor/intern/COM_CompositorContext.h	2013-02-16 20:21:41 UTC (rev 54599)
@@ -74,7 +74,7 @@
 	 * @brief does this system have active opencl devices?
 	 */
 	bool m_hasActiveOpenCLDevices;
-	
+
 	/**
 	 * @brief Skip slow nodes
 	 */
@@ -178,6 +178,7 @@
 	
 	void setFastCalculation(bool fastCalculation) {this->m_fastCalculation = fastCalculation;}
 	bool isFastCalculation() {return this->m_fastCalculation;}
+	inline bool isGroupnodeBufferEnabled() {return this->getbNodeTree()->flag & NTREE_COM_GROUPNODE_BUFFER;}
 };
 
 

Modified: trunk/blender/source/blender/compositor/nodes/COM_GroupNode.cpp
===================================================================
--- trunk/blender/source/blender/compositor/nodes/COM_GroupNode.cpp	2013-02-16 19:24:52 UTC (rev 54598)
+++ trunk/blender/source/blender/compositor/nodes/COM_GroupNode.cpp	2013-02-16 20:21:41 UTC (rev 54599)
@@ -64,11 +64,12 @@
 		}
 	}
 
+	const bool groupnodeBuffering = system.getContext().isGroupnodeBufferEnabled();
 	for (index = 0; index < outputsockets.size(); index++) {
 		OutputSocket *outputSocket = outputsockets[index];
 		bNodeSocket *editorOutput = outputSocket->getbNodeSocket();
 		if (editorOutput->groupsock) {
-			SocketProxyNode *proxy = new SocketProxyNode(bnode, editorOutput->groupsock, editorOutput, true);
+			SocketProxyNode *proxy = new SocketProxyNode(bnode, editorOutput->groupsock, editorOutput, groupnodeBuffering);
 			outputSocket->relinkConnections(proxy->getOutputSocket(0));
 			ExecutionSystemHelper::addNode(system.getNodes(), proxy);
 		}

Modified: trunk/blender/source/blender/makesdna/DNA_node_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_node_types.h	2013-02-16 19:24:52 UTC (rev 54598)
+++ trunk/blender/source/blender/makesdna/DNA_node_types.h	2013-02-16 20:21:41 UTC (rev 54599)
@@ -309,9 +309,11 @@
 #define NTREE_TYPE_INIT		1
 
 /* ntree->flag */
-#define NTREE_DS_EXPAND		1	/* for animation editors */
-#define NTREE_COM_OPENCL	2	/* use opencl */
-#define NTREE_TWO_PASS		4	/* two pass */
+#define NTREE_DS_EXPAND				1	/* for animation editors */
+#define NTREE_COM_OPENCL			2	/* use opencl */
+#define NTREE_TWO_PASS				4	/* two pass */
+#define NTREE_COM_GROUPNODE_BUFFER	8	/* use groupnode buffers */
+
 /* XXX not nice, but needed as a temporary flags
  * for group updates after library linking.
  */

Modified: trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2013-02-16 19:24:52 UTC (rev 54598)
+++ trunk/blender/source/blender/makesrna/intern/rna_nodetree.c	2013-02-16 20:21:41 UTC (rev 54599)
@@ -4971,6 +4971,10 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", NTREE_COM_OPENCL);
 	RNA_def_property_ui_text(prop, "OpenCL", "Enable GPU calculations");
 
+	prop = RNA_def_property(srna, "use_groupnode_buffer", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", NTREE_COM_GROUPNODE_BUFFER);
+	RNA_def_property_ui_text(prop, "Buffer Groups", "Enable buffering of group nodes");
+
 	prop = RNA_def_property(srna, "two_pass", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", NTREE_TWO_PASS);
 	RNA_def_property_ui_text(prop, "Two Pass", "Use two pass execution during editing: first calculate fast nodes, "




More information about the Bf-blender-cvs mailing list