Skip to content

Drop OpenGL and Metal MPV renderer variants #97

Description

@Drvolks

Context

The MPV-based player currently ships multiple renderer backends: OpenGL, Metal, and PixelBuffer (the latter being the one already marked "Recommended" in the tvOS settings UI). The OpenGL and Metal variants are dead weight — they're never the default, they're not the recommended path, and on Apple platforms Metal is already what the system would use underneath anyway.

Proposed change

Remove the OpenGL and Metal MPV renderer variants. Keep only the PixelBuffer renderer (which renders directly to a Metal surface and supports native PiP — that's the one we already recommend in settings).

Why

  • Single renderer path = smaller surface area for bugs, easier upgrades of libmpv.
  • The settings UI already has a "Renderer" picker with PixelBuffer marked Recommended — picking anything else is a footgun the user has no reason to use.
  • On tvOS/iOS, OpenGL is deprecated by Apple. Carrying an OpenGL code path forward is technical debt with no upside.
  • Metal-as-MPV-renderer duplicates work the system layer already does; PixelBuffer is the path that uses Metal correctly (direct surface + native PiP).

Scope

  • Remove renderer option from the MPV player config / settings UI.
  • Drop the OpenGL and Metal renderer code paths from the player layer.
  • Keep PixelBuffer as the sole renderer.
  • Update any docs / build flags that reference the removed variants.

Out of scope

  • Android / other platforms that may legitimately need a different renderer — confirm whether they also use MPV and need a fallback before merging.
  • Renderer perf work — this is purely a removal/cleanup, not a rewrite.

Acceptance

  • Only PixelBuffer remains selectable in the player settings.
  • Player builds and runs on tvOS / iOS with no renderer chooser surfaced to the user.
  • No references to the removed variants remain in code, build configs, or docs.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions