Of Thunderbolt 3, USB Type-C and DisplayPort
Thunderbolt 3 and USB Type-C are a complete and total minefield! I keep bumping up against this topic, and realised it’s a big enough, complex enough rabbit hole to warrant its own post. So here is that post.
At the beginning of this year I switched over from an Intel NUC to a Razer Blade as my primary workstation. It was a worthwhile switch, unifying my laptop/desktop workflows into one, convenient whole. But something was amiss. While I had fudged the Intel NUC to drive the two 2560×1440 displays which constitute my workstation, and could do the same for the Razer using the HDMI port for one of them, I could never quite get an image I was happy with over HDMI, and having that extra port to plug-in/unplug every single day was an unholy nuisance.
The Razer Blade has a USB Type-C port supporting Thunderbolt 3. Great! That can drive two displays all by its lonesome, right? Wrong. Well, right. But also wrong. Oh dear, here we go.
My first port of call for help was StarTech. They’re my go-to for obtuse and obscure adaptors, splitters and converters, so I pitched my intent to get to the bottom of the USB Type-C and Thunderbolt 3 madness and they sent me a Thunderbolt 3 to Dual DisplayPort adapter for testing.
This adaptor is great, it works beautifully well with a Dell XPS13 and- good grief- having a dinky laptop like that driving two huge displays is a marvel to behold. It also works with a Touchbar MacBook Pro after a not too insignificant amount of fiddling– ugh! That’s yet *another* landmine in the Thunderbolt field.
However. It did *not* work with my late 2016, GTX 1060, Razer Blade. Why the heck not?
What the manufacturers don’t tell you about Thunderbolt 3 and USB Type-C
Thunderbolt 3 is capable of supporting two DisplayPort 1.2 signals. And USB Type-C is capable of including an Alternate Mode* for supporting one DisplayPort 1.3 signal. Note I said “capable of” here. The presence of a USB Type-C port on your computer does not guarantee it supports any particular configuration of displays, that’s down to the engineer designing the board, and the technical constraints and budget constraints driving them.
* See here for details on USB Type-C Alternate modes
On the Dell XPS13, Dell have routed *two* DisplayPort 1.2 signals to their Thunderbolt 3 controller, allowing their Thunderbolt 3 port to support not only two external displays, but theoretically 4 or more. The proof is in the pudding, since Dell’s own TB16 Thunderbolt 3 dock supports up to three “FHD” displays – granted it has some weird caveats since supporting a 5K display requires a USB Type-C to Dual DisplayPort 1.2 adapter to be plugged into the back of the dock itse… sheesh! This thing is £400+ and needs an adapter to run a 5k display!? This is nuts.
On the Razer Blade, Razer have routed only *one* DisplayPort 1.2 signal to the Thunderbolt 3 controller, and who-knows-what to the USB Type-C port; presumably it’s actually internally one DisplayPort 1.3 signal shared by both the USB Type-C alternate mode *and* Thunderbolt 3, but I don’t know. There are no documents online that clarify this, and getting information from Razer is like squeezing water out of a stone. I will happily update and amend this article as I glean new information.
This means that adaptors like StarTech’s take Thunderbolt 3s two DisplayPort signals, demux them from the Thunderbolt 3 data-stream and route them out to the two full-sized DisplayPort connectors. If you don’t *have* two DisplayPort signals routed to your Thunderbolt 3 port… well, folks, you’re SOL!
Or…
Enter: Multi-stream Transport
Multi-stream Transport is a capability of DisplayPort since version 1.2 that really describes itself. It’s a mode in which multiple video streams can occupy the same DisplayPort connection, effectively splitting your signal, but with none of the weirdness you might expect from old-fashioned splitters which would only be seen as one monitor.
Multi-stream Transport is the technology used in DisplayPort monitors that support daisy-chaining. The first monitor grabs the first stream, displays it, and then passes the rest onto the next monitor for display. Cool, huh?
DisplayPort’s Multi-stream Transport mode allows up to 4 displays to be seen by you computer as individual monitors. With the Blade, it takes that limited single DisplayPort signal and grants the sweet, sweet mercy of up to two 2560×1600 displays.
So, technically, with a single DisplayPort 1.2 connection you can drive:
No. Displays | Horizontal | Vertical | Pixels |
---|---|---|---|
1 | 3840 | 2160 | 8,294,400 |
2 | 2560 | 1600 | 8,192,000 |
4 | 1920 | 1080 | 8,294,400 |
Update: Plugable kindly gave me some feedback on this article and pointed out that discrete NVidia and AMD GPUs support a maximum of 4 displays, even with Multi-stream Transport and multiple ports involved. Intel GPUs support only 3.
On Monday, I will connect a forth display to my Blade via HDMI and see what happens- since it has both an NVidia GPU and an Intel GPU, with the HDMI connector (I believe) connected to the Intel GPU and the DisplayPort 1.2 lanes on the Thunderbolt/USB Type-C connector routed to the NVidia GTX 1060. Update: A 4th display connected to the HDMI port does, indeed, work.
DisplayPort MST Latency
One of the drawbacks of MST is latency. Since even in a daisy-chained configuration the first MST device effectively acts as a hub, there’s a small delay in sending data downstream. I haven’t grokked enough of the DisplayPort MST documentation to understand quite why this is, but you’ll see below that my two identical 2560×1440@60Hz displays are out of sync:
Looks like there’s a small amount of screen update latency introduced by MST- don’t use it for gaming folks!
Really easy to see when this switches into slow motion. pic.twitter.com/dDKz4s1QQP
— Phil Howard (@Gadgetoid) September 21, 2018
With a more useful test I was able to measure this different and put a number two it: 14-15ms. This is a significant delay, and is curiously close to the 16.666ms frame time of 60Hz. Suffice to say, if you don’t want this delay adding to existing input latency then you may want to forego MST for gaming, or make sure you’re using the display with the least delay.
Looks like there’s a ~14millisecond difference. pic.twitter.com/t0lkpJfC5P
— Phil Howard (@Gadgetoid) September 21, 2018
Fixing this mess…
The ideal solution for a Razer user looking to drive two 2650×1600 displays would be a Thunderbolt 3 dock that includes a built-in MST hub and outputs two full-sized DisplayPort connectors. I’ve managed to bodge one together using the Thunderbolt 3 dock that I’m currently testing, plus a mini-DisplayPort to DisplayPort “Multi-stream Transport” (MST) adaptor from StarTech. The cost of this setup would be somewhere around £400, probably enough to make me just make do with my HDMI port, but it’s not outrageous when you consider that you get some USB3 ports, an SD card reader, SPDIF out and a sweet one-cable docking solution (you still need to plug in your power supply too, sorry).
A cheaper and simpler solution may be the USB Type-C to Dual DisplayPort MST HUB also from StarTech however, unless I get my hands on one of these and test it with the Blade- since it uses USB Type-Cs DisplayPort Alternate Mode* and *not* Thunderbolt 3s DisplayPor… ARRGHHHHH, I do not know if this will work directly with the Razer Blade.
StarTech also produce a USB Type-C Dock that supports MST, but frustratingly it has a single DisplayPort and an HDMI connector- these Dell monitors don’t play nice with 2560×1440 over HDMI! (again assuming the Blade even supports USB Type-C DisplayPort Alternate Mode).
I asked Plugable if they had anything in the works, but MST is, apparently, something of a minefield in its own right. My setup may, perhaps, be the result of luck 😉
@plugable any plans to do a multi-stream transport version of https://t.co/XbExcX9ca0 to work around limitations in some (@razer) laptops?
— Phil Howard (@Gadgetoid) May 11, 2017
So, in summary we’ve touched upon one aspect of Thunderbolt 3 and USB Type-C: video out, and found enough complexity to warrant this wall of text. While the technology is very, very promising it’s also riddled with compatibility pitfalls. Dell offer, and price, their Thunderbolt 3 TB16 dock using the Apple model; if you buy a laptop and dock both from Dell you can be pretty sure the two things will work together. By any arbitrary laptop and dock? Chances are you’ll be fine, but there are things to be wary of, and you might not realise the limitations you’ve bought into until you try to use that extra HDMI port and find it does… nothing.
Plugable have a clever workaround for the insanity of USB Type-C and Thunderbolt 3 display signals– they have a triple display dock that uses DisplayLink. If you’re not familiar with the technology, DisplayLink is a combination of software and hardware that gives you a video output over regular old USB 3. Your computer sees it as an ordinary monitor, except it doesn’t depend on what video signals might be routed where from your GPU to your Thunderbolt 3/USB Type-C controller. It doesn’t care! The software component means that DisplayLink isn’t perfect, and may have compatibility issues on certain operating systems, but it’s a great workaround for connecting additional displays where other solutions are not possible.
DisplayPort 1.2 and HDMI 1.4 over USB Type-C for 4k @ 60Hz video
USB Type-C supports both DisplayPort 1.2 and HDMI 1.4 as alternate modes. The former of these two protocols can support 3840×2160@60Hz, but only if your DisplayPort 1.2 connection is running with its full 4 lanes of bandwidth. Connecting USB 3 ports and devices to the same USB Type-C port will reduce the bandwidth available to DisplayPort and limit you to 4k@30Hz. You’ll notice this limitation on every DisplayPort sporting USB Type-C dock that you find- it’s just not possible currently to combine 4k output with USB 3. However if you use a straight video adapter such as you will suddenly find that you can achieve 4k@60Hz, but may be left wanting for USB ports.
For USB-C docks/dongles it is possible to have 4K @ 60Hz via DP Alt Mode using USB 2.0 over C, but if USB 3.1 Gen1/Gen2 over C is enabled, DP Alt Mode goes from 4 to 2 lanes as the USB-C cable wires are dynamically rerouted to allow more USB bandwidth.
— Plugable (@plugable) September 21, 2018
Don’t believe me? Take a look at LG’s 4k UltraFine display specifications. This is an Apple-endorsed display, and should logically be the very best for your MacBook Pro, right? Not really- in order to support 4k@60Hz the downstream USB Type-C ports are actually just USB 2.0 with a Type-C port and are limited to 480Mbps. This is fine for mice and keyboards – so long as you have the necessary dongles – but there’s a reason this display doesn’t have fancy features like Gigabit Ethernet. D’oh!
Despite being all showy with USB Type-C connectors on the back. The @LGUK 4K UltraFine display only supports USB 2.0 at 480Mbps, since USB 3.0 would limit the 4k refresh rate to 30Hz!
Technology can be so close, yet so far! pic.twitter.com/bf2rfujKy5
— Phil Howard (@Gadgetoid) September 21, 2018
HDMI 1.4 is a different beast. It only just supports 4k@60Hz, and even then only with 4:2:2 Chroma Subsampling. This is a technique used widely in broadcast and streaming video which involves downsizing the resolution of the signal colour information to save bandwidth. Since the eye is more concerned with detail than colour in high resolution images, the resulting scaled-up (and lossy!) colour information results in relatively passable video. Unfortunately desktop monitors can’t really take advantage of this- the technique of downsizing the colour information and then stretching it over the image’s brightness information results in colour fringing over sharp text or details and is particularly noticeable in still images.
But let’s not take my word for it. I produced a rainbow text image and then proceeded to apply some approximation of Chroma Subsampling to it using Photoshop. To accomplish this I switched the image into “Lab” colour and used the “Split Channels” option in the Channel panel menu. With the channels now in separate documents I was able to scale the two colour information panels (a and b) down to a quarter of their size (half their width/height) and then back up again to full size. Both of these steps used Bicubic interpolation. I then merged the now lossy channels back into one single image to produce the result. Now imagine I had saved the 3 channels as files instead, one full size, two a quarter size and sent them to you to resize and combine yourself- that lossy reduction in resolution is how Chroma Subsampling can reduce bandwidth.
Here’s what the image looked like before the process:
And here’s what it looks like after:
The result is a poor quality, blurry image with colour fringing. In short DisplayPort is the only way to go for 4k@60Hz over USB Type-C at the moment, and even that has its caveats.