From 3a522f7a7ffd49ae51ccdd2b050eee6f15b98ac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Mon, 3 Aug 2020 22:08:43 +0200 Subject: Fix T79213 EEVEE: rendering with motion blur can change current frame It seems to be expected that the render engine reset to the right CFRA if it modifies it. --- source/blender/draw/engines/eevee/eevee_engine.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/draw/engines/eevee/eevee_engine.c') diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c index f42c60b04bf..d49bb5a268c 100644 --- a/source/blender/draw/engines/eevee/eevee_engine.c +++ b/source/blender/draw/engines/eevee/eevee_engine.c @@ -459,6 +459,7 @@ static void eevee_render_to_image(void *vedata, } EEVEE_PrivateData *g_data = ved->stl->g_data; + int initial_frame = CFRA; int steps = max_ii(1, scene->eevee.motion_blur_steps); int time_steps_tot = (do_motion_blur) ? steps : 1; g_data->render_tot_samples = divide_ceil_u(scene->eevee.taa_render_samples, time_steps_tot); @@ -558,6 +559,11 @@ static void eevee_render_to_image(void *vedata, /* Restore original viewport size. */ DRW_render_viewport_size_set((int[2]){g_data->size_orig[0], g_data->size_orig[1]}); + + if (CFRA != initial_frame) { + /* Restore original frame number. This is because the render pipeline expects it. */ + RE_engine_frame_set(engine, initial_frame, 0.0f); + } } static void eevee_engine_free(void) -- cgit v1.2.3