Skip to content

feat: OpenGL→wgpu zero-copy interop, hardware decoding settings, and automated Windows libmpv vendoring - #662

Open
Lolle2000la wants to merge 17 commits into
v3.0from
feat/use-gl-interop-for-mpv
Open

feat: OpenGL→wgpu zero-copy interop, hardware decoding settings, and automated Windows libmpv vendoring#662
Lolle2000la wants to merge 17 commits into
v3.0from
feat/use-gl-interop-for-mpv

Conversation

@Lolle2000la

Copy link
Copy Markdown
Owner

Summary

This PR brings together several related improvements around video playback and the Windows build experience.

OpenGL → wgpu zero-copy interop (iced-mpv)

  • Adds a new GPU-native video rendering path that keeps decoded frames on the GPU (GL → D3D12/Vulkan/Metal texture sharing via wgpu-hal), avoiding the CPU round-trip of the previous software-render path.
  • Falls back to the existing software path when the interop handle is unavailable.

Hardware decoding & zero-copy settings (media-sort-core, media-sort-gui)

  • New Enable Hardware Rendering toggle: lets mpv use GPU-accelerated decoders (DXVA2, VideoToolbox, VAAPI). On by default, can be turned off if playback is glitchy.
  • New Zero-Copy GPU Transfer toggle (Windows/Linux only): enables the GL→wgpu interop path above. macOS is disabled with an explanatory notice. On by default.
  • Simplified user-facing copy in the settings panel and the website docs.

Automated Windows libmpv/ffmpeg vendoring

  • mpv-utils/build.rs now downloads and stages libmpv-2.dll + ffmpeg.exe from Lolle2000la/mpv-winbuild on Windows automatically, keyed on a pinned DEFAULT_MPV_WINBUILD_TAG constant.
  • Gated behind the vendor-windows feature (off by default in mpv-utils and iced-mpv, auto-enabled for media-sort-gui and benchmarks on Windows via [target.'cfg(windows)'.dependencies]).
  • Removed the manual Setup libmpv Link Libraries (Windows) CI steps from ci.yml and release.yml — the build script handles it.
  • bump-mpv-winbuild.yml updated to bump DEFAULT_MPV_WINBUILD_TAG in build.rs instead of patching the workflow files.
  • .cargo/config.toml: SYSTEM_DEPS_BUILD_INTERNAL=always scoped to Windows targets only so Linux/macOS continue using system pkg-config.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant