[Bf-blender-cvs] [0d0df683d98] blender-v2.83-release: Fix(unreported): Crash on prefetching while transforming strip.

Richard Antalik noreply at git.blender.org
Sun May 24 21:13:27 CEST 2020


Commit: 0d0df683d983200dad5f33d0d1b2c8b417d7199f
Author: Richard Antalik
Date:   Sun May 24 20:52:59 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rB0d0df683d983200dad5f33d0d1b2c8b417d7199f

Fix(unreported): Crash on prefetching while transforming strip.

While investigating T76274, I found crash scenario when playhead is near end
frame and moving a strip. It is not as easy to reproduce, about 5% success
rate, and it will be even harder after rB4066c921fbe5. Exact cause wasn't
identified yet.

I wanted to disable prefetching during modal operator execution in VSE, but
currently I don't have any signalling method in place. Checking for G.moving
seems to resolve this problem, but it doesn't adress root cause of bug.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D7820

===================================================================

M	source/blender/blenkernel/intern/seqprefetch.c

===================================================================

diff --git a/source/blender/blenkernel/intern/seqprefetch.c b/source/blender/blenkernel/intern/seqprefetch.c
index d400f712728..dd074c643ac 100644
--- a/source/blender/blenkernel/intern/seqprefetch.c
+++ b/source/blender/blenkernel/intern/seqprefetch.c
@@ -536,11 +536,11 @@ void BKE_sequencer_prefetch_start(const SeqRenderData *context, float cfra, floa
     /* conditions to start:
      * prefetch enabled, prefetch not running, not scrubbing,
      * not playing and rendering-expensive footage, cache storage enabled, has strips to render,
-     * not rendering.
+     * not rendering, not doing modal transform - important, see D7820.
      */
     if ((ed->cache_flag & SEQ_CACHE_PREFETCH_ENABLE) && !running && !scrubbing &&
         !(playing && cost > 0.9) && ed->cache_flag & SEQ_CACHE_ALL_TYPES && has_strips &&
-        !G.is_rendering) {
+        !G.is_rendering && !G.moving) {
 
       seq_prefetch_start(context, cfra);
     }



More information about the Bf-blender-cvs mailing list