diff options
author | Richard Antalik <richardantalik@gmail.com> | 2020-05-24 21:52:59 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2020-05-24 22:03:31 +0300 |
commit | 0d0df683d983200dad5f33d0d1b2c8b417d7199f (patch) | |
tree | 0959d9bbfefddc15c3c043cf1f9ae0d77a399c43 /source/blender/blenkernel/intern/seqprefetch.c | |
parent | 22462fed000d7494522f7824ede7ff9f99d2bddf (diff) |
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
Diffstat (limited to 'source/blender/blenkernel/intern/seqprefetch.c')
-rw-r--r-- | source/blender/blenkernel/intern/seqprefetch.c | 4 |
1 files changed, 2 insertions, 2 deletions
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); } |