Skip to content

vo: officially deprecate vo_vaapi#17430

Merged
Dudemanguy merged 1 commit intompv-player:masterfrom
Dudemanguy:nuke-bad-vos
Mar 30, 2026
Merged

vo: officially deprecate vo_vaapi#17430
Dudemanguy merged 1 commit intompv-player:masterfrom
Dudemanguy:nuke-bad-vos

Conversation

@Dudemanguy
Copy link
Copy Markdown
Member

@Dudemanguy Dudemanguy commented Feb 19, 2026

Using vo_vaapi has already been heavily discouraged for years since years since 5c313f1. More importantly, it's just fundamentally broken on most hardware, serves no real purpose, and well we shouldn't just ship broken stuff. vo_vaapi largely only ever worked correctly on some intel hardware. The VO relies on certain API calls that other vendors never implemented so things like the OSD and subtitles are just never going to work. This largely has no reason to exist either. If you're looking for efficient playback, you can use vo_gpu/vo_gpu_next in dumb mode with vaapi decoding. You can also use vo_dmabuf_wayland with vaapi as well to avoid even more GPU to CPU copies and theoretically be even more efficient.

@CounterPillow
Copy link
Copy Markdown
Contributor

ach ja ze MVP dewelopper removing ze best VO zis must be a konspirazee I will blog about zis injustice ja

@Dudemanguy Dudemanguy changed the title vo: officially deprecate vo_vaapi and vo_vdpau vo: officially deprecate vo_vaapi Feb 19, 2026
@dancingmirrors
Copy link
Copy Markdown

The legacy intel-vaapi-driver doesn't have vaPutSurface so I don't think this has worked for a very long time.

@Dudemanguy
Copy link
Copy Markdown
Member Author

I don't own a single device where this works correctly.

Using vo_vaapi has already been heavily discouraged for years since
years since 5c313f1. More importantly,
it's just fundamentally broken on most hardware, serves no real purpose,
and well we shouldn't just ship broken stuff. vo_vaapi largely only ever
worked correctly on some intel hardware. The VO relies on certain API
calls that other vendors never implemented so things like the OSD and
subtitles are just never going to work. This largely has no reason to
exist either. If you're looking for efficient playback, you can use
vo_gpu/vo_gpu_next in dumb mode with vaapi decoding. You can also use
vo_dmabuf_wayland with vaapi as well to avoid even more GPU to CPU
copies and theoretically be even more efficient.
@kasper93
Copy link
Copy Markdown
Member

I don't own a single device where this works correctly.

@sfan5 said on IRC, that it works fine for him, except some mouse handling bug.

<sfan5> mouse handling is broken for me in vo_vaapi when resized but other than that it appears to work
<sfan5> that is including OSC and OSD

@Dudemanguy
Copy link
Copy Markdown
Member Author

This uses the generic x11 event code for mouse handling.

@sfan5
Copy link
Copy Markdown
Member

sfan5 commented Feb 20, 2026

The bug is this: Resize the window to be 2x, then the OSC will show not when the mouse is at the bottom but half-way to the window height.
Since vo_vaapi does not scale the "window surface" (always renders at video res) it probably has to manually correct for this.

Copy link
Copy Markdown
Member

@kasper93 kasper93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't mind the change, although removing features which doesn't cause much maintenance is not great for people who still uses them.

@Dudemanguy Dudemanguy merged commit 90985bb into mpv-player:master Mar 30, 2026
30 checks passed
@Dudemanguy Dudemanguy deleted the nuke-bad-vos branch March 30, 2026 00:35
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.

6 participants