Ok I knew the situation was confusing but after reading this I am dumbfounded. It seems so much strictly worse than the old world of having different cables with different connectors - yes you had to have a lot of different cables but you couldn’t get it wrong. Now we have all the same complexity and you can’t tell what’s what by just looking at the connector.
This. And I think there's also the software that's involved in all this.
At work, I have an HP laptop with Thunderbolt 4, DP alt-mode, etc.
I use an external screen and kb/mouse, so I have an HP USB-C G5 dock. It has a USB-C connector, only supports up to USB 3, but that's fine. It supports DP 1.4 and HDMI 2.0.
Its cable is fixed, so I'd expect it to be "up to standard". Also, HP Dock, HP laptop, Windows 11 as recommended by HP, you'd expect all this to just work, right?
Wrong! If I want 4k@60Hz on the monitor, I have to do a stupid dance of plugging the monitor on HDMI in addition to DP (doesn't work if DP isn't plugged in), unplug de DP, replug the DP, unplug the HDMI. It then works as expected. Colors are weird on HDMI (doesn't do 4:4:4 coding for some reason) so I insist on a DP connection.
Once this setup gets going, it will usually survive a sleep / wake cycle (if the PC wakes up, but that's a different story). However, there's a pretty good chance the image will be partially messed up: most often crazy colors and moving lines, sometimes the image will be OK, only somewhat misaligned (think old LCDs with VGA connectors before "auto-adjusting" them) and the monitor will complain of frequency mismatch or something. If I switch inputs on the monitor, it will come back OK. It will not survive a reboot (have to do the dance again). The BIOS has a special "use high definition" entry, that warns against reducing the USB bandwidth. Didn't make a difference.
At home, I have an HP desktop with Thunderbolt 3, DP out, etc. I have a USB-C monitor which works fine up until the Windows login screen when it goes blank (no signal). Windows install worked fine. It works if I force the resolution to less than 4k@60Hz. I only got to see the Windows desktop once with this. Didn't survive a reboot and never worked again.
None of this happens with Linux/X11, everything works as expected on the same hardware.
I fancy myself fairly technical, but I have to admit I have no idea what's going on. Not even where to start looking for issues. I've tried updating the BIOS/firmware across all devices, no luck.
See my comment elsewhere but usb-c to hdmi or thunderbolt to hdmi is always an active conversion, and those converter chips are (in my experience) pretty shitty around edge cases like sleeping. Those problems I’m referencing only show up when the laptop comes back from sleep.
Wouldn’t be surprising at all to me if it was just down to the active converter not handling it right, even on a fancy expensive dock. There are only so many active converter chips on the market after all and they’re oriented towards cost not correctness.
And I mean, mine sorta works after sleep… like 3/4 or 7/8 times. And if it were an active cable that you were plugging and unplugging every time, that works 100%. You only notice the flaw because it’s a dock, and that’s not really what the converter was designed for.
>This is DP pass-through, there's no DisplayLink or similar involved.
How do you know that it is DisplayPort pass-through?
From what I've seen, if it's going through a USB-C hub, there is almost zero chance that it is DisplayPort pass-through, although such a thing is possible to implement, in theory.
Because it shows up on Linux as an output of the integrated graphics card (DP-X-Y in xrandr), and it also works in the BIOS or during Windows installation.
Before this, I had a DisplayLink dock that would not work on Linux without specific drivers.
The HP specs [0] say the number of displays depends on the computer's graphics card.
Don't know if there's anything in between DisplayLink and pass-through, though, so I can't be certain it's not that.
I am pretty sure DP cannot be encaspulate in USB 3.1/3.2. (USB4 can carry DP over Thunderbolt), so alternative mode MUST be used (1 highspeed TX/RX pair for USB-C 5/10Gbps, and another pair for DP Alt Mode).
> This is DP pass-through, there's no DisplayLink or similar involved.
is it, or is there a re-driver? also, there are 4 high-speed lines in USB-C; 2 are used for USB3 so the other 2 are for DP-HDMI convertor and DP connector. seems like only 1 of HDMI or DP should work at 1 time.
anyways, this is not an issue with USB but an issue with the dock behavior.
How would I go about verifying that? I've never installed any driver for the dock, and the DP-connected screen works during early boot. Linux recognizes it as DP-X-Y. I've never had the curiosity of plugging in the HDMI port under Linux.
On Windows, it recognizes 3 screens when both DP and HDMI are connected (the third being the internal laptop display).
I know there's a similar HP dock, the G2, that does say it has DisplayLink, whereas this one doesn't.
> the other 2 are for DP-HDMI convertor and DP connector. seems like only 1 of HDMI or DP should work at 1 time.
If it's a USB 3.2 2x2, shouldn't that be able to handle one 4k@60Hz stream per lane, thus supporting two 4k@60 displays at the same time?
That's interesting, I've always seen Linux recognizing DP ports as only DP-X in xrandr. So my first guess would be that what you have within the dock is a something like a DP MST hub, to split the single DP port into two, and then one of these two ports goes into the active converter to HDMI (perhaps in the same chip), while the other is exposed as the DP socket.
You may be on to something, especially since I seem to remember people having MST displays complaining about wonky support.
Another fun fact: the laptop I'm typing this on shows 4 DP connections (DisplayPort-0 through 3), one HDMI-A-0, one eDP. There's no dock connected to it right now. When I was using the Chinese dock with a DP monitor, one of the four was showing up as connected.
The PC only has two USB-C connectors and one HDMI. So, I guess it expects to be able to drive two displays per USB-C port.
ya, fair, I just wouldn't rule out the HDMI chipset doing something stupid (negotiating down on colors etc) and that causing havoc elsewhere... like (as a sibling comment mentions) windows deciding to use that across all the panels etc.
Possibly, that's why I suspect the OS is somehow involved, too, especially since by default there's nothing connected to the HDMI port. Or, at least, some kind of interaction between the dock firmware and the OS.
The other commenter mentioning that Linux "doesn't care and plows through" could be on to something, too.
But I should note that I haven't "forced" anything. The display is detected as 4K@60Hz with no intervention on my part.
Whereas on Windows, before I do the dance, it only says 4k@30, I can't manually change it to 60 Hz; not with the standard Windows settings app, anyway.
This also happens on a separate dock. But on that one, it never works under Windows, DP or HDMI, dance or no dance. Works perfectly on Linux, though. However, that's some random Chinese dock off Amazon, so I chalked it up to shady implementation on its side.
However, this just goes to show that things aren't so "simple" as OP stated, things can fail in weird ways which aren't straightforward to diagnose. And the hardware isn't obviously broken, either, since I'm typing this on Linux attached to the Chinese dock in 4K@60Hz without having done anything special to get it going. So, something, somewhere, may be somehow out of spec, but how can I diagnose that? On the face of it, all my components are what I'm supposed to use.
I guess there are just too many moving parts, whereas a DP cable connected to the graphics card is pretty straightforward.
USB-C docks (as in USB and DP-Alt mode over USB-C) and dongles are a world of hurt. We had a bunch of them (including from reputable vendors like Lenovo and Anker) and we always had issues, needing to replug the cable because charging wouldn't work, crappy network adapters, suspend-wake issues, BlueTooth/WiFi interference, etc. The only adapter that worked well were the Apple Digital Multiport AV adapter, but it is overpriced and only has a measly 2 ports (plus power passthrough).
My wife and I both switched to Thunderbolt 3 docks both at home and at the office and the problems are gone. Everything always comes up, including after sleep-wake cycles. If often have my private MBP stationary and hooked up for days.
I really love Thunderbolt docks, just plug one cable and you have everything hooked up.
Well, I daily drive a Linux box, and I've been using a USB-C monitor with integrated hub for years without any issue. Both the HP and the cheap Chinese dock work perfectly with Linux. No sleep/interference/missing devices issues. I only noticed this because I was recently trying a few things on Windows at work. Hence, my suspicion that the OS is somehow involved.
Another issue is that thunderbolt only recently has become more common on PCs. My late 2021 AMD laptop doesn't have TB, for example. Only the higher-end HP laptops at work had it, but they had other issues which made them unusable for me (soldered RAM, under-powered CPUs and shiny screens), so I chose lower-end models.
I only noticed this because I was recently trying a few things on Windows at work. Hence, my suspicion that the OS is somehow involved.
I used a Lenovo USB-C Gen 2 Dock with a Linux-certified Lenovo laptop. 4k@60Hz didn't work (the lanes got misconfigured, worked fine on Windows), charging wouldn't work 25% of the times, the network interface would often not come up. Sleep/resume was hit and miss.
I didn't have a lemon, since we had two of these docks.
It’s always the cable. Except when it’s not, then it’s another cable.
What happens is Windows tries to help - and so switched out of the mode you wanted because something in the cable or negotiation indicated it wouldn’t work.
Linux often doesn’t do that and just blindly runs ahead - and so if the monitor becomes working a moment later - it works.
Utilities for Mac and windows can sometimes force what mode it uses.
This could possibly explain the issue with the USB-C monitor, but then why would this work after the HDMI circus? The hardware and OS clearly are capable of doing this, and no cable is replaced in the process. I also don't move them around during the reboot.
Things are just insanely complicated now but I don't blame the connector. I had the un-fun experience of trying to get 4k 60hz working on my Mac recently. Turns out I had to toggle a setting on my monitor to reserve more bandwidth for display resolution instead of for USB devices. This supposedly isn't a problem if the Mac supported display stream compression, and it's supposed to, but apparently that broke as part of some Big Sur update.
USB has always had software bugs but the explosion of optional features and unexpected hardware combinations has made it feel like Bluetooth; connecting is the easy part, but have fun negotiating all the different profiles and making sure both ends of the connection support the same things.
It's the exact same situation like having to debug a broken HDMI or DP cable. You don't get any more info, you just have less flexibility and more crap to lug around.
For example: My Macbook Pro has a 87 watt USB-C power supply. My Steam Deck charges using USB-C.
When I connect the two, the Deck tells me it's not charging at full power. While being connected to a 2x more powerful power supply than it's official one.
Without consulting Google, can any regular person figure out what is the issue?
(SPOILER: Steam Deck only charges using 15V, the Apple PSU supplies 9V and 20V, no 15V)
I suppose at least it tells you that. That's always my worry with the cable shenanigans - that I'll get some degraded experience and not realize it until it matters.
That's precisely what I do, after having lost a few hours messing with graphics drivers and kernel params before I realize it was the cable. Would have rather had my time back.
We had different connectors that would or would not work depending on your specific application. Some connectors would only have a smaller set of pins for restricted use cases (charging only, sound only etc.) than the full standard, you still had the quality and ratings issue (think ethernet cables), some companies would still recycle connectors used in other contexts for their specific purpose (a sheer round connector is one of those: there must be hundreds or proprietary cables with a round connector).
And of course you’d have adaptors to make a connector work in an equivalent setup.
Sure more shapes would make any of these issues limited to a specific shape, but there was still plenty of room to get it wrong.
> We had different connectors that would or would not work depending on your specific application. Some connectors would only have a smaller set of pins for restricted use cases (charging only, sound only etc.) than the full standard, you still had the quality and ratings issue (think ethernet cables), some companies would still recycle connectors used in other contexts for their specific purpose (a sheer round connector is one of those: there must be hundreds or proprietary cables with a round connector).
It totally is. I even have a Xiamo robot toy that uses the USB-C shape connector over a completely proprietary connection (non of the voltage or protocol match)
The difference is it's one less issue to deal with: we don't have to fret about the connector shape anymore.
There's also a fighting chance to have "all around" cables that match 90% of what you expect to be using it for.
In contrast, I prefer the current world. Usually, when I unexpectedly need some cable for some device (and i.e. have to borrow it) it's for charging. And so far every time the cable + charger worked for what I needed to charge.
Data- and protocol-related stuff is more complex indeed, but those I can usually research and check the specs of before ordering, so it's really a non-issue.
As this article describes, you can also just look for everything Thunderbolt 4 compatible, as it's a standard on top of the USB 4 standard that's just an aggregated specification of "this stuff works" for most of the important extensions.
I remember the hell of every phone having a different charging cable and having to ask around hoping someone had the same brand as you. Sure, it might be a bit of a pain that you can find a cable/charger that won't support the full charging speed of your device, but at least you can still charge it slower.
If they'd changed the connector, you'd throw away your old cables and buy new ones, so just do that every time for the new spec if you really want.
On Zyxel 16.8 rackmount modem enclosures, the barrel power plug that went into each modem blade was hot on the outside barrel rather than on the inside like every other sensible power connector using barrel plugs.
So you would destroy a blade every couple weeks when an unused or unplugged power connector barrel would touch the modem blade and destroy the modem through its circuitry’s apparently-unprotected ground.
We‘ve been having connector issues for as long as we’ve had connectors.
For the average person, none of it matters. Every single one of the cables does charging, most users charge their phone overnight so everything works well enough. Some users will have a thunderbolt cable that came with their monitor that they will leave plugged in and is identifiable by being thick and stiff.
Add to this complexity the fact that AMD 6000+ supports USB4. And USB4 is sorta compatible with Thunderbolt 3 and 4, though it is mandatory compatible with DP but no longer compatible with HDMI.
> it is mandatory compatible with DP but no longer compatible with HDMI.
Just FYI, not sure if you’re intending to imply this but a lot of people get it wrong regardless and it’s worth saying: usb-c/thunderbolt was NEVER compatible with HDMI.
DP++ (the hdmi mode for DisplayPort connectors) is and has always been an optional extension, it’s just so widely supported on full-size DP ports that people don’t even realize it. And it’s NOT included in most embedded implementations of DP - like the usb-c alt mode. DP++ involves using a different voltage, and it would be super complex to do the voltage change in situations like that across a USB link... you'd probably have to have a voltage converter for the DP pairs to run at HDMI voltages.
Anyway, all usb-c to hdmi cables are active cables. The adapters for hdmi 1.4 are dirt cheap and they’re so small they fit inside the plug, but, they’re active converters and they can have all kinds of weird behavior. Same for docks, the hdmi coming off your thunderbolt dock is an active converter chip and I’ve personally experienced hdmi-specific glitches on a Dell thunderbolt dock that I think were attributable to this.
This lines up with my experience of DisplayPort over TB and USB being considerably less of a pain than HDMI over TB and USB, and compounds with my experience of HDMI generally being more of a pain than DisplayPort.
Sometimes I wish HDMI would just go away, or for HDMI-only devices (mainly TVs) to add a DisplayPort just so I wouldn’t have to deal with HDMI.
Usb-c was specified a decade ago and thunderbolt has been around for a long ass time too. I could have bought "growing pains" in 2016-2017, it’s just a flaky standard at this point.