[Bf-blender-cvs] [81159e99b81] blender2.7: Fix T61078: Cycles crash with adaptive smoke sim playback.

Brecht Van Lommel noreply at git.blender.org
Fri Feb 1 19:08:59 CET 2019


Commit: 81159e99b819910b72cb3caba6b3cd4f35184ea9
Author: Brecht Van Lommel
Date:   Fri Feb 1 19:05:00 2019 +0100
Branches: blender2.7
https://developer.blender.org/rB81159e99b819910b72cb3caba6b3cd4f35184ea9

Fix T61078: Cycles crash with adaptive smoke sim playback.

3D image dimensions should be updated on the Cycles side before loading
the smoke data.

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

M	intern/cycles/render/image.cpp
M	intern/cycles/render/image.h

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

diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp
index a8e6f41e57a..341a95c0258 100644
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/render/image.cpp
@@ -333,6 +333,10 @@ int ImageManager::add_image(const string& filename,
 				img->use_alpha = use_alpha;
 				img->need_load = true;
 			}
+			if(!(img->metadata == metadata)) {
+				img->metadata = metadata;
+				img->need_load = true;
+			}
 			img->users++;
 			return type_index_to_flattened_slot(slot, type);
 		}
diff --git a/intern/cycles/render/image.h b/intern/cycles/render/image.h
index b608bc30e70..cd7130b3898 100644
--- a/intern/cycles/render/image.h
+++ b/intern/cycles/render/image.h
@@ -44,6 +44,18 @@ public:
 	/* Automatically set. */
 	ImageDataType type;
 	bool is_linear;
+
+	bool operator==(const ImageMetaData& other) const
+	{
+		return is_float == other.is_float &&
+		       is_half == other.is_half &&
+		       channels == other.channels &&
+		       width == other.width &&
+		       height == other.height &&
+		       depth == other.depth &&
+		       type == other.type &&
+		       is_linear == other.is_linear;
+	}
 };
 
 class ImageManager {



More information about the Bf-blender-cvs mailing list