Hacker News .hnnew | past | comments | ask | show | jobs | submitlogin

On the specific topic here, fractional scaling, macOS gets it disastrously wrong, only supporting downscaling, which means that it’s impossible to get pixel-perfect output on fractional scales, which are the norm on most of their devices. I seriously can’t comprehend how they ended up going that way, given that they were the ones in a position to force developers to get things right, far more than Windows, but no, they just didn’t even try. On the contrary, Windows has worked with fractional scaling from the start of its high-DPI story, and although it did take a while to get it right in all circumstances (I think the last pieces came in 2017, with DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 and also incidentally GDI scaling to automatically improve most older, DPI-unaware apps), it’s been robust since on all but a few badly-made apps that claim DPI-awareness but actually lack it (and you can forcibly change how they behave if necessary).


macOS got it "wrong" because their own displays were all integer scaled. They don't care about the rest.


They used to be, but not anymore. However, they switched, because even if not pixel perfect, it is good enough. At sizes used by their laptop, most users are not going to notice that it is not pixel perfect.

The system they use gets them something: 1) apps do not have bother with fractional scaling, so they do not get to bother about rounding errors and 2) they get to use output encoder for scaling, which is essentially for free, instead of GPU, which will take its toll on power consumption and GPU load.


Except that they haven't been setting their displays to integer scale for a few generations now.


I don’t have any Apple hardware, but my recollection from seeing those who do a few years back (including when they first introduced the Retina displays) is that all of these laptops were defaulting to non-integer scales, and at least a little uncomfortable at 2×.


Indeed. On an external screen that would be most comfortable at about 125% MacOS will only offer you 100%.


This has nothing to do with device resolutions. This is about does one want UI elements to be scaled anywhere between 1x and 2x.


I don't really know how HiDPI is implemented on Windows, but I do know some very popular VST plugins (music production software, which usually uses its own GUI and scaling integration) which still doesn't scale properly in popular plugin hosts, so you can't really talk about "getting it right in all circumstances".

This problem doesn't exist on Mac where the OS is kind of responsible for all the scaling. So, between MacOS's approach which may be not pixel-perfect but "just works" and Windows's one which usually works perfectly but still has problems in certain categories of software, I'll probably choose the former.


That’s a different matter.

Firstly, your VST situation will be that the plugin, the host or both are not implementing things correctly: one or the other has claimed DPI-awareness inappropriately. That’s on them.

Secondly, you misunderstand the relative situations of macOS and Windows. The difference is not to do with their approach to scaling, but rather their approach to supporting old software, and the diversity of hardware. Social factors, not technical. Apple could absolutely have done fractional scaling, and it’d have worked just fine for them; the present situation in how well high-DPI stuff works across platforms would be indistinguishable: macOS would still have basically nothing broken, and Windows would still have quite a few widely-used pieces of software getting it wrong. Here’s why:

Apple developers are very probably using a high-DPI screen, so they’ll immediately notice if anything is off. Apple is controlling, and anything published through their store will have any obviously-bad scaling noticed and rejected. Apple doesn’t care about long-term compatibility, so earlier software that didn’t implement scaling properly largely just doesn’t run at all any more.

Windows developers are probably using a low-DPI screen, and are publishing to a largely unmoderated platform that still has software from decades ago run just fine.

Functionally there’s no difference between fractional and integral scaling in how well software will support them. If you try to implement things completely from scratch, fractional will be a little harder because you have more rounding decisions, but in practice you always use a library that takes care of that for you (normally a full widget toolkit, but VST plugins will often use something somewhat lower-level but still above the physical-pixels layer except when you deliberately opt for fine control), so there is literally no difference at all. The difference in how well things work on these different platforms is purely other factors.


> …but no, they just didn’t even try.

They did¹, but it turns out the simpler solution just works, and that pixel-perfect purity doesn't matter because your eyes can't resolve HiDPI pixels any more than they can resolve the grid of subpixels that they're made of.

¹ https://hackernews.hn/item?id=29071882


Thank you for saying this. With Apple being the "UX" and "media users" company, this level of negligence and apathy shocks me so much I keep on self-doubting macOS actually works the way I remember. It's crazy, just crazy.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: