Files
SubMiner/backlog/tasks/task-282 - Force-launcher-managed-mpv-to-an-explicit-X11-GPU-context-when-X11-fallback-is-active.md

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
codex
2026-04-05 21:14 2026-04-05 21:15
bug
linux
launcher
mpv
overlay
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=x11 is 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

  1. Add focused launcher tests for explicit X11 GPU-context arg selection, unsupported Wayland auto fallback, and Hyprland/Sway no-regression cases.
  2. Introduce a shared launcher helper that decides when mpv should be forced onto X11 fallback mode.
  3. Use that helper to append explicit mpv X11 GPU-context args in both normal and detached idle mpv launch paths.
  4. 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.