Welcome to WSL!

New to the forum? Please read this and this.

Guide to unofficially getting display LUTs on Clean Feed output in Resolve and Fusion tabs on Windows

User avatar
Posts: 1
Joined: Fri Jan 03, 2020 1:29 pm

Guide to unofficially getting display LUTs on Clean Feed output in Resolve and Fusion tabs on Windows


Post by Muf »

With the announcement of the new Mac Pro, BMD decided to finally add a regular full screen output to Resolve. They call it "Clean Feed", but they forgot to add LUT support to it. I'm here to rectify that. (Well, on Windows at least - sorry Mac lovers!)

ReShade is a post effects hook for games that allows you to inject custom shaders into the rendering path of any Direct3D, OpenGL or Vulkan app. Resolve uses Qt and OpenGL for its window drawing, so this works.

Install Reshade by running the installer and pointing it to C:\Program Files\Blackmagic Design\Resolve.exe. Let it download shaders, and select the LUT.fx shader (you can deselect everything else). Because Resolve is in Program Files, regular users don't have write permissions, so it's easiest to click Edit ReShade settings and set the preset, effect and texture search paths to C:\Users\(Your Username)\AppData\Roaming\Blackmagic Design\DaVinci Resolve\reshade-shaders (with the addition of \DefaultPreset.ini, \Shaders and \Textures respectively, at the end), because AppData is a user-writeable path (and that's also where Resolve's user data lives). Before you ask, %APPDATA% doesn't work for some reason, so yes you really have to type it out completely. Make sure to move the reshade-shaders folder that the installer created manually to the new location. There's no option for relocating ReShade.ini so make it writeable by going into Properties->Security->Advanced->Change permissions->Add and typing Users as the principal and checking Modify in Basic permissions.

Now to make sure everything works, it's easiest to start off with a simple invert LUT. It will have the most dramatic effect so you can easily see when ReShade is active and when it isn't. Reshade's default format is a 32x32x32 single strip PNG file, so to invert the colours all you need to do is open the default lut.png ReShade ships with (you can find it in reshade-shaders\Textures) in your image editor of choice and rotate the image upside down.

Launch Resolve to try it out and get yourself familiarised with ReShade. It's a bit awkward as there are a few gotchas and limitations. First off, ReShade can only update its GUI when Resolve is pushing new frames to the GPU. The easiest way to do this is to play a small clip and enable looping. Otherwise you'll end up wondering why the cursor is stuck. Secondly, ReShade doesn't know the difference between the Resolve GUI monitor and the Clean Feed monitor, so it'll load on both. However, it'll load two separate instances of itself, so you can interact with them individually without one affecting the other. This is important as we only want to apply the LUT to our Clean Feed monitor output.

Get a clip playing in a loop, click anywhere on the Clean Feed monitor and press the home key. This will open the ReShade GUI, where you can go into Settings to change that awful default keyboard shortcut to something that doesn't conflict with any of your existing Resolve shortcuts. Add shortcuts for Effect Toggle and Effect Reload as well, you will need them later. Check the checkbox in front of LUT.fx and your clean feed should now be inverted!

Close Resolve. Now, if you were to open up Resolve again, the main GUI would be inverted too, because it's auto-loading the LUT effect. So, before doing that let's change this by going into ReShade.ini (in C:\Program Files\Blackmagic Design\Resolve) and adding NoReloadOnInit=1 to the [GENERAL] section of the ini file. Now open Resolve again and you'll see that the GUI isn't inverted. To load the LUT for the Clean Feed output, click anywhere in the Clean Feed monitor, and press your previously configured keyboard shortcut for effect reload. You'll need to do this every time you start Resolve.

An invert LUT isn't very useful for any sort of colour calibration purposes, but it did the trick for getting us familiarised with ReShade and making sure it loads when we want to & doesn't load when we don't want to. If you're a seasoned LUT veteran and you know how to convert your LUT of choice into ReShade's format you can do that and enjoy a calibrated Clean Feed! If not, read on.

You can generate a ReShade LUT using DisplayCAL's 3DLUT maker. Select ReShade in the file format dropdown. By default, ReShade is set to 32x32x32 while DisplayCAL's default is 64x64x64, so you'll either have to change the format to 32x32x32 in 3DLUT Maker, or keep it at 64x64x64 and go into ReShade's configuration editor (using the keyboard shortcut you previously set for that) and manually set it to 64x64x64 there. A mismatched LUT format will cause very strange results! Rename the resultant png file to "lut.png" and throw it in your ReShade Textures folder. Oh, and another gotcha is that if you have OS level 1DLUT calibration enabled for your Clean Feed monitor, you need to uncheck "Apply calibration (vcgt)" in 3DLUT Maker, or else your 1DLUT calibration curves will be applied twice. If you don't want OS level 1DLUT calibration but instead want to colour manage entirely using Resolve's Viewer 3DLUT (for the GUI monitor) and ReShade's Clean Feed 3DLUT (for the secondary/tertiary monitor), you can blacklist Resolve.exe in DisplayCAL's Profile Loader.


User avatar
Posts: 228
Joined: Mon Dec 12, 2016 6:32 am
Been thanked: 12 times

Re: Guide to unofficially getting display LUTs on Clean Feed output in Resolve and Fusion tabs on Windows


Post by danell »

How this is an awesome hax :D
I knew about reshade but I would never think about using it for Fusion!

User avatar
Posts: 1
Joined: Sat Feb 20, 2021 7:11 am
Real name: Bastian

Re: Guide to unofficially getting display LUTs on Clean Feed output in Resolve and Fusion tabs on Windows


Post by Anion »

Wow, cool idea.

Would be great, but seems like I can't make it run on my laptop.

Reshade gui always got stuck or hanging while 50% compiling.

I tried to configure just with one monitor enabled and everything works as expected, but from the moment I turn on 2nd display (dual screen or clean video feed) everything stucks.