diff options
author | Sergey Sharybin <sergey@blender.org> | 2021-09-28 15:37:59 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2021-09-28 18:06:16 +0300 |
commit | f17ca53cdd2f3e3f4ccfcae404deebb02ead158d (patch) | |
tree | 5bb2175cd3294b4492338e4cebda8aac2cfe0abe /intern/cycles/render | |
parent | 640c4ace0b0d9c7766ddfe5b658f966ba8bef3a5 (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
Diffstat (limited to 'intern/cycles/render')
-rw-r--r-- | intern/cycles/render/film.cpp | 3 |
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; } |