[Bf-blender-cvs] [bb08502] master: Cycles: Fallback to bottom-top tile order when rendering from the command line

Sergey Sharybin noreply at git.blender.org
Tue Feb 10 21:13:16 CET 2015


Commit: bb08502cf40613778ae880db88e8772dc63fe581
Author: Sergey Sharybin
Date:   Wed Feb 11 01:02:36 2015 +0500
Branches: master
https://developer.blender.org/rBbb08502cf40613778ae880db88e8772dc63fe581

Cycles: Fallback to bottom-top tile order when rendering from the command line

In the worst case it'll do nothing, in the best case it might give some percent
of speedup because of better cache coherency.

Currently it's all handled as an override on blender_python level, don't really
see reason to penetrate the boolean flag further into sync code. This can always
be done later if needed.

===================================================================

M	intern/cycles/blender/addon/__init__.py
M	intern/cycles/blender/addon/engine.py
M	intern/cycles/blender/blender_python.cpp

===================================================================

diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py
index 64e4a83..5702538 100644
--- a/intern/cycles/blender/addon/__init__.py
+++ b/intern/cycles/blender/addon/__init__.py
@@ -59,7 +59,7 @@ class CyclesRender(bpy.types.RenderEngine):
                               None, None, None, use_osl)
         else:
             if not self.session:
-                engine.create(self, data, scene)
+                engine.create(self, data, scene, background=bpy.app.background)
             else:
                 engine.reset(self, data, scene)
 
diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py
index e1d82db..492a254 100644
--- a/intern/cycles/blender/addon/engine.py
+++ b/intern/cycles/blender/addon/engine.py
@@ -28,7 +28,7 @@ def init():
     _cycles.init(path, user_path)
 
 
-def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=False):
+def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=False, background=False):
     import bpy
     import _cycles
 
@@ -42,7 +42,7 @@ def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=Fa
     if rv3d:
         rv3d = rv3d.as_pointer()
 
-    engine.session = _cycles.create(engine.as_pointer(), userpref, data, scene, region, v3d, rv3d, preview_osl)
+    engine.session = _cycles.create(engine.as_pointer(), userpref, data, scene, region, v3d, rv3d, preview_osl, background)
 
 
 def free(engine):
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index 37191bb..120d6b0 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -90,10 +90,13 @@ static PyObject *init_func(PyObject *self, PyObject *args)
 static PyObject *create_func(PyObject *self, PyObject *args)
 {
 	PyObject *pyengine, *pyuserpref, *pydata, *pyscene, *pyregion, *pyv3d, *pyrv3d;
-	int preview_osl;
+	int preview_osl, background;
 
-	if(!PyArg_ParseTuple(args, "OOOOOOOi", &pyengine, &pyuserpref, &pydata, &pyscene, &pyregion, &pyv3d, &pyrv3d, &preview_osl))
+	if(!PyArg_ParseTuple(args, "OOOOOOOii", &pyengine, &pyuserpref, &pydata, &pyscene,
+	                     &pyregion, &pyv3d, &pyrv3d, &preview_osl, &background))
+	{
 		return NULL;
+	}
 
 	/* RNA */
 	PointerRNA engineptr;
@@ -143,6 +146,12 @@ static PyObject *create_func(PyObject *self, PyObject *args)
 			RNA_boolean_set(&cscene, "use_progressive_refine", true);
 		}
 
+		/* Use more optimal tile order when rendering from the command line. */
+		if(background) {
+			PointerRNA cscene = RNA_pointer_get(&sceneptr, "cycles");
+			RNA_enum_set(&cscene, "tile_order", (int)TILE_BOTTOM_TO_TOP);
+		}
+
 		/* offline session or preview render */
 		session = new BlenderSession(engine, userpref, data, scene);
 	}




More information about the Bf-blender-cvs mailing list