DaVinci Resolve
Black Magic Davinci Resolve is a program for video editing, color effects and A/V post production. For FOSS alternatives you might want to look into Shotcut and Kdenlive.
Installation
There are two versions of Black Magic Davinci Resolve on NixOS.
*davinci-resolve
(the free version) *davinci-resolve-studio
(the paid version)
For Linux, Davinci Resolve Free has only partial h.264 and h.265 support due to licensing restrictions. AAC audio is also not supported in the Free version.
Drivers
DaVinci Resolve requires a GPU that supports either OpenCL 1.2 or CUDA 11.
AMD
There are multiple options to run Davinci Resolve with AMD cards, but it strongly depends on the generation of your AMD card. Also make sure to read the AMD GPU page (this wiki) and the Davinci Resolve entry on Archwiki.
GPU Generation | Series | DaVinci Resolve Compatibility | ROCm Support | AMDGPU Support | Rusticl Support | Vulkan Support | Confirmed |
---|---|---|---|---|---|---|---|
Pre-GCN & Early GCN | Radeon HD 5000/6000/7000 Series | Limited (OpenCL 1.1) | Not supported | Experimental | No | No | ❌ No reports |
GCN 4th Gen (Polaris) | Radeon RX 400/500 Series | Moderate (OpenCL 1.2) | Supported up to ROCm 5.6 | Yes | Yes | Vulkan 1.0 | |
GCN 5th Gen (Vega) | Radeon RX Vega Series | Moderate (OpenCL 1.2) | Supported up to ROCm 5.6 | Yes | Yes | Vulkan 1.1 | |
RDNA (Navi) | Radeon RX 5000 Series | Good (OpenCL 1.2) | Supported | Yes | Yes | Vulkan 1.1 | ✅ Confirmed |
RDNA2 (Navi 2x) | Radeon RX 6000 Series | Good (OpenCL 1.2) | Supported | Yes | Yes | Vulkan 1.2 | ✅ Confirmed |
RDNA3 (Navi 3x) | Radeon RX 7000 Series | Good (OpenCL 1.2) | Supported | Yes | Yes | Vulkan 1.3 | ✅ Confirmed |
A cheap and good card to look out for are the Radeon RX Vega Series which are supported with the amdgpu driver. Better for davinci are cards with RDNA (Radeon RX 5000 or newer).
There is also the proprietary amdgpu-pro driver which has mixed results. The free drivers (amdgpu) are better.
Contrary to the Arch Wiki, DaVinci Resolve seems to work (on an RX 570) without switching to proprietary GPU drivers.
Intel
DaVinci Resolve has partial support for Intel GPUs on Linux. Audio playback works on the Fairlight page, but the video timeline does not work. To add Intel support, add the following setting to your configuration.nix
:
hardware.graphics = {
enable = true;
driSupport32Bit = true;
extraPackages = with pkgs; [
intel-compute-runtime
];
};
X11 or Wayland
Davinci Resolve can run on both X11 and on Wayland.
If you want to maximize your chances you can try and start davinci in the following way to check for ROCM or Rusticl support
ROC_ENABLE_PRE_VEGA=1 RUSTICL_ENABLE=amdgpu,amdgpu-pro,radv,radeon DRI_PRIME=1 QT_QPA_PLATFORM=xcb davinci-resolve
Troubleshooting
Resolve crashes/fails to start
If it doesn't launch, and crashes when running davinci-resolve
, then try running it as root.
If it didn't help, you can view the error log at ~/.local/share/DaVinciResolve/logs/ResolveDebug.txt
to pinpoint the issue.
If you can spot a line similar to Cannot mix incompatible Qt library (5.15.12) with this library (5.15.2)
, and have configured QT options in your NixOS configuration (qt.enable = true;
), try disabling them.
Cannot import video file
DaVinci Resolve's free edition does not come with H264/H265 support. You need to convert your video to a supported video format, like DNxHD/DNxHR and Cineform. you can do this with ffmpeg
. With FFmpeg installed, assuming your video is called video.mp4
, you can use the following command to convert:
ffmpeg -i video.mp4 -c:v dnxhd -profile:v dnxhr_hq -c:a pcm_s16le -pix_fmt yuv422p output.mov
This command will convert your video to a DNxHR video and your audio to uncompressed 16bit PCM. For 24bit PCM, use -c:a pcm_s24le
instead.
You can know more about DNxHD/HR profiles with the command ffmpeg -h encoder=dnxhd
Resolve also supports Cineform and a few other formats. For Cineform encoding, use the cfhd
encoder.
Unsupported GPU Processing Mode
If DaVinci Resolve shows a popup asking to review GPU configuration in preferences, and if there is no GPU detected in "Memory and GPU" in preferences, you can try the following in your configuration.nix
:
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
rocmPackages.clr.icd
];
};