[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57307] trunk/blender/intern/cycles/ blender/blender_session.cpp: Fix related to #35681: avoid some unnecessary cycles updated when using exclude
Brecht Van Lommel
brechtvanlommel at pandora.be
Sun Jun 9 13:57:51 CEST 2013
Revision: 57307
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57307
Author: blendix
Date: 2013-06-09 11:57:51 +0000 (Sun, 09 Jun 2013)
Log Message:
-----------
Fix related to #35681: avoid some unnecessary cycles updated when using exclude
render layers.
Modified Paths:
--------------
trunk/blender/intern/cycles/blender/blender_session.cpp
Modified: trunk/blender/intern/cycles/blender/blender_session.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_session.cpp 2013-06-09 11:57:50 UTC (rev 57306)
+++ trunk/blender/intern/cycles/blender/blender_session.cpp 2013-06-09 11:57:51 UTC (rev 57307)
@@ -101,12 +101,12 @@
/* create sync */
sync = new BlenderSync(b_engine, b_data, b_scene, scene, !background, session->progress, session_params.device.type == DEVICE_CPU);
- sync->sync_data(b_v3d, b_engine.camera_override());
- if(b_rv3d)
+ /* for final render we will do sync per render layer */
+ if(b_v3d) {
+ sync->sync_data(b_v3d, b_engine.camera_override());
sync->sync_view(b_v3d, b_rv3d, width, height);
- else
- sync->sync_camera(b_render, b_engine.camera_override(), width, height);
+ }
/* set buffer parameters */
BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_scene, b_v3d, b_rv3d, scene->camera, width, height);
@@ -159,9 +159,12 @@
/* sync object should be re-created */
sync = new BlenderSync(b_engine, b_data, b_scene, scene, !background, session->progress, session_params.device.type == DEVICE_CPU);
- sync->sync_data(b_v3d, b_engine.camera_override());
- sync->sync_camera(b_render, b_engine.camera_override(), width, height);
+ if(b_rv3d) {
+ sync->sync_data(b_v3d, b_engine.camera_override());
+ sync->sync_camera(b_render, b_engine.camera_override(), width, height);
+ }
+
BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_scene, PointerRNA_NULL, PointerRNA_NULL, scene->camera, width, height);
session->reset(buffer_params, session_params.samples);
@@ -368,6 +371,7 @@
/* update scene */
sync->sync_data(b_v3d, b_engine.camera_override(), b_rlay_name.c_str());
+ sync->sync_camera(b_render, b_engine.camera_override(), width, height);
/* update number of samples per layer */
int samples = sync->get_layer_samples();
@@ -452,6 +456,10 @@
void BlenderSession::synchronize()
{
+ /* only used for viewport render */
+ if(!b_v3d)
+ return;
+
/* on session/scene parameter changes, we recreate session entirely */
SceneParams scene_params = BlenderSync::get_scene_params(b_scene, background);
SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, background);
More information about the Bf-blender-cvs
mailing list