[Bf-blender-cvs] [ef640824f1e] cycles_procedural_api: add update_all to integrator

Kévin Dietrich noreply at git.blender.org
Mon Nov 16 13:10:36 CET 2020


Commit: ef640824f1e61bb0706139c3b0be03fae9a5de6b
Author: Kévin Dietrich
Date:   Tue Nov 10 13:13:22 2020 +0100
Branches: cycles_procedural_api
https://developer.blender.org/rBef640824f1e61bb0706139c3b0be03fae9a5de6b

add update_all to integrator

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

M	intern/cycles/blender/blender_sync.cpp
M	intern/cycles/render/bake.cpp
M	intern/cycles/render/integrator.cpp
M	intern/cycles/render/integrator.h
M	intern/cycles/render/scene.cpp

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

diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 91d33a4478c..5b05b57dc06 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -377,7 +377,7 @@ void BlenderSync::sync_integrator()
     integrator->set_ao_bounces(0);
   }
 
-  integrator->tag_update(scene, 0);
+  integrator->tag_update(scene, Integrator::UPDATE_ALL);
 }
 
 /* Film */
@@ -730,7 +730,7 @@ vector<Pass> BlenderSync::sync_render_passes(BL::RenderLayer &b_rlay,
 
   scene->film->set_pass_alpha_threshold(b_view_layer.pass_alpha_threshold());
   scene->film->tag_passes_update(scene, passes);
-  scene->integrator->tag_update(scene, 0);
+  scene->integrator->tag_update(scene, Integrator::UPDATE_ALL);
 
   return passes;
 }
diff --git a/intern/cycles/render/bake.cpp b/intern/cycles/render/bake.cpp
index a490fc361f5..317a3937cab 100644
--- a/intern/cycles/render/bake.cpp
+++ b/intern/cycles/render/bake.cpp
@@ -114,7 +114,7 @@ void BakeManager::set(Scene *scene,
 
   /* create device and update scene */
   scene->film->tag_modified();
-  scene->integrator->tag_update(scene, 0);
+  scene->integrator->tag_update(scene, Integrator::UPDATE_ALL);
 
   need_update_ = true;
 }
diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp
index 341e7274256..a50e8942d2d 100644
--- a/intern/cycles/render/integrator.cpp
+++ b/intern/cycles/render/integrator.cpp
@@ -280,6 +280,10 @@ void Integrator::device_free(Device *, DeviceScene *dscene)
 
 void Integrator::tag_update(Scene *scene, uint32_t flag)
 {
+  if (flag & UPDATE_ALL) {
+    tag_modified();
+  }
+
   if (flag & (AO_PASS_MODIFIED | BACKGROUND_AO_MODIFIED)) {
     /* tag only the ao_bounces socket as modified so we avoid updating sample_pattern_lut unnecessarily */
     tag_ao_bounces_modified();
diff --git a/intern/cycles/render/integrator.h b/intern/cycles/render/integrator.h
index cadc259783f..1c917459c64 100644
--- a/intern/cycles/render/integrator.h
+++ b/intern/cycles/render/integrator.h
@@ -92,6 +92,7 @@ class Integrator : public Node {
   enum {
     AO_PASS_MODIFIED = (1 << 0),
     BACKGROUND_AO_MODIFIED = (1 << 1),
+    UPDATE_ALL = ~0u,
   };
 
   Integrator();
diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp
index 952fe4dc105..829a5695418 100644
--- a/intern/cycles/render/scene.cpp
+++ b/intern/cycles/render/scene.cpp
@@ -478,10 +478,9 @@ void Scene::reset()
   dicing_camera->tag_modified();
   film->tag_modified();
   background->tag_modified();
-  integrator->tag_modified();
 
   background->tag_update(this);
-  integrator->tag_update(this, 0);
+  integrator->tag_update(this, Integrator::UPDATE_ALL);
   object_manager->tag_update(this, ObjectManager::UPDATE_ALL);
   geometry_manager->tag_update(this, GeometryManager::UPDATE_ALL);
   light_manager->tag_update(this, LightManager::UPDATE_ALL);



More information about the Bf-blender-cvs mailing list