Chainik wrote:> Why does SVP need to downscale in the first place?
it doesn't "need" but "can"
to reduce CPU load at the first place
so, the question is simple:
1. when we watch 3840x2160 video on 3840x2160 screen it renders pixel-per-pixel, obviously
2. what about watching 3840x2160 video on 1920x1080 "Retina" screen? will it be rendered pixel-per-pixel OR it will be scaled down to 1920x1080 by mpv and then processed by some magical internal OS X scaler?
When the selected (logical) resolution is 1920x1080 then the physical resolution is 3840x2400 (because 16:10) and mpv would not (and could not) create a window larger than that. It would then scale the video source to this window if necessary (which it isn't, in this case). I'm... 99% confident.
This must be tested on a 15" machine, mine is 13" though. Do you have me a 2560x1440/1600 video, then I can test this with a 1280x800/2560x1600 logical/physical resolution.
However, I assume it is the same for images and for an image of size 2560x1440 on a screen set to 1280x800/2560x1600 logical/physical it works the way I just outlined:
→ mpv IMG_7499.jpg -v --fs | egrep '\d+x\d+'
[...]
vd: Decoder format: 2560x1440 yuv440p bt.601/full CL=mpeg1/jpeg
vf: [in] 2560x1440 yuv440p bt.601/full CL=mpeg1/jpeg
vf: [out] 2560x1440 yuv440p bt.601/full CL=mpeg1/jpeg
cplayer: VO: [opengl-hq] 2560x1440 yuv440p
vo/opengl-hq: Resize: 2560x1600
vo/opengl-hq: Window size: 2560x1600
vo/opengl-hq: Video source: 2560x1440 (72:72)
vo/opengl-hq: Video display: (0, 0) 2560x1440 -> (0, 80) 2560x1440
vo/opengl-hq: Testing user-set FBO format (0x805b)
vo/opengl-hq: Create FBO: 16x16 -> 16x16
vo/opengl-hq: Texture for plane 0: 2560x1440
vo/opengl-hq: Texture for plane 1: 2560x720
vo/opengl-hq: Texture for plane 2: 2560x720
vo/opengl-hq: Resize: 2560x1600
vo/opengl-hq: Window size: 2560x1600
vo/opengl-hq: Video source: 2560x1440 (72:72)
vo/opengl-hq: Video display: (0, 0) 2560x1440 -> (0, 80) 2560x1440
[...]
Please note that this is only the case because the width is with 2560 already the maximum size for a window at this resolution (as in your case it would be with 3840). If possible, mpv would create a window of size 5120x2880 for an image of size 2560x1440 since the backing scale factor is 2 (in all current retina macs). This follows Apple's recommendations for developers -- at least that's what I was told, I'm not an OSX developer.
The magical internal scaler is the window server btw. This is also the reason why I can "set" my display to a resolution of 3360x2100 which is physically not possible with my display. It is scaled down by the window server before sent to the display.