[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