Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA 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.
Apple Silicon: installing the AVD decoder breaks all video in google-chrome (solid green)
Reported by thijsbrilleman · filed Sep 17, 2026Closed upstream on 2026-10-08 by the bot omarchybot, as not planned.
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
System details
Apple M1 Max (MacBookPro18,1 / J316s), Omarchy 4.0.2-2, linux-asahi 7.1.13.asahi3-1, mesa 26.1.8-1, google-chrome 152.0.7977.82-1, chromium 153.0.8010.36-1
What's wrong?
install/hardware/apple/video-decode.sh installs avd-fw and libva-v4l2_request-avd to expose the Apple Video Decoder (AVD) through VA-API. After the update that first ran this, every H.264 and VP9 video in google-chrome shows one frame and then turns solid green.
The script's comment states the decoder is out of reach of browsers:
mpv, ffmpeg and GStreamer benefit; Chromium on Arch Linux ARM has VA-API compiled out of the build, so it cannot use this today.
That holds for the chromium package — I tested it, it plays correctly. It does not hold for google-chrome, which ships with VA-API enabled and picks up AVD with no environment variable set:
libva-v4l2request: detected 1 Request API decoder
libva-v4l2request: decoding h264 via /dev/video0 [avd] (media /dev/media0)
ERROR:media/base/status.h:573] DecoderStatus::0The underlying driver bug is AsahiLinux/linux#628 — avd_init_job() does an order-10 (16 MB at this machine's 16K page size) kmalloc per decode job, which fails once memory is fragmented:
ThreadPoolSingl: page allocation failure: order:10, mode:0x40dc0(GFP_KERNEL|__GFP_ZERO|__GFP_COMP)
__kmalloc_noprof+0x36c/0x448
avd_init_job+0x2c/0x54 [apple_avd]
avd_h264_run+0x918/0x18f4 [apple_avd]The decode job never runs and Chrome is handed a zeroed frame. An all-zero YUV buffer converts to RGB(0,135,0), which is the green on screen; I measured RGB(0,124,0) from a screenshot.
Reproduce
A solid-colour clip makes it measurable rather than subjective — magenta means working, green means broken:
ffmpeg -y -f lavfi -i "color=c=#FF00FF:s=640x480:d=10,format=yuv420p" \
-c:v libx264 -pix_fmt yuv420p /tmp/magenta.mp4
google-chrome-stable --new-window file:///tmp/magenta.mp4Not a GPU problem
Worth stating, because it presents like one:
- It survives
--disable-gpuand--use-angle=swiftshader. A flag that turns the GPU off entirely does not fix it, which rules out Mesa, the Asahi driver and Hyprland. - VP8 plays correctly while H.264 and VP9 fail, because AVD has no VP8 path.
Workaround
--disable-accelerated-video-decode in ~/.config/chrome-flags.conf.
Suggested fix
Omarchy installs the decoder on the assumption that no browser can reach it, and one can. Either ship that flag in the default chrome-flags.conf on Apple Silicon, or hold off installing the stack until the kernel bug is fixed.
Removing the packages by hand is not a durable fix for users: video-decode.sh re-adds them whenever they are missing, so the next omarchy update brings the problem back. It would also take the decoder away from mpv, ffmpeg and GStreamer, which drive it without trouble.
View raw text
### System details Apple M1 Max (MacBookPro18,1 / J316s), Omarchy 4.0.2-2, linux-asahi 7.1.13.asahi3-1, mesa 26.1.8-1, google-chrome 152.0.7977.82-1, chromium 153.0.8010.36-1 ### What's wrong? `install/hardware/apple/video-decode.sh` installs `avd-fw` and `libva-v4l2_request-avd` to expose the Apple Video Decoder (AVD) through VA-API. After the update that first ran this, every H.264 and VP9 video in **google-chrome** shows one frame and then turns solid green. The script's comment states the decoder is out of reach of browsers: > mpv, ffmpeg and GStreamer benefit; Chromium on Arch Linux ARM has VA-API compiled out of the build, so it cannot use this today. That holds for the `chromium` package — I tested it, it plays correctly. It does **not** hold for `google-chrome`, which ships with VA-API enabled and picks up AVD with no environment variable set: ``` libva-v4l2request: detected 1 Request API decoder libva-v4l2request: decoding h264 via /dev/video0 [avd] (media /dev/media0) ERROR:media/base/status.h:573] DecoderStatus::0 ``` The underlying driver bug is AsahiLinux/linux#628 — `avd_init_job()` does an order-10 (16 MB at this machine's 16K page size) `kmalloc` per decode job, which fails once memory is fragmented: ``` ThreadPoolSingl: page allocation failure: order:10, mode:0x40dc0(GFP_KERNEL|__GFP_ZERO|__GFP_COMP) __kmalloc_noprof+0x36c/0x448 avd_init_job+0x2c/0x54 [apple_avd] avd_h264_run+0x918/0x18f4 [apple_avd] ``` The decode job never runs and Chrome is handed a zeroed frame. An all-zero YUV buffer converts to RGB(0,135,0), which is the green on screen; I measured RGB(0,124,0) from a screenshot. ### Reproduce A solid-colour clip makes it measurable rather than subjective — magenta means working, green means broken: ```bash ffmpeg -y -f lavfi -i "color=c=#FF00FF:s=640x480:d=10,format=yuv420p" \ -c:v libx264 -pix_fmt yuv420p /tmp/magenta.mp4 google-chrome-stable --new-window file:///tmp/magenta.mp4 ``` ### Not a GPU problem Worth stating, because it presents like one: - It survives `--disable-gpu` and `--use-angle=swiftshader`. A flag that turns the GPU off entirely does not fix it, which rules out Mesa, the Asahi driver and Hyprland. - **VP8 plays correctly** while H.264 and VP9 fail, because AVD has no VP8 path. ### Workaround `--disable-accelerated-video-decode` in `~/.config/chrome-flags.conf`. ### Suggested fix Omarchy installs the decoder on the assumption that no browser can reach it, and one can. Either ship that flag in the default `chrome-flags.conf` on Apple Silicon, or hold off installing the stack until the kernel bug is fixed. Removing the packages by hand is not a durable fix for users: `video-decode.sh` re-adds them whenever they are missing, so the next `omarchy update` brings the problem back. It would also take the decoder away from mpv, ffmpeg and GStreamer, which drive it without trouble.
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.