Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/sequencer/intern/render.c')
-rw-r--r--source/blender/sequencer/intern/render.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/sequencer/intern/render.c b/source/blender/sequencer/intern/render.c
index 2a11c61d137..f6d80602f4c 100644
--- a/source/blender/sequencer/intern/render.c
+++ b/source/blender/sequencer/intern/render.c
@@ -655,8 +655,7 @@ static void multibuf(ImBuf *ibuf, const float fmul)
static ImBuf *input_preprocess(const SeqRenderData *context,
Sequence *seq,
float timeline_frame,
- ImBuf *ibuf,
- const bool UNUSED(is_proxy_image))
+ ImBuf *ibuf)
{
Scene *scene = context->scene;
ImBuf *preprocessed_ibuf = NULL;
@@ -796,9 +795,7 @@ static ImBuf *seq_render_preprocess_ibuf(const SeqRenderData *context,
if (use_preprocess) {
float cost = seq_estimate_render_cost_end(context->scene, begin);
- /* TODO(Richard): It should be possible to store in cache if image is proxy,
- * but it adds quite a bit of complexity. Since proxies are fast to read, I would
- * rather simplify existing code a bit. */
+ /* Proxies are not stored in cache. */
if (!is_proxy_image) {
BKE_sequencer_cache_put(
context, seq, timeline_frame, SEQ_CACHE_STORE_RAW, ibuf, cost, false);
@@ -806,7 +803,7 @@ static ImBuf *seq_render_preprocess_ibuf(const SeqRenderData *context,
/* Reset timer so we can get partial render time. */
begin = seq_estimate_render_cost_begin();
- ibuf = input_preprocess(context, seq, timeline_frame, ibuf, is_proxy_image);
+ ibuf = input_preprocess(context, seq, timeline_frame, ibuf);
}
float cost = seq_estimate_render_cost_end(context->scene, begin);
@@ -1865,7 +1862,11 @@ ImBuf *seq_render_strip(const SeqRenderData *context,
return ibuf;
}
- ibuf = BKE_sequencer_cache_get(context, seq, timeline_frame, SEQ_CACHE_STORE_RAW, false);
+ /* Proxies are not stored in cache. */
+ if (!SEQ_can_use_proxy(seq, SEQ_rendersize_to_proxysize(context->preview_render_size))) {
+ ibuf = BKE_sequencer_cache_get(context, seq, timeline_frame, SEQ_CACHE_STORE_RAW, false);
+ }
+
if (ibuf == NULL) {
ibuf = do_render_strip_uncached(context, state, seq, timeline_frame, &is_proxy_image);
}