3.3 KiB
id, title, status, assignee, created_date, updated_date, labels, dependencies, priority
| id | title | status | assignee | created_date | updated_date | labels | dependencies | priority | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TASK-282 | Force launcher-managed mpv to an explicit X11 GPU context when X11 fallback is active | Done |
|
2026-04-05 21:14 | 2026-04-05 21:15 |
|
high |
Description
Follow-up to the launcher X11 fallback work: on Plasma Wayland, stripping Wayland env vars alone is not sufficient for launcher-managed mpv. mpv can still fail GPU initialization under the default video output path (vo/gpu-next) unless an explicit X11 GPU context is selected. Update launcher-managed mpv startup so X11 fallback mode also appends explicit mpv options for an X11 GPU context, while preserving supported Hyprland/Sway Wayland flows.
Acceptance Criteria
- #1 Launcher-managed mpv appends explicit X11 GPU context args when explicit
--backend=x11is used on Linux. - #2 Launcher-managed mpv appends the same explicit X11 GPU context args for Linux auto-mode fallback on unsupported Wayland desktops.
- #3 Supported Hyprland/Sway Wayland flows do not receive the forced X11 GPU context args.
- #4 Regression tests cover the forced-X11 mpv arg selection.
Implementation Plan
- Add focused launcher tests for explicit X11 GPU-context arg selection, unsupported Wayland auto fallback, and Hyprland/Sway no-regression cases.
- Introduce a shared launcher helper that decides when mpv should be forced onto X11 fallback mode.
- Use that helper to append explicit mpv X11 GPU-context args in both normal and detached idle mpv launch paths.
- Run focused launcher tests plus TypeScript verification, then record remaining runtime follow-up guidance.
Implementation Notes
User runtime log showed vo/gpu-next failing with Failed initializing any suitable GPU context! under forced-X11 playback, which indicates env forcing alone was insufficient. Selected --gpu-context=x11egl,x11 as the explicit mpv fallback: prefer X11/EGL, with GLX as a compatibility fallback.
Verification: bun test launcher/mpv.test.ts --test-name-pattern "buildMpv(Env|BackendArgs)" passed. bun run tsc --noEmit passed.
Final Summary
Added explicit mpv backend args for launcher-managed X11 fallback mode. The launcher now uses a shared shouldForceX11MpvBackend decision for both env rewriting and mpv arg selection, so explicit --backend=x11 and unsupported Linux Wayland auto fallback both append --gpu-context=x11egl,x11 while still stripping Wayland env hints. This preserves supported Hyprland/Sway native Wayland flows and makes the X11 fallback more explicit for mpv's GPU initialization path.
Wired the new X11 GPU-context args into both the normal playback launch path and the detached idle mpv launch path. Added focused regression coverage for explicit x11, Plasma-style unsupported Wayland auto fallback, and Hyprland/Sway no-regression behavior. Verification completed with bun test launcher/mpv.test.ts --test-name-pattern "buildMpv(Env|BackendArgs)" and bun run tsc --noEmit.