Depsgraph: initialize EvaluationContext even if nothing to update
authorDalai Felinto <dfelinto@gmail.com>
Thu, 29 Mar 2018 12:56:06 +0000 (09:56 -0300)
committerDalai Felinto <dfelinto@gmail.com>
Thu, 29 Mar 2018 12:56:09 +0000 (09:56 -0300)
This is required to T54437 (sequencer preview uses last updated scene).
Although the fix itself needs to be in 2.8, for the 2.8 specific
initialization code.

source/blender/depsgraph/intern/eval/deg_eval.cc

index 92518ba73e421892c338e8277f35b7a17e142065..fc71b5ccb7baba8e5bf5bbd24e0e0ab39ea84719 100644 (file)
@@ -252,6 +252,9 @@ void deg_evaluate_on_refresh(EvaluationContext *eval_ctx,
                              Depsgraph *graph,
                              const unsigned int layers)
 {
                              Depsgraph *graph,
                              const unsigned int layers)
 {
+       /* Set time for the current graph evaluation context. */
+       TimeSourceDepsNode *time_src = graph->find_time_source();
+       eval_ctx->ctime = time_src->cfra;
        /* Nothing to update, early out. */
        if (BLI_gset_len(graph->entry_tags) == 0) {
                return;
        /* Nothing to update, early out. */
        if (BLI_gset_len(graph->entry_tags) == 0) {
                return;
@@ -262,9 +265,6 @@ void deg_evaluate_on_refresh(EvaluationContext *eval_ctx,
                         graph->layers);
        const bool do_time_debug = ((G.debug & G_DEBUG_DEPSGRAPH_TIME) != 0);
        const double start_time = do_time_debug ? PIL_check_seconds_timer() : 0;
                         graph->layers);
        const bool do_time_debug = ((G.debug & G_DEBUG_DEPSGRAPH_TIME) != 0);
        const double start_time = do_time_debug ? PIL_check_seconds_timer() : 0;
-       /* Set time for the current graph evaluation context. */
-       TimeSourceDepsNode *time_src = graph->find_time_source();
-       eval_ctx->ctime = time_src->cfra;
        /* Set up evaluation context for depsgraph itself. */
        DepsgraphEvalState state;
        state.eval_ctx = eval_ctx;
        /* Set up evaluation context for depsgraph itself. */
        DepsgraphEvalState state;
        state.eval_ctx = eval_ctx;