avibrazil / RDM

Easily set Mac Retina display to higher unsupported resolutions
4.13k stars 352 forks source link

retina mode wrong dimensions #26

Closed fanckush closed 5 years ago

fanckush commented 5 years ago

I have a 2560 x 1440 Dell external monitor. when I select a retina mode (ex: 1920x1080 ⚡️) from the RDM menu, everything looks sharp and dow scaled to 1080p but when I take a screenshot or a screen recording I realised that the resolution is actually 3840 × 2160 instead of 2560 x 1440!

How can I solve this?

Argon- commented 5 years ago

You can't. This is normal and the way how HiDPI works on OSX. When you have a "looks like x" resolution (in your case 1920x1080) then OSX renders an image twice that size: 3840x2160. This image is then scaled down to the actual native resolution of your screen (2560x1440).

This makes HiDPI on OSX look nice but computationally very taxing.

fanckush commented 5 years ago

But when running on the native MacBook display which happens to also have a resolution of 2560×1440. when i use the default HiDPI mode my screenshots and screen recordings have the expected resolution (2560×1440) not 3840×2160

Am I missing something? Another Question: Does this mean that running my dell monitor at max res actually consumes less resources than with HiDPI?

Argon- commented 5 years ago

This all depends on the specific resolutions and relations. Using RDM I can set my 4K display to either a normal 4K resolution (nativ, no scaling applied) or a "HiDPI" 4K resolution which then actually renders to 4320x7680 and scales it down to 4K again for displaying. The latter setting produces screenshots in 4320x7680.

Another Question: Does this mean that running my dell monitor at max res actually consumes less resources than with HiDPI?

Yes. Well, assuming that "max res" is the native resolution. Because the scaling factor in OSX is 2, it allows you to "run" displays at twice the native resolution. That's the reason I can set the resolution for my 4K display to 4320x7680 despite this not making much sense. But this only means that OSX renders to 4320x7680. It scales the image down to the display's respective native resolution afterwards. So, when you want to preserve energy/resources: choose the non-HiDPI native resolution of a display (because HiDPI always implies scaling to twice the selected resolution). When you still want to have HiDPI then go for the resolution that is exactly half the display's native resolution, so that it doesn't unnecessarily render to a bigger surface (bigger than the display's native resolution) and therefore doesn't need to scale this down to native resolution. E.g. on a 4K display choose 1920x1080 HiDPI because the doubling will turn it into 4K and no additional scaling down step is needed then.

( for the sake of simplification we assume 4K = 2 FullHD, so actually UltraHD)

fanckush commented 5 years ago

Been a while. so you are saying that macOS has a scaling factor of x2 and it cannot be changed to be 1.5 for example I wonder if native monitors (retina displays) work differently. because whatever retina resolution I choose for the internal monitor it always renders to the native resolution.. which does not seem to be the case with external monitors

Argon- commented 5 years ago

I wonder if native monitors (retina displays) work differently. because whatever retina resolution I choose for the internal monitor it always renders to the native resolution..

How did you test this? My MBP's internal screen works just like my external 4K display.

fanckush commented 5 years ago

I just did a full test. and I am wrong. For whatever reason I had the impression it worked differently on the internal monitors Thanks for the help.

Screenshot 2019-04-01 at 11 42 01