mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
27.83k stars 2.87k forks source link

MPV scale even when both display and video have the same resolution #5727

Closed Funodav closed 1 year ago

Funodav commented 6 years ago

mpv version and platform

mpv 0.28.0-432-gec625266c8 on Windows 10 using d3d11

Reproduction steps

Change the --scale filter to anything other than bilinear and play a video in native resolution

Expected behavior

mpv should not using scaling when both input and output are the same resolution, like when you set it to bilinear.

Actual behavior

mpv is using bilinear "for nothing" increasing gpu usage.

Gpu load

--scale=bilinear : 20% / native res. : 14%

--scale=spline36 : 32% / native res. : 21%

Log file

https://pastebin.com/m9AMsyLt

mpv scale

haasn commented 6 years ago

This is a known issue. Fixing it requires either a lot of ugly work-arounds or a rewrite of the core shader system / video rendering logic. (I decided to go with the latter, but it's not done)

haasn commented 6 years ago

Actually, in this specific case it might be possible to work around the issue slightly more easily by allowing the automatic dumb mode fallback if, for that particular frame, no scaling is required.

Hrxn commented 6 years ago

--scaler-resizes-only?

Or is that why bilinear is used?

0xBRM commented 6 years ago

You can use profiles as a workaround for the time being.

Dexusan commented 3 years ago

Any word on this being fixed? I noticed that if any type of scale (clean profile with only dscale for example) or shaders are applied it also sets scale to bilinear at native playback

butterw commented 3 years ago

From what I understand:

haasn commented 2 years ago

Any word on this being fixed? I noticed that if any type of scale (clean profile with only dscale for example) or shaders are applied it also sets scale to bilinear at native playback

Forgot to follow up on this. It's fixed with --vo=gpu-next

Hrxn commented 2 years ago

Good news, thanks!

pflanzenandi commented 1 year ago

Any word on this being fixed? I noticed that if any type of scale (clean profile with only dscale for example) or shaders are applied it also sets scale to bilinear at native playback

Forgot to follow up on this. It's fixed with --vo=gpu-next

Is there any other option to fix this problem? Because with --vo=gpu-next mpv won't start in my case.