Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-02-10 23:02:36 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-02-10 23:11:57 +0300
commitbb08502cf40613778ae880db88e8772dc63fe581 (patch)
tree778f8005ab3c5ec9120a84ca18450354e33d2509 /intern/cycles
parenta3b7f83cb54a9bafe3ed2156d7cda3a1b758792b (diff)
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.
Diffstat (limited to 'intern/cycles')
-rw-r--r--intern/cycles/blender/addon/__init__.py2
-rw-r--r--intern/cycles/blender/addon/engine.py4
-rw-r--r--intern/cycles/blender/blender_python.cpp13
3 files changed, 14 insertions, 5 deletions
diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py
index 64e4a8391d1..57025388bda 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 e1d82db25e1..492a254b9b9 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 37191bb797a..120d6b0d4de 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);
}