[Bf-blender-cvs] [8b806c86e12] blender-v2.91-release: Fix T82027, T81718: Cycles crash with volume animation playback

Brecht Van Lommel noreply at git.blender.org
Fri Oct 30 17:37:07 CET 2020


Commit: 8b806c86e12e92ffc8b486a69ce4de5938f09b4a
Author: Brecht Van Lommel
Date:   Fri Oct 30 17:28:08 2020 +0100
Branches: blender-v2.91-release
https://developer.blender.org/rB8b806c86e12e92ffc8b486a69ce4de5938f09b4a

Fix T82027, T81718: Cycles crash with volume animation playback

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

M	intern/cycles/render/geometry.cpp
M	intern/cycles/render/volume.cpp

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

diff --git a/intern/cycles/render/geometry.cpp b/intern/cycles/render/geometry.cpp
index 455959512fd..fdfce63bbeb 100644
--- a/intern/cycles/render/geometry.cpp
+++ b/intern/cycles/render/geometry.cpp
@@ -1129,7 +1129,10 @@ void GeometryManager::device_update_preprocess(Device *device, Scene *scene, Pro
       }
     }
 
-    if (geom->need_update_rebuild && geom->type == Geometry::VOLUME) {
+    /* Re-create volume mesh if we will rebuild or refit the BVH. Note we
+     * should only do it in that case, otherwise the BVH and mesh can go
+     * out of sync. */
+    if (geom->need_update && geom->type == Geometry::VOLUME) {
       /* Create volume meshes if there is voxel data. */
       if (!volume_images_updated) {
         progress.set_status("Updating Meshes Volume Bounds");
diff --git a/intern/cycles/render/volume.cpp b/intern/cycles/render/volume.cpp
index 89777d8669b..a8edc04f8a9 100644
--- a/intern/cycles/render/volume.cpp
+++ b/intern/cycles/render/volume.cpp
@@ -583,6 +583,7 @@ void GeometryManager::create_volume_mesh(Volume *volume, Progress &progress)
   volume->clear();
   volume->reserve_mesh(vertices.size(), indices.size() / 3);
   volume->used_shaders.push_back(volume_shader);
+  volume->need_update = true;
   volume->need_update_rebuild = true;
 
   for (size_t i = 0; i < vertices.size(); ++i) {



More information about the Bf-blender-cvs mailing list