Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey@blender.org>2022-03-02 13:45:48 +0300
committerSergey Sharybin <sergey@blender.org>2022-03-02 13:45:48 +0300
commit51c5a4d85dcef911f9996b69e6028f239f651328 (patch)
tree7599fc13d8906303d6d39c0aa566e5fd90a02a51 /source/blender
parentf8577db05dfc5140049d9a8b21a774cefea0bf79 (diff)
parent383a6ee78c111e3e1fa0be464d5493f7941fe67c (diff)
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/intern/image.c3
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_nodes.cc12
2 files changed, 6 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 817e7bb9685..8a212ed0d7d 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -3610,6 +3610,7 @@ static void image_free_tile(Image *ima, ImageTile *tile)
}
}
}
+ BKE_image_partial_update_mark_full_update(ima);
if (BKE_image_is_multiview(ima)) {
const int totviews = BLI_listbase_count(&ima->views);
@@ -3950,6 +3951,7 @@ ImageTile *BKE_image_add_tile(struct Image *ima, int tile_number, const char *la
}
}
}
+ BKE_image_partial_update_mark_full_update(ima);
return tile;
}
@@ -4015,6 +4017,7 @@ void BKE_image_reassign_tile(struct Image *ima, ImageTile *tile, int new_tile_nu
}
}
}
+ BKE_image_partial_update_mark_full_update(ima);
}
static int tile_sort_cb(const void *a, const void *b)
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 940c0bfc93c..77597e0db06 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -335,16 +335,10 @@ void DepsgraphNodeBuilder::begin_build()
* same as id_orig. Additionally, such ID might have been removed, which makes the check
* for whether id_cow is expanded to access freed memory. In order to deal with this we
* check whether CoW is needed based on a scalar value which does not lead to access of
- * possibly deleted memory.
- * Additionally, this saves some space in the map by skipping mapping for datablocks which
- * do not need CoW, */
- if (!deg_copy_on_write_is_needed(id_node->id_type)) {
- id_node->id_cow = nullptr;
- continue;
- }
-
+ * possibly deleted memory. */
IDInfo *id_info = (IDInfo *)MEM_mallocN(sizeof(IDInfo), "depsgraph id info");
- if (deg_copy_on_write_is_expanded(id_node->id_cow) && id_node->id_orig != id_node->id_cow) {
+ if (deg_copy_on_write_is_needed(id_node->id_type) &&
+ deg_copy_on_write_is_expanded(id_node->id_cow) && id_node->id_orig != id_node->id_cow) {
id_info->id_cow = id_node->id_cow;
}
else {