/mpv/ - mpv General

>hwdec=auto switches to opengl
No it doesn't. There is no such thing as an "opengl" hwdec. On Windows, mpv supports using DXVA2 or D3D11 for hardware decoding. Both hwdecs can share the image with any opengl backend without copying through system memory, but it can't do this with vo=direct3d (because you're not supposed to use vo=direct3d.)

>Removing vo=direct3d is the same, it will still use direct3d, that's what Fraps indicates.
This is probably because it's using the ANGLE backend, which is OpenGL ES3 running on top of D3D11. This will be much faster than vo=direct3d on D3D11 capable hardware, and it can use zero-copy hardware decoding.

It's not actually important whether it's using Direct3D or not. What's important is that you're not using vo=direct3d. vo=direct3d activates very old unmaintained codepaths in mpv. Chances are, when you're using it, mpv will be doing most of its rendering in software on the CPU. If you use the default settings (vo=opengl,) mpv can do much more in hardware on the GPU.

Note: If the default settings really do perform badly for you, you can change the OpenGL backend with opengl-backend=dxinterop or opengl-backend=win. The former performs better for some people, but it's not the default because it doesn't work with switchable graphics. The latter is a traditional OpenGL rendering path and it will show up as OpenGL in Fraps.

>hwdec=dxva2-copy
Removing this switches to software (Using cuda-copy improves a bit further over dxva2)

>vo=direct3d
Removing this switches to opengl

I got them mixed up there. With defaults (these removed) CPU usage skyrockets to 55-60%

Did you add hwdec=auto?

Yes, I tried removing it, it's the same as auto

Removing the hwdec option is not the same as hwdec=auto, it's the same as hwdec=off.

That actually fixes it o.O At least on a video that I tried. What is it using? Does MPV has a log or some on-screen details about what (or rather how) it's playing?

Yep. If you launch mpv from a command prompt with --v it will print a bunch of stuff about what it's doing. You can also set the log-file option to something like log-file=log.txt if you don't want to use the command prompt. Since you're on Windows 7, it's probably using D3D11 through ANGLE and DXVA2 (non-copyback.)

There is a user-script for on-screen stats, but I don't think it says anything useful about the rendering backend (it's more about file-related statistics, though it also has rendering times):
github.com/Argon-/mpv-stats

You can sort of figure out that whether it's using hardware decoding from that script from the pixel format. If it's using DXVA2, the pixel format will be dxva2_vld. If it's using CPU copyback, the pixel format will be nv12.

Thanks, I will try it

That's shows me nothing, when I said render settings I meant which upscalers and shaders you here using for each player.