DisplayPort 1.4 5K60 switching japes
Wednesday, Mar 29, 2023 · 1800 words · approx 9 mins to readUpdate (31st March 2023): it turns out I spoke too soon. macOS 13.3 still has crippling black screen bugs when switching back to the Mac, after the 622DP-4 has switched them to my Windows PC just fine. I still recommend the CKL switches, just not with Macs until Apple can fix the issue.
Carry on reading for the japes.
Apple returned to the prosumer display game in 2022 with the Apple Studio Display, a 27" 5K60 display with thick but thinner than last time bezels, glossy or matte finish, integrated webcam and speakers, and a single input. Think of it as them separating out the lovely LG Display 5K60 S-IPS panel they’ve used in high-end iMacs for a long time, and then chipping away at the technological sex appeal bit-by-bit by pairing it with a bad webcam and giving it a single Thunderbolt 3 USB-C physical input.
Despite the egregious skewering of the spec sheet, and the £1,499 starting price tag, I bought two. Of course I did. Thank you galloping mental illness which practically demands a complete inability to be fiscally prudent, and a desire to stare at only the finest text rendered by the finest pixels.
They’re tremendously good displays if 5K at 27" sets your minimum bar for pixel density. 210 ish square pixels per inch or higher is what gets me out of bed in the morning and the Apple Studio Display duly provides. Thanks. I love them.
Because of the single input and my laziness in not wanting to swap cables every morning and evening as I switch between my work Windows machine and my Mac, I decamped from this desk with my work machine and set it up with the pair of Dell 4K 27" displays I had before the Studio Displays in another part of my office, at a desk with no window behind it and not much room underneath for my legs.
I figured that it’d be fine to work at a shit-show of a space for money, because money, and it’d also increase my enthusiasm for sitting here to work on my side projects in the evening and at weekends. However, it turns out that after 8 or so daily hours of leg pain and eye strain, your desire to sit down at a computer some more, even if the desk is really nice and the displays are excellent, is less than zero. Sometimes you even think about smashing it all up and trying to reset your brain to enjoy carpentry instead of computers.
At that point I decided that the best course of action was to find a way to bring my work machine back to this desk, using it with the Studio Displays. The easy and correct solution was to use my arms, both for the initial move of the workstation back to this desk, and for all of the subsequent cable swapping as I connect the displays to each machine when I need to. They are free and they already shipped to me some time ago.
There’s no need for a narrator to let you know that’s not what happened, because you can see there’s loads of text left on the page. That means of course my solution to fixing the poor application of a large pile of working capital on two displays with just a pair of inputs between them was the hideous application of even more.
After nowhere enough research (I poorly read just this single page on the Apple Stack Exchange and missed the embedded punchline that should have stopped me in my tracks) I spent a bunch of money on a CKL 622DP-4 and waited for it to arrive. Then it arrived and I connected it all up and it didn’t work at all. There was not a peep from either display when assigned to either computer.
Did you know that bi-directional DisplayPort cables are a thing? Wow, you didn’t either? Same.
Directionality is a thing for DisplayPort, so you can’t just use a perfectly good cheap-ish cable that you already had, one that takes DisplayPort via a physical USB-C connector at the GPU side to a full-size DisplayPort connector on the monitor side, and just flip that around if the physical connectors in your setup are reversed.
The 622DP-4 is full-size DisplayPort at the output side, and the Studio Displays are USB-C physically on the input side. That means I needed another $35 or so per port of new active, bi-directional USB-C-to-DP cables to go from the switch to the displays. And then, because I have a standing desk, I needed some more cables for the rest of it all, to sit-stand properly. At this point you’ll be saying in your head that I bet he hasn’t actually stood the desk up since. You’re right. I’m standing it right now to make amends (no I’m not).
So, yeah. Several million dollars later, after buying completely deficient displays with single inputs, a full-featured DP 1.4 switch to handle the 5K60-ness of it all, and a mix of normal and active bi-di DP cables to make sure I can stand up my desk on the off-chance I remember it can one day, it still didn’t work properly.
After getting the posh bi-directional cables to make a picture show up on the Studio Displays from the 622DP-4, I came to realise that if I started on the Mac and then switched to the PC, and then switched back to the Mac, nothing would show up on the displays after switching back to the Mac. Fantastic.
That’s because macOS has long-standing WindowServer
/CoreDisplay
bugs that can cause it to get upset when DisplayPort displays are (re)connected. Workarounds include swapping to the HDMI input on your chosen display.
Sorry, I just passed out from laughing so hard. Where was I?
And so it goes that for the last few weeks I’ve just manually swapped the cables over, pissed off that my multi-million dollar (really just $400 or so) investment to gloss over the richest company on Earth’s insistence that their flagship displays only have a single input — yep, the 6K60 Apple Pro Display XDR is exactly the same — didn’t work.
I thought about returning the 622DP-4 and the cables. I thought about pinning the cables to a cork board in the shape of a shape of dozens of people laughing at a balding man in his forties spending fifteen grand on Apple hardware just because he enjoys macOS and nicely rendered text. I have enough of them for that. Maybe Apple sell a cork board, because they sell a polishing cloth so why not.
There was a point or two during this cashtastic omnishambles that I thought about giving up on the Apple ecosystem entirely. Windows works just fine if DisplayPort connections come and go. Even Linux does too. No, really, it does. The reason I’m so heavily invested in Apple for my personal computing had completely disappeared. It’s a well-worn meme, but it’s all supposed to just work.
macOS 13.3 came out yesterday (March 27th 2023), and I joked to friends this morning that I bet it’s still all broken.
BUT IT ISN'T.
Please imagine that text dancing around the page in joy. I made it a nice colour, your brain needs to do the rest. If I use the 622DP-4 to switch to the PC and then back to the Mac, I see macOS again. I can do that over and over and it’s fine, macOS shows up again.
I’ve been digging in to why and where the bug actually happens in my spare time, teaching myself the wonders of the log
command on macOS, something I’d never used before I encountered this shitty bug. log collect
grabs logs for you from a prior period you specify, and log show
lets you filter them on a set of search predicates.
log show <path to .logarchive> --predicate '(subsystem == "com.apple.CoreDisplay")' --info --debug
let me do my amateur sleuthing, enough to recently file a Feedback with some details that would hopefully let Apple fix it one day. I don’t think they ever saw it, but that doesn’t matter.
I could see the WindowServer
’s use of CoreDisplay
routines (or at least routines that WindowServer
and thenCoreDisplay
call into) having serious problems dealing with the fact the Studio Displays were coming and going, but because none of macOS’ more interesting technical layers on top of the kernel are open source there’s nothing I could do about it myself.
But Apple’s engineers were already on it! Taking a look at what’s new in the log output on macOS 13.3, to get a feel for why it works now, I can see there’s what looks like new code inside the chain of calls that CGXDisplaysWillReconfigure
kicks off when a display is (re)connected. That new code more correctly handles what happens when the two displays come back to the Mac, (re)initialising each one in turn to get me back to a usable system rather than a black screen.
It takes a good while for the re-init to happen and get me back to a system I can interact with (on the order of 10-20 seconds, whereas on Windows it’s relatively instant), but it’s a working system regardless and I can now freely and lazily switch between the two different systems sharing the Studio Displays via the 622DP-4, without any manual swapping of cables.
I’ve lost the webcam and speakers, since they were USB peripherals connected via the Thunderbolt 3 bus the display natively uses, rather than the DisplayPort Alt Mode display-only connection I’m using now, but the display (the important bit for those not paying attention) and its controls like brightness still work.
I can now recommend CKL’s DisplayPort 1.4 switches to others looking to share 1-4 Studio Displays between 1-4 machines in most sensible configs, assuming macOS 13.3 and beyond (and assuming Apple don’t break it again). And remember: make sure to get active bi-directional USB-C-to-DP cables if you’re using a modern Mac with USB-C display output(s). It’ll only cost you several million dollars to effectively add that extra display input to your system but it will work now!
If anyone from Apple started reading this and has somehow stayed with me all the way through this endless, debilitating saga: please please please add a 2nd input to the update to the Studio Display and Pro Display XDR, or any new display models you make.