Remove automatic full-cache invalidation on LUT processor change
InvalidateAll() on the OCIO LUT node caused the preview autocacher to re-render the entire timeline, freezing the UI when switching LUT files. Instead, let the new processor be used naturally on the next render request (scrubbing/playback).
This commit is contained in:
@@ -20,7 +20,6 @@
|
||||
|
||||
#include "ociolut.h"
|
||||
|
||||
#include <QCoreApplication>
|
||||
#include <QFileInfo>
|
||||
#include <QMetaObject>
|
||||
|
||||
@@ -208,15 +207,10 @@ void OCIOLutNode::SetProcessorResult(ColorProcessorPtr processor,
|
||||
last_processor_ = processor;
|
||||
set_processor(processor);
|
||||
|
||||
// The processor has changed. In the main GUI process we need to invalidate
|
||||
// cached frames so the viewer refreshes automatically. In the render worker
|
||||
// process, a full invalidation can trigger an expensive re-cache of the
|
||||
// entire timeline, so we skip it; the next render request will naturally
|
||||
// pick up the new processor.
|
||||
if (QCoreApplication::applicationName() !=
|
||||
QStringLiteral("olive-render-worker")) {
|
||||
InvalidateAll(kTextureInput);
|
||||
}
|
||||
// NOTE: We intentionally do NOT call InvalidateAll() here. A full cache
|
||||
// invalidation of the entire timeline freezes the UI while the preview
|
||||
// autocacher re-renders every frame. The new processor will be picked up
|
||||
// naturally on the next render request (e.g. scrubbing or playback).
|
||||
}
|
||||
|
||||
OCIOLutNode::GenerateProcessorTask::GenerateProcessorTask(
|
||||
|
||||
Reference in New Issue
Block a user