From 825b06f7a72fab5ab441c121f1df58f425fbcc14 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Fri, 23 Sep 2022 12:31:09 -0700 Subject: [PATCH] render: only use cache in offline mode --- app/node/traverser.cpp | 2 +- app/node/traverser.h | 2 ++ app/render/renderprocessor.cpp | 5 +++++ app/render/renderprocessor.h | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/node/traverser.cpp b/app/node/traverser.cpp index 224364bc2..3c8053e10 100644 --- a/app/node/traverser.cpp +++ b/app/node/traverser.cpp @@ -109,7 +109,7 @@ NodeValue NodeTraverser::GenerateRowValueElement(const Node *node, const QString NodeValue value = table->TakeAt(value_index); - if (value.type() == NodeValue::kTexture) { + if (value.type() == NodeValue::kTexture && UseCache()) { QMutexLocker locker(node->video_frame_cache()->mutex()); node->video_frame_cache()->LoadState(); diff --git a/app/node/traverser.h b/app/node/traverser.h index 308ab675c..1defd0168 100644 --- a/app/node/traverser.h +++ b/app/node/traverser.h @@ -149,6 +149,8 @@ protected: Decoder::LoopMode loop_mode() const { return loop_mode_; } + virtual bool UseCache() const { return false; } + private: void PreProcessRow(NodeValueRow &row); diff --git a/app/render/renderprocessor.cpp b/app/render/renderprocessor.cpp index 1c6f49fe6..fc4f26c02 100644 --- a/app/render/renderprocessor.cpp +++ b/app/render/renderprocessor.cpp @@ -649,4 +649,9 @@ void RenderProcessor::ConvertToReferenceSpace(TexturePtr destination, TexturePtr render_ctx_->BlitColorManaged(ctj, destination.get()); } +bool RenderProcessor::UseCache() const +{ + return static_cast(ticket_->property("mode").toInt()) == RenderMode::kOffline; +} + } diff --git a/app/render/renderprocessor.h b/app/render/renderprocessor.h index 6738a605c..8ef6699bb 100644 --- a/app/render/renderprocessor.h +++ b/app/render/renderprocessor.h @@ -67,6 +67,8 @@ protected: virtual void ConvertToReferenceSpace(TexturePtr destination, TexturePtr source, const QString &input_cs) override; + virtual bool UseCache() const override; + private: RenderProcessor(RenderTicketPtr ticket, Renderer* render_ctx, DecoderCache* decoder_cache, ShaderCache* shader_cache);