basecamp/omarchy

Screen recording fails on hybrid Intel+NVIDIA systems due to missing VAAPI drivers – should be detected automatically

Open

#2706 opened on Oct 22, 2025

View on GitHub
 (6 comments) (12 reactions) (0 assignees)Shell (22,948 stars) (2,295 forks)batch import
bughelp wanted

Description

When trying to use screen recording on a fresh Omarchy installation, the recording failed silently — no video file was saved. After checking the logs, I found the following message:

gsr_get_supported_video_codecs_vaapi: vaInitialize failed

This error means VAAPI wasn’t initialized correctly because the proper driver was missing. And according to assada's comment, the solution depends on the GPU vendor:

For anyone getting gsr_get_supported_video_codecs_vaapi: vaInitialize failed this means vaapi isn’t properly set up.

AMD: sudo pacman -S libva-mesa-driver mesa-vdpau Intel: sudo pacman -S intel-media-driver NVIDIA: sudo pacman -S libva-nvidia-driver

Originally posted by @assada in #2628

My laptop has both an Intel integrated GPU and an NVIDIA GPU. Even after installing libva-nvidia-driver, the issue persisted — it was only resolved after I also installed the Intel VAAPI driver (intel-media-driver).

So, the root cause seems to be that VAAPI tries to initialize the first available driver (often the wrong one) in hybrid systems. Without both drivers installed, it fails silently.

Expected behavior:

Omarchy (or the underlying recording component) should detect when VAAPI initialization fails and show a clear message explaining the issue.

Ideally, it could suggest which driver to install based on GPU detection (via lspci or similar).

Why this matters:

While not a core bug in Omarchy itself, this issue can affect many users — especially those on laptops with hybrid GPUs — right after a clean install. Improving the detection or error message would greatly improve UX and prevent confusion.

Possible solution

A simple way to improve UX could be to add a small VAAPI check in the screen recording script before starting the recorder:

check_vaapi() {
  if ! vainfo >/dev/null 2>&1; then
    gpu=$(lspci | grep -E "VGA|3D" | awk -F: '{print $3}' | tr -d ' ')
    msg="VAAPI initialization failed. Please install the appropriate driver:\n"
    msg+="\nAMD: sudo pacman -S libva-mesa-driver mesa-vdpau"
    msg+="\nIntel: sudo pacman -S intel-media-driver"
    msg+="\nNVIDIA: sudo pacman -S libva-nvidia-driver"
    msg+="\n\nDetected GPU: ${gpu:-unknown}"
    notify-send "Screen recording error" "$msg" -u critical -t 10000
    exit 1
  fi
}

This would prevent the silent failure and guide the user to install the correct driver automatically.

Contributor guide