[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