Hardware acceleration (VAAPI) for video decoding not enabled by default

I just noticed that mpv video player I was using did not enable hardware video decoding by default and was using software decoding. This was causing high CPU usage. I noticed this because VLC was noticably better. I have a intel gpu and adding hwaccel=vaapi to the config worked fine.

But this made me paranoid. If mpv was not using VAAPI by default for video decoding, other software might be similarly affected. Is there a system level control of this? Or do I have to check this for each application? I figured that there must be an easy way.

AMD user?

:thinking:

HW video acceleration does not fare well on all systems, it is not enabled by default to ensure that any user has working video decoding system with stock settings.

That’s an upstream mpv decision. You’re supposed to override this behavior (as you did) if you want to force mpv to use hardware acceleration. You can also use hwdec=auto

It’s application-by-application. VLC, for example, defaults to “auto”. mpv defaults to “none”.

There are system-wide things that will allow your GPU to use hardware acceleration (or even increase overall performance), yet if the application doesn’t take advantage of it, the system-wide changes are meaningless. They’re necessary, but they don’t dictate what each application uses as its default.

As always: the arch wiki is a great source of information
https://wiki.archlinux.org/title/mpv#Hardware_video_acceleration