Remix.run Logo
bsimpson 2 days ago

Wouldn't HiDPI be 1080p@2x? Is that still available?

tom_ 2 days ago | parent | next [-]

Yeah. I don't get it. If you've got a 3840x2160 display, intended use on macOS as a 1920x1080@2x display, what is the advantage of using a 7680x4320 buffer? Everything is drawn at twice the width and height - and then gets scaled down to half the width and height. Is there actually a good reason to do this?

(I use my M4 Mac with 4K displays, and 5120x2880 (2560x1440@2x) buffers. That sort of thing does work, though if you sit closer than I do then you can see the non-integer scaling. Last time I tried a 3840x2160 buffer (1920x1080@2x), that worked. I am still on macOS Sequoia though.)

kalleboo 2 days ago | parent | next [-]

> what is the advantage of using a 7680x4320 buffer? Everything is drawn at twice the width and height - and then gets scaled down to half the width and height. Is there actually a good reason to do this?

Text rendering looks noticeably better rendered at 2x and scaled down. Apple's 1x font antialiasing is not ideal.

Especially in Catalyst/SwiftUI apps that often don't bother to align drawing to round points, Apple's HiDPI downscaling has some magic in it that their regular text rendering doesn't.

halapro 2 days ago | parent | next [-]

Feels like a huge power loss just to get slightly better text. You slow rendering down 4x for this

wpm 2 days ago | parent [-]

Yes but Apple got to drop subpixel anti-aliasing support because this workaround is "good enough" for all of their built-in displays and overpriced mediocre external ones, so we all get to suffer having to render 4x the pixels than we need.

2 days ago | parent [-]
[deleted]
metabagel 2 days ago | parent | prev | next [-]

So, how do I actually set this for my Mac, or is this something which each application may or may not do?

kalleboo a day ago | parent [-]

There are third party tools like BetterDisplay that unlock it as an option https://github.com/waydabber/BetterDisplay

tonyedgecombe 2 days ago | parent | prev [-]

Apple’s 1x font antialiasing is not ideal because it no longer exists.

kalleboo a day ago | parent [-]

They still use antialiasing, just not sub-pixel antialiasing.

TheTon 2 days ago | parent | prev [-]

Yes 1920x1080@2x absolutely works on M4. I use this mode all day every day.

smcleod 2 days ago | parent [-]

Yeah that would work, that's just 2k HiDPI, not 4k HiDPI.

armadyl 2 days ago | parent | prev | next [-]

Yeah I'm not sure what the point of this article is really or am I probably misunderstanding something? There's no such thing as 4K HiDPI on a 4K monitor. That would be 2160p @ 2x on an 8K monitor. 4K at 100% scaling looks terrible in general across every OS.

TheCoreh 2 days ago | parent | prev [-]

Yeah if I understand it correctly, this is more like 2160p@2x which is... unusual?

TheTon 2 days ago | parent [-]

Yes, I would actually be surprised to learn that mode is available on any system. I’ve never seen that anywhere, though I only have a M1 Pro and an M4 Pro (and various Intel Macs).

You’re rendering to a framebuffer exactly 2x the size of your display and then scaling it down by exactly half to the physical display? Why not just use a 1x mode then!? The 1.75x limit of framebuffer to physical screen size makes perfect sense. Any more than that and you should just use the 1x mode, it will look better and perform way better!

wpm 2 days ago | parent | next [-]

Because 1x mode has no subpixel antialiasing and thus looks absolutely terrible.

I have a 32:9 Ultrawide I would love to use on macOS but the text looks awful on it.

TheTon 2 days ago | parent [-]

Then complain about that. That would make a much more sensible blog post and discussion. Asking for a crazy workaround to a sane problem isn't a great way to get good results, especially with Apple. Beyond the obvious performance pitfall, this scale up to scale down approach will also destroy the appearance of some controls. There is some UI that aims for 1px lines on hidpi modes that will get lost if you do this. It's hardly a perfect mode.

mmcnl a day ago | parent | next [-]

Scaling up before scaling down is a sensible approach, especially when you want to run at a slightly lower scaled resolution. It worked fine up to M3 Pro. So whatever you think of it, it's something that worked fine for many years and suddenly doesn't anymore on the newer MacBooks.

wpm 2 days ago | parent | prev [-]

The crazy workaround only needs to be done because of what Apple did probably around a decade ago and probably already heard a bunch of crying about and didn't care. No one removed subpixel antialiasing on their own, we do this bullshit because Apple forced us to to make text look halfway decent.

TheTon 2 days ago | parent [-]

I can tell you that inside Apple, they have something called the standard question, and it goes something like this: “What are you really trying to do?”

If you haven’t personally filed a bug report at feedbackassistant.apple.com, I recommend that you do so. Title it something like “Poor text quality on LoDPI display”, file it in the Displays component, and in the description explain what you’re seeing. Here’s the critical part: you want to attach images showing what looks bad and what looks better, and why the current behavior is a regression and since when (earlier macOS versions for subpixel AA, earlier GPUs for 2x 1x mode). If possible, use the same display, but get an image of historical macOS when it had subpixel AA, macOS with this 2x 1x mode, Windows 11, and then current macOS at the standard 1x mode. I’m not sure screenshots will capture it, you’ll probably need to use a camera.

I know how they think at Apple. If you come at them with a bug written like OP’s blog, they are going to say it behaves as designed. To get them to fix something, you have to be descriptive about what the real problem actually is: the text rendering looks bad. Then you have to explain what used to work and what you’ve tried and bring receipts (the images). Don’t write a novel; write the shortest bug that fully describes the real problem, includes all of the relevant information including macOS versions, hardware info, and display model, and the evidence of the problem, but don’t include a bunch of emotional text or extraneous information (like SkyLight framework reverse engineering stuff).

Now you might say, “I’m not Apple’s free QA”, and you’ll be right. But, consider that you’re spending this time complaining about a problem online and you’ve spent good money on a display you’d like to use and it’s not working the way you want. Fair or not, you care about the outcome, and at this point you might as well take my advice and file a strong bug to make your case. Dupes help, OP should file one too, but be descriptive about the real problem, not proscriptive about bringing back the crazy workaround that they likely intentionally disabled because on the face of it, it makes no sense.

I do know that they read user bugs in the Displays component, because I have filed a few in there recently and they got fixed and they followed up with me about where they were fixed.

smcleod 2 days ago | parent | prev [-]

Without it - running 2160p@1x results in very low quality text rendering on macOS.