New Apple Silicon M4 and M5 HiDPI Limitation on 4K External Displays
smcleod.net
smcleod.net
Apple support tortured me with all kinds of diagnostics, with WontFix few weeks later. Wrote email and it got fixed in Sonoma :)
https://egpu.io/forums/mac-setup/4k144hz-no-longer-available...
Fucking with DP 1.4 was how they managed to drive the ProDisplay XDR.
If your monitor could downgrade to DP 1.2 you got better refresh rates than 1.4 (mine could do 95Hz SDR, 60Hz HDR, but if my monitor said it could only do 1.2, that went to 120/95 on Big Sur and above, when they could do 144Hz HDR with Catalina).
I would be absolutely unsurprised if their fix was to lie to the monitor in negotiation if it was non-Apple and say that the GPU only supported 1.2, and further, I would be also unsurprised to learn that this is related to the current issue.
People at the time were trying to figure out the math of "How did Apple manage to make 6K HDR work over that bandwidth?" and the answer was simply "by completely fucking the DP 1.4 DSC spec" (it was broken in Big Sur, which was released at the same time). The ProDisplay XDR worked great (for added irony, I ended up with one about a year later), but at the cost of Apple saying "we don't care how much money you've spent on your display hardware if you didn't spend it with us" (which tracks perfectly with, I think, Craig Federighi spending so much time and effort shooting down iMessage on Android and RCS for a long time saying, quote, "It would remove obstacles towards iPhone families being able to give their kids Android phones").
You could always try calling, too! I cold called Marc Benioff at Salesforce and he actually picked up the phone.
What if that was all it took.
https://www.techemails.com/p/bill-gates-tries-to-install-mov...
I emailed Cook, mostly just to shout into the void. Within a week I got a call from Apple Corporate, they gave me an appointment the next day and my hardware issue was suddenly solved over-night.
I got nowhere with Apple Support and emailed "Tim" and had a very helpful executive team member reach out and arrange to get things fixed and see it through to resolution.
This was also going from Sequoia to Tahoe.
┌─┐┌────┐┌─┐
│ ││ ││ │
└─┘└────┘└─┘
It creates some wonky math and requires plenty of dock and cable shenanigans and unlocking resolutions above 8k via BD. It's the third "monitor" where it gets tricky with the M2 pro especially at these resolutions.Just like the excel world championship I would find a macos ricing/window tiling competition equally enthralling. You read articles like the OP and at some point all you can do is laugh because lord (Cook) knows you've cried.
I like the three-column separate monitor layout because I have hotkeys, primarily driven by my mouse but also usable keyboard-only where I can easily switch between monitors with `⌘+`` which moves my cursor between them. I can select whichever monitor I want and put my mouse to it, and I can switch to any workspace on any monitor quickly. I also have hotkeys that sync three workspace numbers across monitors, so switching between them switches all AeroSpace workspaces on all three monitors simultaneously. If I have five projects going, I'd have the terminal on the left, Linear and other communication tools on the right in accordion mode with AeroSpace, and I can use my mouse or keyboard exclusively to find exactly what I'm looking for almost as fast as I think of it. I spend zero time on window management or organization now so it makes it thoughtless to use.
If I'm just using the monitor's native resolution there's no real way to do portals — having two apps open as sticky and only switching a portion of the monitor space to a different app while keeping the other sticky. There are hacks you can do with AeroSpace, especially since AeroSpace doesn't use native macOS Spaces, but the three-monitor layout is a much more robust approach in my opinion just a bit of a nightmare to setup. Theres a million little mac annoyances you have to fix.
I remember having to work hard to make my non-Apple display look 'right' years ago on an Intel-based mac due to weirdness with scaling and resolutions that a Windows laptop didn't even flinch handling. It was a mix of hardware limitations and the lack of options I had to address the resolution and refresh rates I had available over a Thunderbolt doc that I shouldn't have to think about.
I honestly hope they finally fix this. I would love it if they allowed sub-pixel text rendering options again too.
This reminds me of this comment, which I feel is a somewhat unsatisfying explanation, given that despite these difficulties, Windows somehow makes it work.
Apple is free to make its own choices on priority, but I'm disappointed when something that's considered the pinnacle of creative platforms sporting one of the most advanced consumer processors available can't handle a slightly different resolution.
Actually, I don't even think it's possible to run HiDPI mode at the native resolution scale from within the macOS settings app, you'd need something like `Better Display` to turn it on explicitly.
The TV is unusable without BetterDisplay because the apple default negotiation preference. I hope waydabber can figure something out with you.
It's also why when you put your Mac into "More Space" resolution on the built-in or first-party displays, it tells you this could hurt performance because thats exactly what the OS is going to do to give you more space without making text unreadable aliased fuzz, it renders the "apparent" resolution pixel doubled, and scales it down which provides a modicum of sub-pixel anti-aliasing's effect. Apple removed subpixel antialiasing a while back and this is the norm now.
I have a 4K portable display (stupid high density but still not quite "retina" 218) on a monitor arm I run at, as you suggest, 1080p at 2x. Looks ok but everything is still a bit small. If you have a 4K display and want to use all 4K, you have the crappy choice between making everything look terrible, or wasting GPU cycles and memory on rendering an 8K framebuffer and scaling it down to 4K.
I'm actually dealing with this right now on my TV (1080p which is where I'm writing this comment from). My normal Linux/Windows gaming PC that I have hooked up in my living room is DRAM-free pending an RMA, so I'm on a Mac Mini that won't let me independently scale text size and everything else like Windows and KDE let me do. I have to run it at 1600x900 and even then I have to scale every website I go to to make it readable. Text scaling is frankly fucked on macOS unless you are using the Mac as Tim Cook intended: using the built-in display or one of Apple's overpriced externals, sitting with the display at a "retina appropriate" distance for 218ppi to work.
So to oversimplify, Windows can have a problem where if you are running 1.5X scaling so text is big enough, you can't fit 4K of native pixels on a 4K display so videos are blurry. If instead you were rendering a scaled image to a 6K framebuffer and then downscaling to 4K, there would be minimal loss of resolution.
That would be my instinct as well, but the author seems to be delibarately doing the exact opposite. Trying to force a 2x HiDPI and then downscaling to native display resolution whereas he could have just done a 1:1 LoDPI rendering. What you get in the end is some equivalent of hack/brute-force smoothing/antialiasing of what was rendered in the downsample.
So 1:1 rendering can cover only a part of the screen, while the remainder remains unused.
If the maximum size limit is used but applied to the entire screen, it does not match the native resolution so interpolation is used to convert between images with different resolutions, blurring the on-screen image.
All the attempts were done with the hope that there is some way to convince the system to somehow use the greater native image size instead of the smaller size forced by the limits.
Already more than 35 years ago the correct solution was used. For text and for graphics, the sizes must be specified only in length units, e.g. in typographic points or millimeters or inches, e.g. by configuring a 12-point font for a document or for an UI element. Then the rasterizer for fonts and for graphics renders correctly everything at a visual size that is independent of the display resolution, so it is completely irrelevant whether a display is HiDPI or not.
To combat the effect of rounding to an integer number of pixels, besides anti-aliasing methods, the TTF/OTF fonts have always included methods of hinting that can produce pixel-perfect characters at low screen resolutions, if that is desired (if the font designer does the tedious work required to implement this). Thus there never exists any reason for using scaling with fonts.
For things like icons, the right manner has unfortunately been less standardized, but it should have been equally easy to always have a vector variant of the icons that can be used at arbitrary display resolutions, supplemented by a set of pre-rendered bitmap versions of the icons, suitable for low screen resolutions.
I am always astonished by the frequent discussions about problems caused by "scaling" on HiDPI displays in other operating systems, because I have been using only HiDPI displays for more than a dozen years and I had no problems with them while using typefaces that are beautifully rendered at high resolution, because I use X11 with XFCE, where there is no scaling, I just set the true DPI value of the monitors and everything works fine.
Well that sounds great in theory, but then you'll get only one button per screen on your laptop and maybe two on your desktop. More likely one and a half.
even on a native 2K monitor, having a virtual 5K frame buffer downscaled to 2K yields perfectly enjoyable results, compared to how macOS' native 2K image would look like; it causes eye-bleed :)
The worst part is that I did my research if my monitor works nicely with Apple Silicon and got confirmation that this is the case. I would never expected that M5 would perform worse compared to previous generations.
Apple really does a lot of things right but then they mess up the basic.
Guess I will ask Apple Intelligence for advise how to explain to my wife that I need a new Monitor…
I am still in disbelieve about the issue. I thought I have bought the most advanced notebook on this planet just to find out that it does not support external displays?
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!
I have a 32:9 Ultrawide I would love to use on macOS but the text looks awful on it.
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.
(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.)
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.
Anyway I will run the diagnostic commands and see what I get.
Both will run at 144Hz, but the M4 will occassionally flicker if you're close to limits on dual-screens. I set to 120Hz and don't notice any difference.
----
My M4 complaint is that I can no longer update my OS with a USB Installer offline. My M3 (and lower) will, using the same Sequoia media.
They've got a good thing going, but they keep finding ways to alienate people.
They’re likely all on Studio Displays.
Fractional scaling (and lately, even 1x scaling “normal”) displays really are not much of a consideration for them, even if they’re popular. 2x+ integer scaling HiDPI is the main target.
But to be fair, until last year there were no retina monitors in the market except the Apple ones. In 2025, the tides turned, there are now way more options both for 5k and 6k retina displays.
The article could just be AI slop since it just contains hyper in depth debugging without articulating what the problem is.
https://bjango.com/articles/macexternaldisplays/
- 24" you need 4k
- 27" you need 5K.
- 32" you need 6k.
Windows subpixel aliasing (Clear Type) manages a lot better with lower pixel density. Since Windows still has a commanding market share in enterprise, you might be right about the industry standard for HiDPI but for Apple-specific usage, not really.Meanwhile, Apple had this but dropped it in 2018, allegedly under the assumption of "hiDPI everywhere" Retina or Retina-like displays. Which would be great...except "everywhere" turned out to be "very specific monitors support specific resolutions".
When you set it to "more space" it becomes noticeably slower, but not blurry.
Apple basically settles into 220 dpi physical displays (250 moc MacBook Pro), rendering UI at a 2x scale as a default, except for MacBook Airs.
5K at 27 inch or 6K at 32 inch would though, specially on a Mac.
Assuming the article is correct and the hardware can do 7680x4320 @60, which requires 8GB/s memory bandwidth, in theory it should be able to do the same to read the same memory and interleave every other line for the down-sampling. However, it's possible that the new memory controller can't support 2 simultaneous burst streams (because the 2 lines are 30KB apart in memory), or if it's doing a single burst and buffering the first line until the second line is available, then maybe the cache is smaller than 30KB.
Another possibility is that previously the scale averaged pairs of pixel horizontally and cached them until the next line was available to average with that, and for some reason it was changed to average all 4 at the same time and so the cache isn't sufficient (although it'd be weird as 25.25KB is a fairly weird size to limit the cache to)
Alternatively, looking at clock rates needed for the sampler, 3360x1890 @60 is 381MHz, 3840x2160 @60 is 497MHz. It's quite possible that they've lowered the base clock on some hardware and not considered that it'd impact the maximum effect on the scaler.
But whatever IMHO, it's unlikely to be a software bug with an easy fix.
Your scaler clock theory could be right: the single-stream scaler path may genuinely have a lower throughput limit than the multi-pipe path.
Interestingly, the M2 Max uses a completely different IOMFBMaxSrcPixels structure. Instead of per-sub-pipe arrays, it has a flat MaxSrcRectWidth=7680 and MaxSrcRectTotal=33177600 (exactly 7680x4320) per controller. Every external display controller gets the full 7680 budget. Apple seems to have restructured the display controller architecture between M2 and M4/M5 to per-sub-pipe budgets, and the single-stream sub-pipe got a reduced allocation (6720 vs 7680) in the process. Whether that's a hardware change in the scaler or a firmware allocation policy is hard to say without Apple's documentation.
> Caps the HiDPI backing store to approximately 1.75x the native resolution (6720x3780 for 3840x2160 native), rather than the 2.0x needed for full HiDPI (7680x4320)
So, that could be an off by one bug? That might be testable by tweaking the system to think the display supports an even higher resolution.
Also, instead of messing with the Display Override Plist, patching drivers, etc, did they try using the “Advanced…” button in the “Displays” UI? They don’t mention they did.
For me (with a 27 inch 4K monitor not on M4 or M5) that replaces the 5-way choice by one with a list of 11 choices. With the then appearing “Show all resolutions” toggle, that becomes 18.
24 inch 1080p 24 inch 4k (2x scaling) 27 inch 1440p 27 inch 5k (2x scaling) 32 inch 6k (2x scaling)
Other sizes are going to either look bizarre or you’ll have to deal with fractional scaling.
Given that 4k is common in 27/32 inches and those are cheap displays these kinds of problems are expected. I have personally refused to accept in the past that 27 inch 4k isn’t as bad as people say and got one myself only to regret buying it. Get the correct size and scaling and your life will be peaceful.
I would recommend the same for Linux and Windows too tbh but people who game might be fine with other sizes and resolutions.
I really like my 1440p monitors at home more than the 4K monitors at work. At work, I'm always dealing with scaling and font size issues, but at home everything looks perfect. So I think you're onto something here: 1440p just seems to be a better resolution on a 27" panel.
I'm not saying there is no difference. But I suspect how one reacts to it is highly dependent on the person. I wear glasses that aren't perfectly focused for either screen, but they're good enough to get the job done - and mostly importantly, I get to use my two 4k 27" monitors to give me the same effective resolution as a Studio Display at far less money than two Studio Displays.
If the theory about framebuffer pre-allocation strategy is to hold any water, I would think that 5k and 6k devices would suffer too, maybe even more. Given that you can attach 2x 5k monitors, the pre-allocation strategy as described would need to account for that.
I feel like some remote desktop software is already doing that sort of thing.
The article doesn't mention it.
https://gist.github.com/PierBover/99f44e5cba1657eb7e4ce8e2aa...
I'm on macOS 15.7.4.
It's so weird that it says 5120 x 2880 when the ASUS PA329CV is 3840 x 2160.
system_profiler SPDisplaysDataType
Graphics/Displays:
Apple M4 Max:
Chipset Model: Apple M4 Max
Type: GPU
Bus: Built-In
Total Number of Cores: 40
Vendor: Apple (0x106b)
Metal Support: Metal 4
Displays:
LG UltraFine:
Resolution: 4096 x 2304
UI Looks like: 2048 x 1152 @ 60.00Hz
Main Display: Yes
Mirror: Off
Online: Yes
Rotation: Supported
Automatically Adjust Brightness: Yes
To be honest it feels crisp. But good to know maybe I need to upgrade more.That one also wasn't a hardware limitation as it ran my displays just fine in bootcamp, but macOS would just produce fuzzy output all the way.
It's infuriating.
As an article, it is not 100% coherent, but there is a valid data and a real problem that is clear.
There might be a problem but it’s hard to know what to trust with these LLM generated reports.
I might be jaded from reading one too many Claude-generated GitHub issues that look exactly like this that turned out to be something else.
Tim Apple's Apple has been fu#$%& me again..
Just another case of Apple intentionally going against established open standards to price gouge their users.
I wouldn't mind it as much if I didn't have to hear said users constantly moaning in ecstasy about just how much better "Apple's way" is.
High quality desktop Linux has been made real by KDE, and the AI-fueled FOSS development boom is accelerating this eclipse of proprietary nonsense like this.
If you're a developer, you should be using a system that isn't maintained by a company that intentionally stabs developers in the back at every turn. (Unless you're into that. U do u.)