was successfully added to your cart.

NEW VERSION

Check out the latest version of this article updated for DaVinci Resolve 12

Caching in DaVinci resolve was mentioned in my recent article about its performance, and today I decided to write a bit more just about this feature.

There are 4 caching levels in DaVinci Resolve:

  1. Output Cache
  2. Node Cache
  3. Source Cache
  4. Sequence Cache

The below diagram shows how the processing flows within DaVinci:

Caching Diagram

 

To have a full control over the caching process we need to change its mode to User (there’s also a smart mode which manages caching automatically; the default one is none though). To enable User Render Cache select the option in the Playback menu:

Enable User Render Cache
Enable User Render Cache

Now we can trigger any type of caching at any level.

Output Cache

The output cache is the last caching point in the processing chain, and it happens just before the frame is sent to playback.

Output cache is designed to improve the editing within Resolve for playback and trimming.

Render Cache Clip Output
Render Cache Clip Output

The only problem with Output Cache is that it gets broken always when there’s any correction made to the clip.

Broken Output Cache

The above picture shows that the render cache is not valid anymore and has to be re-rendered (red color). Fortunately, there are other types of caching allowing us to build on top of them without the need of re-rendering each time we apply any color correction.

Node Cache

All the changes made within one node can be cached on the node level using Node Cache:

Enable Node Cache
Enable Node Cache

This is the most useful caching type in my opinion and allows to build on top of the cache without breaking it.

Let’s say we apply OpenFX plugin in the first node and then cache the node. After adding a serial node after, we can apply all the built-in color corrections, and the cache is still valid. All the changes are applied on top of the rendered ProRes File.

Node Cache rendered

The situation changes when we try to change anything that is before the cached node, and, in this case, the node has to be re-rendered:

Broken Node Cache

A good practice is to use Node Cache for 3rd party OpenFX plugins as they usually take a lot of CPU/GPU time and the real-time playback is most likely lost after applying them.

Source Cache

Source cache, as opposed to Output Cache, is rendered before all the color correction adjustments. The only exception is Camera RAW module – any change in there will break the cache.

Render Cache Clip Source
Render Cache Clip Source

Source cache can be treated as on the fly proxy generation. Works really well with formats that are heavy and require a lot of CPU/GPU processing. In my case, I use it every time I have RAW footage in my project. After applying Camera RAW settings, I enable Source Cache and the playback is not affected by RAW processing/debayering/etc. – it just plays back the cached ProRes file.

Additionally, caching at the source level scales the video to the timeline resolution. So in case we have some 4K footage in the project, and the timeline is set to 1080p, the footage will be downscaled during the caching process.

Sequence Cache

According to the Resolve’s manual there’s no way to trigger Sequence Cache in User mode. It works only in Smart mode and renders clips in the timeline that use composite modes other than Normal and any clips with opacity or speed effects.

Broken Cache

Cache is broken as soon as the change is made before the caching point. This means that:

  1. Output Cache is rendered after all the color corrections, node plugins, etc. so it has to be re-rendered whenever a change is made to the clip.
  2. Node Cache is broken whenever a change is made before this node. Adding a serial node after doesn’t affect it and the cache is still valid.
  3. Source Cache works similar to Proxy files, and it has to be re-rendered whenever a source clip has changed, which in most cases will be when we apply any change to the Camera RAW settings of the RAW footage.

Cache Performance

Keep in mind that cache rendering is triggered whenever it is needed after 5 seconds of inactivity – this value can be changed in the project settings – General Options / Enable background caching after X seconds:

Background Caching delay
Background Caching delay

When this occurs, DaVinci is using your scratch disk as an output drive. To specify the scratch disk for the render cache go to the settings and put your drive at the top of the list:

Scratch Drives
Scratch Drives

To improve the performance, use different disk than your OS drive, and the faster the disk, the better (SSD drive is recommended).

Cleanup

In case you want to free up some space on your scratch disks, there is an option to delete all Render Cache, or just the cache files that are not used in the current timeline (Unused).

Both options are available in the Playback menu at the very bottom:

Delete render cache
Delete render cache

Summary

Caching is really well implemented in DaVinci Resolve and it is flexible enough to use it in various scenarios. It allows smooth editing and color correction without using Proxy files (especially for RAW footage). OpenFX plugins are rarely accelerated by the GPU but thanks to Node Caching we can forget about them and still achieve real-time playback.

I am a big fan of caching within DaVinci Resolve and use it extensively since I’ve learned how to use this feature properly.

If you want to improve the performance of your DaVinci Resolve even further check out my other article describing how to achieve that in 3 steps.

Resources

DaVinci Resolve Lite is completely free piece of software and can be downloaded from the BlackMagic website here:

NEW VERSION

Check out the latest version of this article updated for DaVinci Resolve 12

Read previous post:
How to improve DaVinci Resolve performance in 3 steps

 Here's the new version of this article for DaVinci Resolve 12.  Blackmagic DaVinci Resolve is a highly optimized piece of...

Close