Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-4442GitHub issuePublicReceived

Chromium/Electron apps fail GPU-process init on pre-Maxwell-2 NVIDIA: libva-nvidia-driver is incompatible system-wide

Reported by sbmthakur · filed May 31, 2026Closed upstream on 2026-06-06 by its own reporter sbmthakur. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

Chromium/Electron apps fail GPU-process init on pre-Maxwell-2 NVIDIA: libva-nvidia-driver is incompatible system-widerevision 1 · captured 2026-10-04 11:56 UTC via poll

Chromium/Electron apps fail GPU-process init on pre-Maxwell-2 NVIDIA: libva-nvidia-driver is incompatible system-wide

System

  • Omarchy 3.8.0 (git 0c6bd192)
  • GPU: NVIDIA Quadro M1000M (GM107, Maxwell 1st-gen), single GPU, no iGPU
  • nvidia-open-dkms / nvidia-utils 595.71.05, libva-nvidia-driver 0.0.16

Symptom

Every Chromium/Electron app on the system fails to initialize a GPU process. Shared signature:

libva error: /usr/lib/dri/nvidia_drv_video.so init failed
ERROR: media/gpu/vaapi/vaapi_wrapper.cc: vaInitialize failed: operation failed
ERROR: components/viz/service/main/viz_main_impl.cc: Exiting GPU process due to errors during initialization

Whether the app dies vs. falls back to software depends only on the bundled Electron version, older builds treat GPU-process loss as fatal.

Reproduction (this hardware, no flags)

AppVA-API failGPU process isn't usable (fatal)App survives?
1Password 8✓✓ (+ core dump)NO — crashes
Spotify (CEF)—*✓NO — crashes
VS Code✓yes (no GPU accel)
Signal Desktop✓yes
Obsidian✓yes
Chromium 145✓yes
Bitwarden Desktop——yes — different signature: MESA: error: ZINK: vkEnumeratePhysicalDevices failed (VK_ERROR_INITIALIZATION_FAILED) → Exiting GPU process

\* Spotify hits the fatal without the VA-API line (different libva path).

Root cause

libva-nvidia-driver (NVDEC-backed VAAPI shim) requires Maxwell 2nd-generation (GM20x) or newer; GM107 is unsupported, so vaInitialize always fails and Chromium tears down the GPU process. Bitwarden bypasses VA-API but hits a second wall on Mesa's ZINK Vulkan path, which is also broken on this card.

Why existing issues don't cover this

  • #3899 (closed at 3.4.0) is Chromium-browser-focused and its chromium-flags.conf workaround doesn't reach apps shipped outside pacman (1Password, Spotify, VS Code, Signal, Obsidian, Bitwarden all ignore it).
  • #4901 (hybrid Intel+NVIDIA) fixes a cross-GPU DMA-BUF mismatch by forcing Chromium onto Mesa/Intel EGL, cannot apply on pure-NVIDIA boxes, no iGPU to fall back to.

Workaround (per-app only)

Pass --disable-features=VaapiVideoDecoder,VaapiVideoEncoder (or --disable-gpu) by copying the app's .desktop to ~/.local/share/applications/ and editing Exec=. There is no global Electron hook, so this has to be repeated per app.

Proposed Omarchy-level fixes

  1. Don't install `libva-nvidia-driver` on pre-GM20x NVIDIA cards (detect via lspci / nvidia-smi --query-gpu=name, then skip or IgnorePkg). The package is actively harmful on this hardware, not just unused.
  2. Ship a global env hint (e.g. LIBVA_DRIVER_NAME=none in /etc/environment or a Hyprland envs.conf snippet) on affected NVIDIA generations, so Chromium/Electron stop probing the broken path.
  3. Maintain `.desktop` overrides for the closed-source Electron apps shipped outside pacman (1Password, Spotify), mirroring the existing chromium-flags.conf pattern.

Related: #3899, #4901.

View raw text
# Chromium/Electron apps fail GPU-process init on pre-Maxwell-2 NVIDIA: `libva-nvidia-driver` is incompatible system-wide

## System

- Omarchy 3.8.0 (git `0c6bd192`)
- GPU: NVIDIA Quadro M1000M (**GM107, Maxwell 1st-gen**), single GPU, no iGPU
- `nvidia-open-dkms` / `nvidia-utils` 595.71.05, `libva-nvidia-driver` 0.0.16

## Symptom

Every Chromium/Electron app on the system fails to initialize a GPU process. Shared signature:

```
libva error: /usr/lib/dri/nvidia_drv_video.so init failed
ERROR: media/gpu/vaapi/vaapi_wrapper.cc: vaInitialize failed: operation failed
ERROR: components/viz/service/main/viz_main_impl.cc: Exiting GPU process due to errors during initialization
```

Whether the app **dies** vs. **falls back to software** depends only on the bundled Electron version, older builds treat GPU-process loss as fatal.

## Reproduction (this hardware, no flags)

| App | VA-API fail | `GPU process isn't usable` (fatal) | App survives? |
|---|---|---|---|
| **1Password 8** | ✓ | ✓ (+ core dump) | **NO — crashes** |
| **Spotify** (CEF) | —* | ✓ | **NO — crashes** |
| VS Code | ✓ | | yes (no GPU accel) |
| Signal Desktop | ✓ | | yes |
| Obsidian | ✓ | | yes |
| Chromium 145 | ✓ | | yes |
| Bitwarden Desktop | — | — | yes — different signature: `MESA: error: ZINK: vkEnumeratePhysicalDevices failed (VK_ERROR_INITIALIZATION_FAILED)` → `Exiting GPU process` |

\* Spotify hits the fatal without the VA-API line (different libva path).

## Root cause

`libva-nvidia-driver` (NVDEC-backed VAAPI shim) requires Maxwell **2nd-generation** (GM20x) or newer; GM107 is unsupported, so `vaInitialize` always fails and Chromium tears down the GPU process. Bitwarden bypasses VA-API but hits a second wall on Mesa's ZINK Vulkan path, which is also broken on this card.

## Why existing issues don't cover this

- **#3899** (closed at 3.4.0) is Chromium-browser-focused and its `chromium-flags.conf` workaround doesn't reach apps shipped outside pacman (1Password, Spotify, VS Code, Signal, Obsidian, Bitwarden all ignore it).
- **#4901** (hybrid Intel+NVIDIA) fixes a cross-GPU DMA-BUF mismatch by forcing Chromium onto Mesa/Intel EGL, **cannot apply on pure-NVIDIA boxes**, no iGPU to fall back to.

## Workaround (per-app only)

Pass `--disable-features=VaapiVideoDecoder,VaapiVideoEncoder` (or `--disable-gpu`) by copying the app's `.desktop` to `~/.local/share/applications/` and editing `Exec=`. There is no global Electron hook, so this has to be repeated per app.

## Proposed Omarchy-level fixes

1. **Don't install `libva-nvidia-driver` on pre-GM20x NVIDIA cards** (detect via `lspci` / `nvidia-smi --query-gpu=name`, then skip or `IgnorePkg`). The package is actively harmful on this hardware, not just unused.
2. **Ship a global env hint** (e.g. `LIBVA_DRIVER_NAME=none` in `/etc/environment` or a Hyprland `envs.conf` snippet) on affected NVIDIA generations, so Chromium/Electron stop probing the broken path.
3. **Maintain `.desktop` overrides** for the closed-source Electron apps shipped outside pacman (1Password, Spotify), mirroring the existing `chromium-flags.conf` pattern.

Related: #3899, #4901.

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.