From cedd8b8c56b944ffdabadc4339d2d1e5c6651dd6 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 19 Apr 2021 19:38:05 +0200 Subject: Fix T87535, T87295: issues with new persistent data option Some persistent data code was disable due to a deeper design issue, which meant some updates were not communicated to renderers. Dependency graph updates work in two passes, once where Blender scene animation updates are done, then app handler scripts can run to make further scene modifications, and then the depsgraph is updated again to take those into account. Previously the viewport would update renderers twice when such app handler scripts were present. Now both viewport and persistent data rendering update the renderers only once, accumulating updates from both passes. --- source/blender/render/intern/engine.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/intern/engine.c b/source/blender/render/intern/engine.c index 09ad875b479..2edfaf09358 100644 --- a/source/blender/render/intern/engine.c +++ b/source/blender/render/intern/engine.c @@ -702,7 +702,7 @@ static void engine_depsgraph_exit(RenderEngine *engine) if (engine_keep_depsgraph(engine)) { /* Clear recalc flags since the engine should have handled the updates for the currently * rendered framed by now. */ - DEG_ids_clear_recalc(engine->depsgraph); + DEG_ids_clear_recalc(engine->depsgraph, false); } else { /* Free immediately to save memory. */ @@ -718,7 +718,7 @@ void RE_engine_frame_set(RenderEngine *engine, int frame, float subframe) } /* Clear recalc flags before update so engine can detect what changed. */ - DEG_ids_clear_recalc(engine->depsgraph); + DEG_ids_clear_recalc(engine->depsgraph, false); Render *re = engine->re; double cfra = (double)frame + (double)subframe; -- cgit v1.2.3