# DaVinci Resolve - AMD Omarchy ## Video Guide

Install [DaVinci Resolve](https://www.blackmagicdesign.com/products/davinciresolve) on [Omarchy](https://omarchy.com) (Arch Linux + Hyprland) on AMD GPUs — RDNA 2, RDNA 3, and the new RDNA 4 cards (RX 9060 / 9070 / 9080). The script does a **manual install to `/opt/resolve`** (no AUR PKGBUILD), pins **ROCm 7.1.1** from the Arch Linux Archive (current 7.2.x is broken with Resolve), patches every ELF's RPATH, fixes audio (DeckLink → ALSA + snd-aloop + PipeWire bridge), and writes a launcher with the right `HSA_OVERRIDE` / `DRI_PRIME` / `MESA_VK_DEVICE_SELECT` env vars baked in. For the full design rationale, root-cause analysis, and recovery procedures see **[NOTES.md](NOTES.md)**. ## Requirements - **OS**: [Omarchy](https://omarchy.com) (Arch Linux) or any Arch-based distro - **GPU**: AMD RDNA 2 / 3 / 4 (see [GPU support](#gpu-support) below) - **Compositor**: Hyprland (optional — script adds window rules if detected) - **DaVinci Resolve ZIP** in `~/Downloads/` — Blackmagic gates this behind a registration form, no direct link ## Quick Start ```bash # 1. Download DaVinci Resolve from blackmagicdesign.com into ~/Downloads/ # 2. Clone and run: git clone https://git.no-signal.uk/nosignal/DaVinci-Resolve-AMD-Omarchy.git cd DaVinci-Resolve-AMD-Omarchy chmod +x install-davinci-resolve.sh ./install-davinci-resolve.sh ``` The script scans your system, shows what it found, asks before making changes, and is idempotent — safe to re-run any time. ## Why ROCm 7.1.1 (and not the current 7.2.x) ROCm 7.2.x's OpenCL stack breaks DaVinci Resolve on **every** AMD GPU — `clCreateContext` either fails outright or hangs on the Color page. ROCm 7.1.1 is the last known-good release. The script downloads 7.1.1 from the [Arch Linux Archive](https://archive.archlinux.org/packages/), installs via `pacman -U`, and adds an `IgnorePkg` line to `/etc/pacman.conf` so `pacman -Syu` won't quietly upgrade you back into the broken stack. References: - [ROCm/ROCm#5982](https://github.com/ROCm/ROCm/issues/5982) — upstream issue, still open - [CachyOS thread](https://discuss.cachyos.org/t/davinci-resolve-amd-rocm-fails-without-downgrade/28036) — community recipe - [NixOS#481483](https://github.com/NixOS/nixpkgs/issues/481483) — RDNA4-specific report When ROCm 7.3+ ships and is verified working, the pin can be lifted — see NOTES.md. ## What it does 1. **System scan** — kernel, GPU(s) with gfx target + PCI bus address, audio stack, display server, existing Resolve install 2. **ROCm 7.1.1 pinned install** — downloads from Arch Linux Archive, `pacman -U`, adds `IgnorePkg` to `/etc/pacman.conf`. Aborts on partial-downgrade failure (won't silently leave you on a broken stack) 3. **Manual Resolve install** — `unzip` → `.run` AppImage → `--appimage-extract` → `rsync` to `/opt/resolve` → `patchelf --set-rpath` every ELF 4. **glib-family symlink swap** — replaces all five bundled glib libs (`libglib-2.0`, `libgio-2.0`, `libgmodule-2.0`, `libgobject-2.0`, `libgthread-2.0`) with system symlinks. Bundled `libc++` / `libc++abi` are deliberately **kept** (Resolve was compiled against specific ABI versions; replacing them crashes on launch) 5. **Audio fixes** — DeckLink → ALSA backend, snd-aloop kernel module, PipeWire loopback bridge, wireplumber rule keeping aloop off the default-sink rotation 6. **Hyprland window rules** — v3 syntax (not deprecated `windowrulev2`), cosmetic-only on the modal dialogs to avoid the trapped-cursor problem 7. **Launcher** at `~/.local/bin/davinci-resolve` with `HSA_OVERRIDE_GFX_VERSION`, `ROCR_VISIBLE_DEVICES`, `DRI_PRIME=pci-` (explicit tag, not `=1` — see below), and `MESA_VK_DEVICE_SELECT` baked in 8. **Stale-config wipe** — clears `~/.local/share/DaVinciResolve/{configs,logs}` if it sees a known crash marker, and unconditionally on fresh installs ## Hybrid GPU note (Intel iGPU + AMD dGPU) On hybrid laptops where the monitor is wired to the AMD discrete card, Mesa already defaults OpenGL to the AMD card. Setting `DRI_PRIME=1` in this scenario actually flips OpenGL to the **Intel** iGPU — Resolve then has OpenGL on Intel and OpenCL on AMD, CL/GL interop fails, and Resolve hangs on the Color page. The launcher uses the **explicit PCI tag form** (`DRI_PRIME=pci-0000_BB_DD_F`) derived from the AMD card's `lspci` ID. `switcherooctl` is **not** used — it internally sets `DRI_PRIME=1` and inherits the same flip bug. ## GPU support The script auto-detects the gfx target and applies the right HSA override unattended. ### Confirmed working (tested directly) | Card | gfx target | HSA value | |------|-----------|-----------| | **RX 9060 / 9060 XT** (Navi 44) | gfx1200 | `12.0.0` | ### Should work — natively supported by ROCm 7.1.1 | Card | gfx target | HSA value | |------|-----------|-----------| | **RX 9070 / 9070 XT** (Navi 48) | gfx1201 | `12.0.1` | | **RX 7900 / 7900 XT / 7900 XTX** (Navi 31) | gfx1100 | `11.0.0` | | **RX 7700 XT / 7800 XT** (Navi 32) | gfx1101 | `11.0.1` | | **RX 6800 / 6800 XT / 6900 XT / 6950 XT** (Navi 21) | gfx1030 | `10.3.0` | ### Should work via HSA spoof — not natively supported, spoofed to nearest target | Card | Real gfx | Spoofs as | HSA value | |------|----------|-----------|-----------| | **RX 7600 / 7600 XT** (Navi 33) | gfx1102 | gfx1100 | `11.0.0` | | **RX 6700 / 6750 XT** (Navi 22) | gfx1031 | gfx1030 | `10.3.0` | | **RX 6600 / 6650 XT** (Navi 23) | gfx1032 | gfx1030 | `10.3.0` | | **RX 6500 XT / 6400** (Navi 24) | gfx1034 | gfx1030 | `10.3.0` | ### Not supported — ROCm 7.x dropped these before our pinned baseline - **RX 5000 series** (RDNA 1) - **Vega** - **Polaris and earlier** (rusticl-only path, this script isn't tuned for it) ## Free-version codec limitation DaVinci Resolve Free on Linux can't decode H.264/H.265. Convert media first: ```bash resolve-convert video.mp4 # writes video_dnxhr.mov (DNxHR) ``` ## Environment variables | Var | Effect | |-----|--------| | `RESOLVE_NO_ALOOP=1` | Skip the snd-aloop / PipeWire bridge audio setup (use this if you have a real audio interface) | ## Uninstall The script does **not** track itself with pacman. To remove cleanly: ```bash sudo rm -rf /opt/resolve sudo rm -f /usr/share/applications/{DaVinciResolve,blackmagicraw-*}.desktop sudo rm -f /usr/lib/udev/rules.d/{99-BlackmagicDevices,99-ResolveKeyboardHID,99-DavinciPanel}.rules rm -f ~/.local/bin/davinci-resolve ~/.local/bin/davinci-resolve-rusticl ~/.local/bin/davinci-resolve-igpu rm -f ~/.local/bin/resolve-convert ~/.local/bin/davinci-resolve-checker # Optional — also remove user data (DELETES ALL PROJECTS) rm -rf ~/.local/share/DaVinciResolve ``` To lift the ROCm pin: ```bash sudo sed -i '/^IgnorePkg.*rocm-/d' /etc/pacman.conf sudo pacman -Syu ``` ## Troubleshooting If first launch fails or Resolve hangs on the Color page, **[NOTES.md](NOTES.md)** has the full recovery playbook — quick sanity checks at the bottom let you verify the OpenCL stack, launcher env vars, and PipeWire bridge in a few lines of paste. Common quick checks: ```bash clinfo -l # should show your AMD gfx target pacman -Q rocm-core rocm-opencl-runtime # should show 7.1.1 grep IgnorePkg /etc/pacman.conf # should pin the rocm packages grep -E 'DRI_PRIME|HSA_OVERRIDE' ~/.local/bin/davinci-resolve # DRI_PRIME must be pci-... form, NEVER =1 ``` ## Credits - [Omarchy](https://omarchy.com) — the Arch + Hyprland distribution this targets - [davincibox](https://github.com/zelikos/davincibox) — patchelf RPATH technique, OpenCL conflict references - [davinci-resolve-checker](https://github.com/Ashark/davinci-resolve-checker) — diagnostic tool, installed by this script - [Arch Wiki — DaVinci Resolve](https://wiki.archlinux.org/title/DaVinci_Resolve) — community documentation ## License Provided as-is for the Omarchy community.