Davinci Resolve on Bazzite w/ an AMD GPU

If you’re here, then you likely know what the contradictions are for this very specific use case. But to summarize: you want to game in linux, which is possible thanks to Proton, a translation layer that works best with AMD GPUs. You also want to edit in Davinci Resolve which relies heavily on CUDA, so it works best with Nvidia GPUs. I’m sure there are many combinations but at least three clear ways are:

  • Have two computers; one with an AMD GPU and one with an Nvidia GPU. This makes for the best performance for each task - gaming and editing. They have different needs and it’s best to use hardware they are optimized for. It’s also the most expensive option.

  • Two GPUs in one PC; this is of course provided that you have at least two PCIe slots. This still means extra cash but it also means if both slots aren’t x16 then one of your GPUs is going to need an adapter. And the adapted one will have reduced bandwidth.

  • One GPU+tweaks; the most affordable option and you need decide which thing to favor. A gaming-forward set up would mean make your AMD GPU work for both. An editing-forward set up would mean except that your Nvidia GPU will have a limited gaming library; comparatively to AMD.

I decided to go with the third option as a gaming-forward set up. I’m loving the work of Universal Blue and specifically Bazzite. It’s well optimized for AMD hardware and gaming in Steam with Proton. It also more than satisfies my needs as a desktop workstation. The caveats in Resolve are around rendering. Proxies are likely going to be necessary but for me I can live with that. I have plenty of storage and I don’t edit hours per week. I just like the NLE and I don’t want to over-complicate my hardware set up.

Installation

First, download Davinci Resolve from Blackmagic. You’ll need to register beforehand to access the download.

Second...and this has gotten really easy to install all different flavors of linux thanks to distrobox but the folks at Universal Blue have made it even easier. Now it’s just a single command. Open up a terminal and execute:

ujust install-resolve

You will be prompted to select “y” for yes once the package has been been identified. Type “y” to continue with with the install.

If you’re curious about “ujust” here’s a short explanation from Universal Blue’s documentation page where you can read more:

Technically ujust is not a package format, but are convenience commands that automate tasks using scripts which can be utilized to install specific software. There are also commands for system configuration and maintenance included here, so run ujust commands at your own risk. If an application is available to install via a ujust command but can also be obtained as a Flatpak, then it is recommended to use ujust command over installing the Flatpak version on Bazzite.Personally I’ve tested this install and have run it multiple times without any issues. Though, my best practice is to track user feedback every time I come across a ujust command.

Running Stably

Once everything is installed you should see Resolve among your installed apps. Once you click you’ll be prompted by this message:

Then when you “click update configuration” your GPU is not listed nor is OpenCL.

The fix is thanks to Qubits & Bytes who’s instructions I’m literally copy and pasting here as I could not word it better. I’m just adding it here in the context of running Resolve on Bazzite, in case their link ever goes dead:

By default, RustICL does not advertise OpenCL support for any GPU driver. This is due to the platform still being immature, and the dev team working to iron out remaining bugs before enabling support by default.

This means that to use RustICL, you’ll need to ensure the following environment variable is set. This is the reason Da Vinci Resolve is unable to detect OpenCL support, despite it being present on the system.

RUSTICL_ENABLE=radeonsi

For non-AMD systems, this step is still required, but with the correct driver name in place of radeonsi. Currently supported driver options are iris, llvmpipe, nouveau, panfrost, radeonsi.

To test this out, try launching DaVinci Resolve using a terminal. You’ll need the path to the executable – in my case, the path is /opt/resolve/bin/resolve.

Append the environment variable in front of the executable command.

RUSTICL_ENABLE=radeonsi /opt/resolve/bin/resolve

DaVinci Resolve should now open.

If you open a new project, you’ll be able to open the preferences window to see information about the detected GPU.

If this worked, you can make the change permanent by altering the launcher. To do this, you’ll need to make a copy of the original launcher file. You’ll find this in /usr/share/applications, with the name com.blackmagicdesign.resolve.desktop.

Open your copy, and edit the Exec line to match the one below.

Exec=env RUSTICL_ENABLE=radeonsi /opt/resolve/bin/resolve %u

Save the file, and move it into the ~/.local/share/applications folder. This folder contains custom .desktop files, and will not be overwritten by application updates.

Try launching DaVinci Resolve using the icon in your app launcher. It should now start correctly.

Huge thanks to contributors from Universal Blue and Qubits & Bytes for the two ends of this solution.

Thus far it’s been stable and working fine for me but I’ll update this article if that changes and include any additional fixes that may arise.

In a completely separate post, I’ll share my experience editing with this set up including my complete system breakdown, footage I’m working with, the node workflow I use etc.