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>2021-09-28 15:37:59 +0300
committerSergey Sharybin <sergey@blender.org>2021-09-28 18:06:16 +0300
commitf17ca53cdd2f3e3f4ccfcae404deebb02ead158d (patch)
tree5bb2175cd3294b4492338e4cebda8aac2cfe0abe
parent640c4ace0b0d9c7766ddfe5b658f966ba8bef3a5 (diff)
Fix wrong update with shadow catcher and transparent film
This change fixes an issue when scene has a shadow catcher and film is configured to be transparent. Starting viewport render and making the background non-transparent will cause bad memory access (wrong render and possibly crash). Film passes depends on transparency of background, so check for this. Demo file: F10650585 Differential Revision: https://developer.blender.org/D12666
-rw-r--r--intern/cycles/render/film.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp
index 8e14b338bd3..ad3336ca089 100644
--- a/intern/cycles/render/film.cpp
+++ b/intern/cycles/render/film.cpp
@@ -434,7 +434,8 @@ void Film::update_passes(Scene *scene, bool add_sample_count_pass)
const ObjectManager *object_manager = scene->object_manager;
Integrator *integrator = scene->integrator;
- if (!is_modified() && !object_manager->need_update() && !integrator->is_modified()) {
+ if (!is_modified() && !object_manager->need_update() && !integrator->is_modified() &&
+ !background->is_modified()) {
return;
}