Merge branch 'blender-v2.83-release'

This commit is contained in:
Richard Antalik 2020-05-13 00:14:44 +02:00
commit f9d0f59bed
Notes: blender-bot 2023-02-14 10:29:30 +01:00
Referenced by issue #77079, Blender Selection Lag
Referenced by issue #76933, "Align to transform Orientation" crashes blender for Custom transform orientations
Referenced by issue #76799, Crash from undoing the copy-pasting of multiple data blocks
Referenced by issue #76725, Elastic Deform brush becomes extremely slow when Dyntopo is active
Referenced by issue #76712, Texture with alpha renders differently in Eevee and Cycles
3 changed files with 14 additions and 0 deletions

View File

@ -369,6 +369,7 @@ bool BKE_sequencer_cache_is_full(struct Scene *scene);
* ********************************************************************** */
void BKE_sequencer_prefetch_start(const SeqRenderData *context, float cfra, float cost);
void BKE_sequencer_prefetch_stop_all();
void BKE_sequencer_prefetch_stop(struct Scene *scene);
void BKE_sequencer_prefetch_free(struct Scene *scene);
bool BKE_sequencer_prefetch_need_redraw(struct Main *bmain, struct Scene *scene);

View File

@ -42,6 +42,7 @@
#include "BKE_anim_data.h"
#include "BKE_animsys.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
@ -242,6 +243,14 @@ static void seq_prefetch_update_area(PrefetchJob *pfjob)
}
}
void BKE_sequencer_prefetch_stop_all(void)
{
/*TODO(Richard): Use wm_jobs for prefetch, or pass main. */
for (Scene *scene = G.main->scenes.first; scene; scene = scene->id.next) {
BKE_sequencer_prefetch_stop(scene);
}
}
/* Use also to update scene and context changes
* This function should almost always be called by cache invalidation, not directly.
*/

View File

@ -35,6 +35,7 @@
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_sequencer.h"
#include "WM_api.h"
#include "WM_types.h"
@ -558,6 +559,9 @@ void WM_jobs_kill_all(wmWindowManager *wm)
while ((wm_job = wm->jobs.first)) {
wm_jobs_kill_job(wm, wm_job);
}
/* This job will be automatically restarted */
BKE_sequencer_prefetch_stop_all();
}
/* wait until every job ended, except for one owner (used in undo to keep screen job alive) */