[Bf-blender-cvs] [12960184f61] cycles_procedural_api: tweak GeometryManager update tagging
Kévin Dietrich
noreply at git.blender.org
Fri Nov 6 18:48:00 CET 2020
Commit: 12960184f61fbb1b4ba5a551c1ad6438f40dc487
Author: Kévin Dietrich
Date: Fri Nov 6 11:44:54 2020 +0100
Branches: cycles_procedural_api
https://developer.blender.org/rB12960184f61fbb1b4ba5a551c1ad6438f40dc487
tweak GeometryManager update tagging
===================================================================
M intern/cycles/render/geometry.cpp
===================================================================
diff --git a/intern/cycles/render/geometry.cpp b/intern/cycles/render/geometry.cpp
index c8285461aed..1db1a28f91e 100644
--- a/intern/cycles/render/geometry.cpp
+++ b/intern/cycles/render/geometry.cpp
@@ -265,17 +265,20 @@ void Geometry::tag_update(Scene *scene, bool rebuild)
scene->light_manager->tag_update(scene, LightManager::MESH_NEED_REBUILD);
}
else {
- if (is_modified()) {
- foreach (Node *node, used_shaders) {
- Shader *shader = static_cast<Shader *>(node);
- if (shader->has_surface_emission) {
- scene->light_manager->tag_update(scene, LightManager::EMISSIVE_MESH_MODIFIED);
- break;
- }
+ foreach (Node *node, used_shaders) {
+ Shader *shader = static_cast<Shader *>(node);
+ if (shader->has_surface_emission) {
+ scene->light_manager->tag_update(scene, LightManager::EMISSIVE_MESH_MODIFIED);
+ break;
}
}
}
+ if (!is_modified()) {
+ scene->geometry_manager->need_flags_update = true;
+ return;
+ }
+
scene->geometry_manager->need_update = true;
scene->object_manager->tag_update(scene, ObjectManager::GEOMETRY_MODIFIED);
}
@@ -1429,6 +1432,10 @@ void GeometryManager::device_update_preprocess(Device *device, Scene *scene, Pro
device_update_flags |= DEVICE_CURVE_DATA_NEEDS_REALLOC;
}
+ if (device_update_flags != 0) {
+ need_update = true;
+ }
+
need_flags_update = false;
}
More information about the Bf-blender-cvs
mailing list