How To Calibrate and Generate a LUT for the Steam Deck

Background

There have been a lot of posts recently on both Reddit and YouTube on the Steam Deck's display and how to get optimal quality. Several members have posted their guides as well as their LUTs and ICC profiles. However, I want to make this information available to others who would want to create profiles on their own displays.

Preface

Simply using DisplayCAL to Calibrate & Profile your Steam Deck will not do anything for gaming. Even if you apply the ICC profile to your desktop there are a few major issues:

  1. You can apply the ICC profile to the KDE Plasma Desktop on Steam Deck but it will be reset every time you go into Desktop Mode
  2. Games are not color managed and will not respect the ICC profile to begin with, even if you could apply it
  3. None of these afforementioned settings apply in Game Mode at all

Some of these issues are not unique to Linux and the Steam Deck. On Windows there are similar issues – games are not color managed and most monitors don't have an sRGB clamp and will end up looking oversaturated. The solution for these issues is to apply what's called a LUT (Look Up Table) as a post processing step. In this Calibration guide I will be going through how to generate a LUT file for your Steam Deck.  

To apply the LUT to your game you will need to setup Reshade for Steam Games, or vkBasalt for Emulators and other Flatpak apps like games installed through Heroic Games Launcher. In the future it may be possible to set up vkBasalt globally for all Steam Games as well, but other community members are working on the guides for that.  

Requirements

Going through this guide will require that you have some type of colorimeter device like a Spyder, i1Display, Colorchecker Display, Colormunki Display, etc. If you don't have any of this hardware, please skip this guide and go to Part 2. You will be able to use the LUTs that I have generated already for my Steam Deck and apply them to yours.

Setup

Step 1: Install DisplayCAL via the Discover App.

DisplayCAL on the Discover App

Step 2: Download the latest ArgyllCMS Binaries. Click the 64 bit download and extract the zip file into the directory of your choice.

ArgyllCMS Download

Step 3: Launch DisplayCAL and then Locate the ArgyllCMS Binaries. Select the folder where you extracted the zip file in the above step.

Step 4: Select the "Video 3D LUT for ReShade (D65, Rec. 709 / Rec. 1886)" Setting. Select the "Spectral: LCD White LED family (AC, LG, Samsung)" Correction.

Step 5: Go to the 3D LUT tab and fill in the settings to match below. When done just click "Calibrate & Profile". If you get an error at some point don't worry we can fix that in the next step. If does not error out, save the profile in the directory of your choosing.

Note, it will save multiple files but really the only one you need for Reshade is the .png file. It is also helpful to generate a .cube file as well for use with vkBasalt.

Step 6 (Optional): If you got an error in the step above, no worries. Just open the 3D Lut Creator app. This should have been installed automatically when you installed DisplayCAL above. Fill in the settings as per the screen shot and then click "Create 3D LUT" at the bottom right. Note you can change the output format. I am using the .cube format for  use with vkBasalt. Save it in the directory of your choosing.

Note — if you do not see the Rec709 option, this happened to me as well. You will need to manually locate it. This is why I had you download the ArgyllCMS files. You can find the Rec709 profile located within the "ref" folder.

Conclusion

If you made it this far you should have generated either a .png or .cube LUT file that you can use. These LUTs are fully custom to your Steam Deck and the panel you have and will result in the best accuracy. These files will dramatically improve the color reproduction in games for you. In order to apply them to games you will either need to leverage Reshade or vkBasalt.

There are tutorialls on using Reshade with steam deck. See this YouTube Video or this Reddit Post. I am working on a guide for vkBasalt and that will be Part 2 of this series. Please stay tuned.

If you have any questions or issues feel free to leave comments either here or on Reddit.