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-1238GitHub issuePublicReceived

sunshine package built without CUDA support — NVENC silently unavailable for all NVIDIA users

Reported by dev-Blaze · filed Aug 30, 2026Closed upstream on 2026-10-09 by the bot omarchybot, as a duplicate (target not recorded).

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

sunshine package built without CUDA support — NVENC silently unavailable for all NVIDIA usersrevision 1 · captured 2026-09-28 21:24 UTC via poll

What happened

The omarchy/sunshine repo package (2026.516.143833-4) is built without Sunshine's CUDA support. On NVIDIA systems the NVENC encoder probe therefore always fails, and Sunshine silently falls back to software x264:

Info: Trying encoder [nvenc]
Info: Creating encoder [h264_nvenc]
Error: Couldn't scale frame: Invalid argument
Info: Encoder [nvenc] failed
...
Info: Found H.264 encoder: libx264 [software]

Every NVIDIA user on Omarchy gets CPU-only H.264 streaming (no NVENC H.264/HEVC/AV1), with no visible error — just degraded quality and high CPU load.

Why

Without SUNSHINE_ENABLE_CUDA, Sunshine feeds NVENC through its software conversion path (avcodec_software_encode_device_t::convert), and that sws_scale_frame() call fails with EINVAL against system ffmpeg 9's rewritten swscale. The GPU/driver are fine — ffmpeg -c:v hevc_nvenc / av1_nvenc work directly on the same machine.

Evidence the package lacks CUDA:

  • strings /usr/bin/sunshine (omarchy build) contains no CUDA kernel fatbins (sm_*) and none of Sunshine's cuda_t/NvFBC platform code — only ffmpeg's generic dl_fn->cuda_dl loader strings.
  • The official LizardByte build of the same version contains fatbins for sm_75 sm_80 sm_86 sm_87 sm_89 sm_90 sm_100 sm_103 sm_110 sm_120 sm_121 plus cuda::cuda_t / cuda::nvfbc. Installing it (AUR sunshine-bin) immediately fixes the probe on the same system:
Info: Found H.264 encoder: h264_nvenc [nvenc]
Info: Found HEVC encoder: hevc_nvenc [nvenc]
Info: Found AV1 encoder: av1_nvenc [nvenc]

Root cause in packaging

The omarchy package appears to rebuild the AUR sunshine PKGBUILD (version/pkgrel match exactly). That PKGBUILD defaults to _use_cuda=detect, which enables CUDA only if the `cuda` package is installed on the build machine, and otherwise silently passes -DSUNSHINE_ENABLE_CUDA=OFF -DCUDA_FAIL_ON_MISSING=OFF. The Omarchy build farm evidently doesn't have the CUDA toolkit installed.

Suggested fix

Install cuda on the builder (or set _use_cuda=true so the build fails loudly instead of silently degrading). Runtime users don't need the toolkit — the built binary only needs the driver's libcuda.so.1.

Steps to reproduce

  1. Omarchy with an NVIDIA GPU (proprietary/open driver installed, working nvidia-smi).
  2. Install sunshine from the omarchy repo, start the service.
  3. Journal shows the probe sequence above ending in Found H.264 encoder: libx264 [software].
  4. strings /usr/bin/sunshine | grep -E 'sm_[0-9]+' → empty.

Related

  • PR #9011 (default NVIDIA to capture = kms) addresses a capture-side issue but won't restore NVENC — the encode-side software-convert path is what fails, regardless of capture backend. Also note capture = kms cannot capture Hyprland headless outputs, so it would break virtual-display streaming setups if applied unconditionally.

System details

  • Omarchy 4.0.1, kernel 7.1.9-arch1-2
  • GPU: NVIDIA GeForce RTX 5070 Ti, driver 610.57.04 (nvidia-open-dkms), CUDA UMD 13.3
  • ffmpeg 2:9.0.1-1, sunshine 2026.516.143833-4 (omarchy repo)
View raw text
## What happened

The `omarchy/sunshine` repo package (2026.516.143833-4) is built **without Sunshine's CUDA support**. On NVIDIA systems the NVENC encoder probe therefore always fails, and Sunshine silently falls back to software x264:

```
Info: Trying encoder [nvenc]
Info: Creating encoder [h264_nvenc]
Error: Couldn't scale frame: Invalid argument
Info: Encoder [nvenc] failed
...
Info: Found H.264 encoder: libx264 [software]
```

Every NVIDIA user on Omarchy gets CPU-only H.264 streaming (no NVENC H.264/HEVC/AV1), with no visible error — just degraded quality and high CPU load.

## Why

Without `SUNSHINE_ENABLE_CUDA`, Sunshine feeds NVENC through its software conversion path (`avcodec_software_encode_device_t::convert`), and that `sws_scale_frame()` call fails with EINVAL against system ffmpeg 9's rewritten swscale. The GPU/driver are fine — `ffmpeg -c:v hevc_nvenc` / `av1_nvenc` work directly on the same machine.

Evidence the package lacks CUDA:

* `strings /usr/bin/sunshine` (omarchy build) contains **no CUDA kernel fatbins** (`sm_*`) and none of Sunshine's `cuda_t`/NvFBC platform code — only ffmpeg's generic `dl_fn->cuda_dl` loader strings.
* The official LizardByte build of the *same version* contains fatbins for `sm_75 sm_80 sm_86 sm_87 sm_89 sm_90 sm_100 sm_103 sm_110 sm_120 sm_121` plus `cuda::cuda_t` / `cuda::nvfbc`. Installing it (AUR `sunshine-bin`) immediately fixes the probe on the same system:

```
Info: Found H.264 encoder: h264_nvenc [nvenc]
Info: Found HEVC encoder: hevc_nvenc [nvenc]
Info: Found AV1 encoder: av1_nvenc [nvenc]
```

## Root cause in packaging

The omarchy package appears to rebuild the AUR `sunshine` PKGBUILD (version/pkgrel match exactly). That PKGBUILD defaults to `_use_cuda=detect`, which enables CUDA **only if the `cuda` package is installed on the build machine**, and otherwise silently passes `-DSUNSHINE_ENABLE_CUDA=OFF -DCUDA_FAIL_ON_MISSING=OFF`. The Omarchy build farm evidently doesn't have the CUDA toolkit installed.

## Suggested fix

Install `cuda` on the builder (or set `_use_cuda=true` so the build fails loudly instead of silently degrading). Runtime users don't need the toolkit — the built binary only needs the driver's `libcuda.so.1`.

## Steps to reproduce

1. Omarchy with an NVIDIA GPU (proprietary/open driver installed, working `nvidia-smi`).
2. Install `sunshine` from the omarchy repo, start the service.
3. Journal shows the probe sequence above ending in `Found H.264 encoder: libx264 [software]`.
4. `strings /usr/bin/sunshine | grep -E 'sm_[0-9]+'` → empty.

## Related

* PR #9011 (default NVIDIA to `capture = kms`) addresses a capture-side issue but won't restore NVENC — the encode-side software-convert path is what fails, regardless of capture backend. Also note `capture = kms` cannot capture Hyprland headless outputs, so it would break virtual-display streaming setups if applied unconditionally.

## System details

* Omarchy 4.0.1, kernel 7.1.9-arch1-2
* GPU: NVIDIA GeForce RTX 5070 Ti, driver 610.57.04 (nvidia-open-dkms), CUDA UMD 13.3
* ffmpeg 2:9.0.1-1, sunshine 2026.516.143833-4 (omarchy repo)

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.