Total rewrite of the installer mirroring the proven NVIDIA-Open install path,
with two new root-cause fixes for AMD on hybrid systems.
Installer (v3.0 -> v4.1):
- Pin ROCm 7.1.1 from Arch Linux Archive as the OpenCL provider; current
7.2.x is broken with DaVinci Resolve (clCreateContext fails / Color page
hangs on every AMD card). Adds IgnorePkg to /etc/pacman.conf and aborts
if pacman -U partial-downgrades.
- DRI_PRIME explicit PCI-tag pin in launcher (DRI_PRIME=pci-0000_BB_DD_F)
instead of DRI_PRIME=1, which on Intel+AMD hybrids flips OpenGL to the
iGPU and breaks CL/GL interop. switcherooctl branch removed (same bug).
- MESA_VK_DEVICE_SELECT pin added as defense-in-depth for Vulkan.
- Full glib-family symlink swap: all five of libglib-2.0, libgio-2.0,
libgmodule-2.0, libgobject-2.0, libgthread-2.0 (was three; mismatch
caused latent segfaults on signal emit / type registration).
- Manual install to /opt/resolve via ZIP -> .run -> appimage-extract ->
rsync, with patchelf --set-rpath on every ELF (replaces AUR PKGBUILD
approach).
- Auto-wipe stale ~/.local/share/DaVinciResolve/{configs,logs} on fresh
installs and whenever known crash markers appear in ResolveDebug.txt.
- Generation-aware gfx target detection (gfx1030/1100/1101/1102/1200/1201)
with auto HSA_OVERRIDE_GFX_VERSION for non-natively-supported cards.
- Hyprland windowrule v3 syntax; dropped stay_focused (trapped-cursor in
modals); removed duplicate user-level .desktop entry; removed unused
Studio USB-dongle udev rule.
Docs:
- Rewrite README to match v4.1 reality (manual /opt/resolve install,
ROCm pinning rationale, hybrid-GPU PCI-tag note, refreshed GPU support
tiers, corrected uninstall steps).
- Add NOTES.md with full root-cause analysis, currently-pinned package
versions, recovery playbook, and quick sanity checks.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| install-davinci-resolve.sh | ||
| NOTES.md | ||
| README.md | ||
DaVinci Resolve - AMD Omarchy
Video Guide
Install DaVinci Resolve on Omarchy (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.
Requirements
- OS: Omarchy (Arch Linux) or any Arch-based distro
- GPU: AMD RDNA 2 / 3 / 4 (see 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
# 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, 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 — upstream issue, still open
- CachyOS thread — community recipe
- NixOS#481483 — RDNA4-specific report
When ROCm 7.3+ ships and is verified working, the pin can be lifted — see NOTES.md.
What it does
- System scan — kernel, GPU(s) with gfx target + PCI bus address, audio stack, display server, existing Resolve install
- ROCm 7.1.1 pinned install — downloads from Arch Linux Archive,
pacman -U, addsIgnorePkgto/etc/pacman.conf. Aborts on partial-downgrade failure (won't silently leave you on a broken stack) - Manual Resolve install —
unzip→.runAppImage →--appimage-extract→rsyncto/opt/resolve→patchelf --set-rpathevery ELF - 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. Bundledlibc++/libc++abiare deliberately kept (Resolve was compiled against specific ABI versions; replacing them crashes on launch) - Audio fixes — DeckLink → ALSA backend, snd-aloop kernel module, PipeWire loopback bridge, wireplumber rule keeping aloop off the default-sink rotation
- Hyprland window rules — v3 syntax (not deprecated
windowrulev2), cosmetic-only on the modal dialogs to avoid the trapped-cursor problem - Launcher at
~/.local/bin/davinci-resolvewithHSA_OVERRIDE_GFX_VERSION,ROCR_VISIBLE_DEVICES,DRI_PRIME=pci-<bus>(explicit tag, not=1— see below), andMESA_VK_DEVICE_SELECTbaked in - 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:
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:
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:
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 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:
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 — the Arch + Hyprland distribution this targets
- davincibox — patchelf RPATH technique
- Arch Wiki — DaVinci Resolve — community documentation
- Sheridan Computers — libc++ ABI rollback writeup
- Blackmagic Design — DaVinci Resolve
- davinci-resolve-checker — diagnostic tool
License
Provided as-is for the Omarchy community.