RV 2022.3.0 playback of 4k EXR files

Hi everyone.
4k is the new standard. On our studio we are using playlists with mono 4k, RGB, 16-bit EXR, using zip compression. Files can be in the 30-40 MB range.

  • What kind of settings would be recommended to get real time playback (besides having enough disk or network throughput)?
  • What is the recommendation around RAM cache size? Documentation says that it is not a good idea to have huge cache sizes, but our TDs and artists love to use 80% of the machines, which means 100 GB of memory usage. If there is no swapping, can this pose a problem?
    I have already looked at this article:
    Chapter 14 - Maximizing Performance | ShotGrid | Autodesk Knowledge Network

No longer from Autodesk, but a few hints:

  1. Autodesk improved the cache performance lookup time a couple years back, so while a larger cache technically has lower read/write performance, the impact is far less than when Chapter 14 was written. I’d use your 80% metric personally.
  2. If you can control the EXRs, be sure to make any EXRs with more than 4 channels are encoded as mutli-part rather than mutli-layer, and keep the channels you intend to read together in a single layer/part. This will allow RV to seek into the EXR file to just the pixels you want to read.
  3. Take Chapter 14 with a grain of salt of when it was written when it comes to actual numbers. System performance and settings are dependent on your environment to a degree. Generally the higher latency storage you have, the more reader threads you need to keep the decoder threads saturated, while dialing in your settings, watch your CPU load on your machine, it should never go above 80%, if it does, try to lower your threads. Ultimately you want to make sure that the presentation/upload to gpu parts of RV are not contended with. RV does a decent job of that, but when you hit the extremes of data rates, you need to help RV out a bit.
  4. Furthermore, if you can control your EXR format, try out different encoding types. For instance, the DWA encoding, if you can deal with the downsides (which aren’t many, but technically exist) is a great encoding as it saves you some throughput. I know you said you are on zip encoding, so this might not even be an option for you.
  5. For best performance, use a GPU that supports multi-threaded upload. IIRC, this is limited to Quadro cards. If you have a Quadro card installed, check the Rendering>Multi-threaded uploads checkbox in your settings.
  6. Probably obvious, but make sure you are on a recent RV. They keep finding performance improvements.
  7. While I’ve worked on systems where they deployed something like FSCache to help repeated reads, its probably outside the scope of most places/usecases; but figured I’d offer that tidbit.
  8. Here’s an often overlooked one. If you have a slate frame, be sure that the channels/resolution/format/encoding/etc all match your sequence. There’s a (sometimes not so minor) performance hit when RV encounters a dissimilar frame in a sequence. I found that one out in a really hard way. Admittedly, newer RVs handle this better than they did, but worth looking at just to make sure.

Hope that helps!