# 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
This installer is [MIT](LICENSE) — © 2026 Gavin Nugent / NO SIGNAL.
### Third-party tools
The installer does not bundle or redistribute any of the projects below; it fetches each from upstream at install time, and they remain under their own licenses.
| Tool | License | How it's used |
|------|---------|---------------|
| [davinci-resolve-checker](https://github.com/Ashark/davinci-resolve-checker) | GPL-3.0 | `git clone`d to `~/.local/share/davinci-resolve-checker` and symlinked into `~/.local/bin/` |
| [davincibox](https://github.com/zelikos/davincibox) | Apache-2.0 | Technique reference only (patchelf RPATH method, OpenCL conflict list) — no code copied |
| DaVinci Resolve | Blackmagic EULA | User downloads the ZIP themselves into `~/Downloads/`; the installer extracts and patches the local copy. Not redistributed. |