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, "

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to