DaVinci Resolve

From ArchWiki

Davinci Resolve is a proprietary video editing, color grading, color correction, visual effects, motion graphics and audio post-production application.

Installation

Both a limited free version and a paid (Studio) version are offered.

For the free version, install davinci-resolveAUR or davinci-resolve-betaAUR.

For the Studio version, install davinci-resolve-studioAUR or davinci-resolve-studio-betaAUR.

To run DaVinci Resolve, it is required to use suitable OpenGL and OpenCL drivers. Open-source OpenCL drivers are currently unsupported, with the exception of intel-compute-runtime as of 25/08/2023 (check this issue. for instructions, you'll have to compile mesa and compute-runtime yourself, and export some envvars).

Table of OpenGL drivers
GPU vendor OpenGL driver Open Source Documentation Tested driver version Works with DaVinci Resolve Tested DR version Notes
AMD mesa Yes AMDGPU 23.0.2-2 Yes 18.1.4-1 On pre-Vega GPUs, if using opencl-amd and mesa, DR crashes, see this bug report. You can instead use rocm with ROC_ENABLE_PRE_VEGA=1 or use opencl-amd with progl.

Tested with Radeon RX 580.

Tested with Radeon PRO W6600.

amdgpu-pro-oglpAUR No AMDGPU PRO 21.10_1247438-1 Yes 17.1.1 This is required if using ORCA legacy OpenCL driver. Requires running Resolve with the progl wrapper script. See documentation and the driver github for usage.
Intel mesa Yes Intel graphics 23.1.6 Yes 18.5.1 Works without issues.
NVIDIA mesa Yes Nouveau No
nvidia-utils No NVIDIA 460.32.03-1 Yes 17.0b6-1 Tested on optimus laptop using nvidia-xrun.
Table of tested OpenCL drivers
GPU Vendor OpenCL driver Open Source Tested driver version Works with DR Tested DR version Comment
Neutral opencl-rusticl-mesa Yes 1:23.3.2-2 Yes 18.6.4-1 This only works if opencl-clover-mesa is not installed, otherwise DR will use Clover instead of rusticl. Some kernel versions have an issue with ROCm, but 6.1 LTS and 6.10.2 work.

Tested with RX 6800M.

opencl-rusticl-mesa/opencl-rusticl-mesa Yes 22.0.0-1 No 17.4.5-1 DR behaves like with intel-compute-runtime (likely same cause). Launches normally, can open a project. But unable to start playing the timeline (even without video tracks) in the Cut and in the Edit pages. However in the Fairlight page it is able to play timeline.

DR requires OpenCL 1.2. Mesa supports OpenCL 1.2, despite reporting it as OpenCL 1.1. Overriding OpenCL version with CLOVER_PLATFORM_VERSION_OVERRIDE=1.2 CLOVER_DEVICE_VERSION_OVERRIDE=1.2 CLOVER_DEVICE_CLC_VERSION_OVERRIDE=1.2 does not change the situation.

Tested with RX580.

mesa-tkg-git Yes 24.0.0_devel.180705.fdbb5d58983-1 Yes 18.6 DR works with rusticl now that MR 21305 has been merged (commit 0a072bb3).

Tested with RX 7600 using RUSTICL_ENABLE=radeonsi.

AMD opencl-amdAUR Mixed pro and open components 1:5.6.0-2 Yes 18.5b There is no currently AUR package with only repackaged rocm drivers from Ubuntu (this opencl-amd packages both rocm and orca). On GFX8 (RX 580 and others), the ORCA legacy driver is used by default, which itself currently requires the AMDGPU-PRO OpenGL drivers to work (see above).

Tested with Radeon Pro W6600 (works, even with mesa)

Tested with Radeon RX 580 (works, currently only with progl).

Tested with Radeon RX 5700 XT (with mesa)

Addresses crashing (encounted with rocm-opencl-runtime package) when attempting to perform color correction on the color page. Tested with Radeon 7900XT.

rocm-opencl-runtime Yes 5.4.3-1 Yes 18.1.4-1 For GPUs older than GFX9/Vega use variable ROC_ENABLE_PRE_VEGA=1; works with Mesa OpenGL

Tested with Radeon Pro W6600

Tested with AMD RX580. Color correction may result in crashing (did for Radeon )7900XT), consider using opencl-amd 5.6.0-2.

opencl-legacy-amdgpu-proAUR No 22.10.1_1401426-1 Yes, for GPUs older than Vega 17.4.6-2 Note that this is simply the opencl-amdAUR package without the ROCm drivers.

Requires the AMDGPU-PRO OpenGL drivers to work.

Tested with Radeon RX580.

Intel intel-compute-runtime Yes custom Yes 18.5.1 Works with patches, described in this issue.
mesa with the cl-gl sharing MR applied Yes 23.3.0 with MR applied Yes 18.6 Works with RUSTICL_ENABLE=iris exported as an environment variable
beignetAUR Yes 1.3.2+12+gfc5f430c-2 No Core dumped
intel-openclAUR No 5.0.r63503-2 No Core dumped
intel-opencl-runtimeAUR No 1:18.1.0.013-2 No Core dumped
Nvidia opencl-nvidia No 460.32.03-1 Yes Suitable, but working on cuda instead?

DaVinci Resolve Checker

You can run davinci-resolve-checker script, which will tell you if your configuration is suitable for running DR (doesn't work for Intel iGPUs - says OpenCL driver is unsupported, though you can make it work). In good configurations it should output:

All seems good. You should be able to run DaVinci Resolve successfully. 

BlackMagic Design Cards

If using DeckLink, UltraStudio or Intensity cards for video capture and playback, install Desktop Video Software with decklinkAUR package.

Tips and tricks

Decrease installation time

Compression of the Davinci Resolve package takes a significant amount of time because the binary is quite large. You can instruct makepkg to use a different compression algorithm, which in this case disables compression altogether, speeding up the process tremendously.

PKGEXT='.pkg.tar'

Using application in portable way

There may be reasons you may want to not install davinci resolve package to the system. For example, you do not want such big package to take space in system partition. Or you want to quickly switch between different versions of application: free and studio, current and previous versions. To do this, just unpack the contents of the needed versions package in the directory you want, and directly run the opt/resolve/bin/resolve from that directory.

Automating with scripts

DR supports scripting. Free version support launching the scripts only from within dr itself, while with Studio version you can also invoke scripts externally. To allow it, go to Preferences -> System -> General -> External scripting using. You can choose: None (similarly to Free version, only from within dr), Local (allow invokes from local host), and Network (allow invokes from remote host).

The documentation can be found in Help -> Documentation -> Developer.

Remap keyboard modifiers used with mouse wheel for scroll and zoom

The application uses very strange bindings of keyboard modifiers for zooming and scrolling timeline. Original behavior is the following:

  • shift + wheel = height of tracks
  • ctrl + wheel = scroll timeline
  • alt + wheel = zoom timeline
  • no modifiers + wheel = vertical scroll

It is impossible to remap this from application, see [1].

A workaround (working in X11 and Wayland) is to use evsieve. Replace /dev/input/event3 and /dev/input/event5 with your keyboard and mouse events in the following command:

# evsieve --input /dev/input/event3 grab --input /dev/input/event5 grab \
    --hook   key:leftalt:1 toggle=alt:2 \
    --hook   key:leftalt:0 toggle=alt:1 \
    --hook   key:leftctrl:1 toggle=ctrl:2 \
    --hook   key:leftctrl:0 toggle=ctrl:1 \
    --toggle rel:wheel @alt-up @alt-down id=alt \
    --map    yield rel:wheel@alt-down key:leftalt:0 key:leftctrl:1 key:leftctrl:2 rel:wheel key:leftctrl:0 key:leftalt:1 \
    --toggle rel:wheel @ctrl-up @ctrl-down id=ctrl \
    --map    yield rel:wheel@ctrl-down key:leftctrl:0 key:leftalt:1 key:leftalt:2 rel:wheel key:leftalt:0 key:leftctrl:1 \
    --block  rel:wheel_hi_res \
    --print  @alt-down @alt-up @ctrl-down @ctrl-up \
    --output create-link=/dev/input/by-id/merged-virtual-KM name="merged virtual KM"

Another workaround (working in X11 (and Xwayland), is worse and sometimes skips events) of this problem, you can use IMWheel utility. It can remap modifiers only for the application described by regular expression.

Use the following config:

~/.imwheelrc
"^resolve"

    # just wheel for scroll
    None, Up, Control_L|Button4
    None, Down, Control_L|Button5

    # crtl wheel for zoom
    Control_L, Up,   Alt_L|Button4
    Control_L, Down, Alt_L|Button5

    # alt wheel for track height
    Alt_L, Up,   Shift_L|Button4
    Alt_L, Down, Shift_L|Button5

Alternatively, use the following blocks:

~/.imwheelrc
"^resolve"

     # just wheel for zoom
     None, Up,   Alt_L|Button4
     None, Down, Alt_L|Button5

     # shift wheel for scroll
     Shift_L, Up, Control_L|Button4
     Shift_L, Down, Control_L|Button5

Prevent prompt returning before full exit

When you exit application, the terminal prompt is returned to you, but suddenly the terminal is polluted with "Socket disconnected" message. To prevent this, pipe output of main process via cat. See here for explanation.

Troubleshooting

Logs

DaVinci Resolve creates the log file ~/.local/share/DaVinciResolve/logs/ResolveDebug.txt at every launch. Inspecting it can help diagnose problems.

Application window misses title bar

There is a workaround for KDE - a window rule to force enable title bar. See [2]

You can manually create a file describing needed window rule:

DaVinci_Resolve_main_window_always_with_titlebar_and_frame.kwinrule
[DaVinci Resolve main window always with titlebar and frame]
Description=DaVinci Resolve main window always with titlebar and frame
clientmachinematch=0
noborder=false
noborderrule=2
titlematch=0
types=1
wmclass=resolve
wmclasscomplete=false
wmclassmatch=1

Then go to System Settings > Window Management > Window Rules and import this file.

MP4, H.264, H.265 and AAC Support

It's a misconception that DaVinci Resolve free does not support the MP4 container type. It is more accurate to say DaVinci Resolve free does not support decoding or encoding H.264 and H.265 video, regardless of the container type.

For example, an MP4 containing an AV1 video stream and MP3 or PCM audio stream, can be decoded by DaVinci Resolve free.

Neither DaVinci Resolve free or Studio versions support decoding or encoding of AAC audio streams.

Table of MP4, H.264, H.265 and AAC Support
Release MP4 H.264 H.265 AAC Tested Version Notes
Free Yes No No No 18.6.6-2 MP4 supported provided supported codecs are being used (eg: AV1 and PCM). AV1 only on Nvidia, maybe even for decoding, according to codecs document.
Studio Yes Yes Yes No 18.6.6-2

Workaround for DaVinci Resolve Free

If your MP4's video is H.264 or H.265, but audio is MP3 or PCM, you need only transcode your video to a supported codec, as the audio is already supported.

$ ffmpeg -i input.mp4 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a copy output.mov

If your MP4's video is H.264 or H.265, and the audio is AAC, you need to transcode both your video and audio to a supported codec.

$ ffmpeg -i input.mp4 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a alac output.mov

If your MP4's video is AV1, but the audio is AAC, transcode just the audio to a supported codec:

$ ffmpeg -i input.mp4 -c:v copy -c:a pcm_s32le output.mp4

You can automate this task using incron. It will automatically convert files appeared in specified folder. See setup example on this article. Another alternative is to write a resolve script for that purpose. See documentation for Resolve Scripting (linked in the see also section) for more information.

Workaround for DaVinci Resolve Studio

Both H.264 and H.265 video is supported by Studio, but AAC audio is not. You can transcode the audio from the unsupported AAC format, into a supported lossless format without destructively re-compressing the video, or separating the audio from the video.

In #See also section, note a link to a PDF containing an official list of supported codecs.

To transcode audio into Apple Lossless Audio Codec (-c:a alac). This is a good option if you prefer using MOV containers.

$ ffmpeg -i input.mp4 -c:v copy -c:a alac output.mov

FLAC offers just a minor compression advantage over ALAC. To transcode into FLAC, you will need to use the MKV container.

$ ffmpeg -i input.mp4 -c:v copy -c:a flac -compression_level 12 output.mkv

There's probably no real advantage to using PCM, except that MP4, MOV and MKV containers all support it, if that's important to you.

$ ffmpeg -i input.mp4 -c:v copy -c:a pcm_s32le output.mov

HiDPI

To enable compatibility with high-resolution displays, set the following environment variables accordingly:[3]

QT_DEVICE_PIXEL_RATIO=2
QT_AUTO_SCREEN_SCALE_FACTOR=true

You can change UI scaling in settings: Preferences (ctrl + ,) > User tab > UI settings > UI Display Scale.

Wine version

Some plugins are available for Windows, but not available for Linux, so you may want to use Davinci Resolve via wine. Also, wine version could potentially workaround the linux-only problem of mp4 format issues. Wine 6.5 brings OpenCL 1.2 support, which is required for DR. Unfortunately, there was no success to start DR via wine. See test results here. In 17.4.1 DR cannot see the list of available gpus (wine 6.21). Probably, need some hack to make wine present gpus to applications. In dr 18.5b1 with wine 8.7-1 I get the rocm error (5.4.3-1) that is filed here.

Wrong OpenCL Version

If the application simply is not starting, even after showing installer and "tour" successfully your OpenCL Version may not match your NVIDIA driver. If you have installed nvidia-440xx make sure to install opencl-nvidia-440xx as well. A possible error message:

~/.local/share/DaVinciResolve/logs/LogArchive/ResolveDebug_C1.txt
...
OpenCL error -1001: 'Unspecified Error', GPUPropertiesUtilUnix.cpp:338
...

Get back to Onboarding screen

If you are experimenting with driver installation, you may want to start from the welcome tour and onboarding screen, which checks your system and graphics card. You can achieve that by removing configs directory:

rm -r $HOME/.local/share/DaVinciResolve/configs

Full screen preview function missing

This function is only available in the studio version. It is in menu Workspace > Video Clean Feed.

No audio during video preview

DaVinci interfaces the ALSA directly, so if you use pulseaudio you need to install pulseaudio-alsa or pipewire-alsa. Alternatively you can redirect it to use PulseAudio yourself by creating asound.conf in /etc/ with the following content:

/etc/asound.conf
pcm.!default pulse
ctl.!default pulse

Error code 999 on Intel/NVIDIA hybrid graphics card

"The GPU failed to perform image processing because of an error. Error Code: 999."

If the NVIDIA GPU is used in on-demand mode, you have to explicitly demand it. To enable set the following environment variables:

__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia

Silent crash related to libcrypto.so.1.0.0

DaVinci Resolve is not starting in graphical mode. In the console, this error is thrown:

$ /opt/resolve/bin/resolve 
bin/resolve: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory

You need to install libxcrypt-compat.

Missing Workflow Integrations menu

In DR Studio for Windows and Mac OS there is Workspace -> Workflow Integrations menu. Workflow Integration plugins are written in JavaScript (electron applications). As noted in documentation (you can reach it in Help -> Documentation -> Developer), Linux currently is not supported (checked in 17.4.3). They say Integration Scripts are supported in Linux, this is most probably a mistake, because they did not provided a path where to put them and still the menu is missing (it is that same Workspace -> Workflow Integrations).

Python 3.6 not found

This article or section needs expansion.

Reason: Please help to write this section. (Discuss in Talk:DaVinci Resolve#Python 3.6 not found problem)

When going to Workspace -> Console -> Py3 the error window appears saying "Python 3.6 not found".

One solution is the following (from this question):

env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.11
sudo ln -s $HOME/.pyenv/versions/3.6.11/lib/python3.6 /usr/local/lib/python3.6
sudo ln -s $HOME/.pyenv/versions/3.6.11/lib/libpython3.so /usr/local/lib/libpython3.6.so

In DR 18 they say that all python 3 versions are supported.

Kill hanged process

If dr hanged, fails to release a terminal when you press ctrl + c (to send sigint), and when its window is not shown and you cannot open dr again (it is saying another instance is already running), you can still fix it. Open task manager (ctrl + esc in KDE), then search for process named "GUI", then kill it (send signal 9). Now you can start dr normally.

Use Dolphin instead of Qt File Picker

Unfortunately, DR does not support XDG desktop portals yet. See [4] for feature request. As a workaround, you can use Andrew Shark's script Import Media via Dolphin.

Unable to start (onetbb/log4cxx)

The switch to onetbb is causing a hang with the following message:

/opt/resolve/bin/resolve
...
ActCCMessage Already in Table: Code= c005, Mode= 13, Level=  1, CmdKey= -1, Option= 0
ActCCMessage Already in Table: Code= c006, Mode= 13, Level=  1, CmdKey= -1, Option= 0
ActCCMessage Already in Table: Code= c007, Mode= 13, Level=  1, CmdKey= -1, Option= 0
ActCCMessage Already in Table: Code= 2282, Mode=  0, Level=  0, CmdKey= 8, Option= 0
PnlMsgActionStringAdapter Already in Table: Code= 615e, Mode=  0, Level=  0, CmdKey= -1, Option= 0
log4cxx: No appender could be found for logger (BtCommon).
log4cxx: Please initialize the log4cxx system properly.
...

One suggested workaround is to temporarily rename /opt/intel/oneapi/compiler/2023.0.0/linux/lib/libOpenCL.so to something else.

See the tbb is replaced by onetbb and resolve cannot start on linux forum post for further discussion.

Unable to start (libpango/glib)

Due to the way Resolve handles libraries, starting the software may fail if the system libraries differ too much from the ones resolve ships.

/opt/resolve/bin/resolve: symbol lookup error: /usr/lib64/libpango-1.0.so.0: undefined symbol: g_string_free_and_steal

To circumvent it you can force Resolve to use the systems' version instead:

$ LD_PRELOAD="/usr/lib64/libglib-2.0.so" /opt/resolve/bin/resolve

Resolve may fail to launch on the first try, but it will work on subsequent attempts.

It may be resulted in a new error:

/opt/resolve/bin/resolve: symbol lookup error: /usr/lib/libgdk_pixbuf-2.0.so.0: undefined symbol: g_task_set_static_name

As of 2024-05-23, the fix for that `g_task_set_static_name` error is (source for solution in Arch forum):

$ LD_PRELOAD="/usr/lib/libgio-2.0.so /usr/lib/libgmodule-2.0.so" /opt/resolve/bin/resolve


Another workaround is to remove a few libs from Resolve's directory. This way Resolve will be forced to use system libs, not the ones packaged with it. See also the AUR comments for the packages and the PKGBUILD itself for more information on this trick.

/opt/resolve/libs/libglib-2.0.so*
/opt/resolve/libs/libgio-2.0.so*
/opt/resolve/libs/libgmodule-2.0.so*


See also

  • Post on Davinci Resolve forum with tested configurations.
  • PDF with list of Supported Formats and Codecs for DR 18
  • Here you can check if BMD released a document for a newer version, see in the Latest Support Notes column. Also, it lists the whats new notes for each release.
  • ResolveDevDoc - unofficial documentation for scripting. Formatted with readthedocs and is prettier to read and search than in original txt file.
  • pydavinci - a reworked resolve scripting api