diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-04-12 20:52:01 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-04-12 21:10:30 +0300 |
commit | d2f55be7bbacab0c784bc35001a2840c4046b660 (patch) | |
tree | 58bc42901f688412b4f7d3979591391933a8d84f /intern/cycles | |
parent | ce259ca382e2af17d5a1a9660f8e5a4071983fb8 (diff) |
Fix T87283: crash with persistent data and motion blur
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/blender/blender_session.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/blender/blender_sync.cpp | 5 | ||||
-rw-r--r-- | intern/cycles/blender/blender_sync.h | 3 |
3 files changed, 6 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index bf4d80ce51b..ab081ada3dc 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -498,7 +498,7 @@ void BlenderSession::render(BL::Depsgraph &b_depsgraph_) /* Compute render passes and film settings. */ vector<Pass> passes = sync->sync_render_passes( - b_rlay, b_view_layer, session_params.adaptive_sampling, session_params.denoising); + b_scene, b_rlay, b_view_layer, session_params.adaptive_sampling, session_params.denoising); /* Set buffer params, using film settings from sync_render_passes. */ buffer_params.passes = passes; diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 09bc329041f..d585a058073 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -569,7 +569,8 @@ int BlenderSync::get_denoising_pass(BL::RenderPass &b_pass) return -1; } -vector<Pass> BlenderSync::sync_render_passes(BL::RenderLayer &b_rlay, +vector<Pass> BlenderSync::sync_render_passes(BL::Scene &b_scene, + BL::RenderLayer &b_rlay, BL::ViewLayer &b_view_layer, bool adaptive_sampling, const DenoiseParams &denoising) @@ -580,7 +581,7 @@ vector<Pass> BlenderSync::sync_render_passes(BL::RenderLayer &b_rlay, for (BL::RenderPass &b_pass : b_rlay.passes) { PassType pass_type = get_pass_type(b_pass); - if (pass_type == PASS_MOTION && scene->integrator->get_motion_blur()) + if (pass_type == PASS_MOTION && !b_scene.render().use_motion_blur()) continue; if (pass_type != PASS_NONE) Pass::add(pass_type, passes, b_pass.name().c_str()); diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index 1c43522a57e..787189da182 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -74,7 +74,8 @@ class BlenderSync { int height, void **python_thread_state); void sync_view_layer(BL::SpaceView3D &b_v3d, BL::ViewLayer &b_view_layer); - vector<Pass> sync_render_passes(BL::RenderLayer &b_render_layer, + vector<Pass> sync_render_passes(BL::Scene &b_scene, + BL::RenderLayer &b_render_layer, BL::ViewLayer &b_view_layer, bool adaptive_sampling, const DenoiseParams &denoising); |