@joevt do you know if this is a hardware limitation or software? You're probably the most knowledgeable person I could think of on this topic.
I was under the impression that this was spelled out in the Thunderbolt 5 specification but apparently not. First became aware of it from this video:
The Thunderbolt 5 spec only requires that a Thunderbolt port supports 2 displays - like Thunderbolt 4. This is why M1 Macs were labeled Thunderbolt/USB4 instead of Thunderbolt 4 - because they could only connect one display from their Thunderbolt port (even though the Thunderbolt port could support 2 DisplayPort connections for a dual tile SST display like the LG UltraFine 5K or Dell UP2715K).
I think the limit of 2 displays for the Apple Silicon implementation of Thunderbolt 5 is hardware related. Apple chose to include only two DisplayPort In Adapters to their Thunderbolt 5 host controller. You can see this in the output of the
ioreg
command (search for substring
DPInAdapter
)
Thunderbolt controllers have many adapters of different types (USB Up/Down, PCI Up/Down, DisplayPort In/Out). Maybe it's possible for a Thunderbolt controller to have more than 3 DisplayPort In Adapters. Of course, every DisplayPort Input requires more than a dozen more lines to each Thunderbolt controller from the crossbar switch that routes the GPU DisplayPort outputs to the Thunderbolt ports (since there's not enough outputs to populate all the inputs).
Of course, dual DisplayPort 2.1 (77 Gbps each) is more than what Thunderbolt 5 can handle (120 Gbps total) so adding a third would be overkill - only if Apple bothered to add MST support for multiple displays. macOS has plenty of MST handling code already. Currently, you can use MST to mirror displays, or to convert fast/narrow DisplayPort with DSC to slow/wide DisplayPort without DSC. Intel macOS supports old 4K60 dual tile MST displays which use two 1920x2160 60Hz MST signals for a full 4K60 display. I wonder if the effort of allowing support for multiple displays using MST is much greater than the effort to make MST not support multiple displays...
Intel based Thunderbolt 5 add-in cards have 3 DisplayPort inputs.
https://www.gigabyte.com/Motherboard/THUNDERBOLTS-5
https://www.asus.com/motherboards-components/motherboards/accessories/thunderboltex-5
The Intel Thunderbolt 5 controllers are listed at
https://www.intel.com/content/www/us/en/ark/products/series/225929/thunderbolt-5-controllers.html
The host controller has 3 DP inputs, 1 DP output (not implemented in the add-in cards).
The accessory controller has 2 DP inputs (for something like the BlackMagic eGPUs or the Sonnet eGPU Breakaway Puck RX 5500 XT/5700?), and 3 DP outputs.
The specs don't say how many USB outputs the chips have. Probably the accessory controller has one, similar to Thunderbolt 4 accessory controllers.
I think they like to put them in as they have lower specs regarding throughput and voltage so they can market more ports

. On top they can come in handy in some cases.
All these hubs support a maximum of 3 downstream TB/USB4 ports - so the additional ports were never going to support displays or 20 Gbps data, even if they had been USB-C.
The USB-A ports are 10 Gbps which is the max USB speed you can get from an Intel Thunderbolt 4 controller. I'm not sure about the USB from Thunderbolt 5 controllers. I know the Thunderbolt 5 ports can do USB 3.2 Gen 2x2 20 Gbps. The Thunderbolt 5 controller may have a USB 3.2 Gen 2x2 port. I guess CalDigit connected a 5 port USB 3.1 gen 2 hub to that for the 5 non-Thunderbolt ports? Or maybe they used two hubs (the Thunderbolt 4 Element Hub used one hub for the 4 USB-A ports). If they used a USB 3.2 Gen 2x2 hub then the two USB-C ports could do 20 Gbps USB (when not bottlenecked by USB tunnelling) but USB-A is limited to x1 anyway (10 Gbps).
I would like to see the USB topology of the Thunderbolt 5 hub from an Intel Mac (without USB tunnelling) and from an Apple Silicon Mac (with USB tunnelling). Use
ioreg
to see all the ports and hubs connected to a USB controller.
Sometimes, those wireless dongles offer better latency, fewer interference problems and "instant connect on power-up" than bluetooth... and since most of the electronics fits in the shaft of teh USB-A plug they can be very low profile. Where USB-C dongles do exist they tend to stick out almost as far as a USB-A dongle in an adapter.
Right. Having just USB-C lets you choose what adapter to use and you can update the adapter whenever there's a better one, unlike a dock where you are stuck with whatever adapter they built into the dock for HDMI or Ethernet or whatever.
AFAIK it could be because a 10G ethernet controller needs more than one PCIe lane - the chipset in newer "TB4" hubs only provides one (that's the cost of adding support for multiple downstream TB ports). Older "TB3" docks had more internal PCIe lane - but then they used a bunch of PCIe-to-whatever controllers to provide the other downstream ports so there would be contention.
One PCIe lane was the limit for Thunderbolt 4 Goshen Ridge accessory controller.
Thunderbolt 5 Barlow Ridge accessory controller appears to have 4 lanes? CalDigit could have added a NVMe slot to this hub? Or something to utilize those PCIe lanes - unless the controller has a switch to change the lanes from PCIe to Thunderbolt?
I'm a bit confused by this. You say it's a hardware limitation but then say there would need to be an (software?) update to allow it?
I don't think software can fix it, unless Apple is doing something evil to disable an existing third DisplayPort input to their Thunderbolt 5 controllers.
My understanding is macOS does not allow the technology that Windows uses to get 3 displays over one cable: display stream compression.
macOS supports DSC on Intel Macs (with IceLake CPUs or Radeon 5000 or 6000 GPUs) and Apple Silicon. There's a patch for Intel Macs to allow DSC compression down to 8bpp since the default 12bpp is insufficient to allow 4K240. Apple Silicon appears to have smarter DSC support than Intel Macs - I think they will use 12bpp by default and increase compression for displays that require it for their max resolution/refresh rates (I think we need testing to see how the DSC target bpp changes with refresh rate).
I think the issue is MST (Multi Stream Transport) chaining which allows you to daisy-chain multiple monitors over a single DisplayPort stream (there’s 2 of those per Thunderbolt link). On MacOS, daisy-chained DisplayPort screens just mirror. Even Intel Macs lacked MST Daisy-chaining - and they were basically the same architecture as PCs, suggesting it was a MacOS rather than a hardware thing - but I guess only Apple know if Apple Silicon hardware could physically do it.
Intel Macs support MST for multiple displays when you boot Linux or Windows. I wonder if the Asahi Linux people will ever be able to get MST working for Apple Silicon?
This is correct. I'm not sure why Apple doesn't supported MST for different displays. They do support it for single larger displays like 5k and 8k on older DP standards. But have never supported MST for separate displays. It's the reason MacOS can't drive 2 (non-mirrored) monitors from the less expensive USB-C docks. Yet Windows can.
5K (LG UltraFine 5K or Dell UP2715K) and 8K (Dell UP3218K) use dual tile SST to achieve 60Hz. Then can do single tile SST at least 30Hz.
macOS did support MST for dual tile 4K60 MST displays which existed before single tile 4K60 SST displays.