A bit of refactoring was done from last "version", no cleanup of old code in this diff.
Short description:
When enabled prefetching(preview panel>view settings), a pernament running job is created, that will render frames in the background until the cache is full.
Cache recycling behavior will be changed to "free furthest frame to the left of playhead if possible, otherwise rightmost frame".
If the cache is not filled fast enough, prefetch job suspends itself at the last moment and will wait until it has chance to "catch up"
Effectively this will decouple rendering to separate thread, so rendering itself is a bit faster (more frequent technically).
Prefetch job contains a copy of scene in which sequencer is used. This copy is updated every time a cache is invalidated.
It should be possible to use prefetch API to create jobs running in in-house jobs system, so prefetch job manager was quite quickly dropped(also would introduced too much
ugly code). Because prefetch is pernament in it's nature, current job system is not usable.
- There is still collision with blf library.
- Scene strips are rendered in "rendered" mode only (other modes are not supported if rendered from non-main thread).
I am not aware of any other issues (but haven't really used this patch for a while).