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:
2026-07-13 10:19:30 +08:00
parent 63a4008ce4
commit 8636ee0dc6
+4 -10
View File
@@ -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(