[kwlug-disc] HDMI over USB 3.0 story (may be useful to you)
Chris Irwin
chris at chrisirwin.ca
Fri Dec 17 00:48:19 EST 2021
On Thu, Dec 16, 2021 at 01:55:24PM -0500, Mikalai Birukou via kwlug-disc wrote:
>Eurika moment came with actual reading about usb 3.0 -- it can be used
>for video.
Uh-oh, you've triggered a rant!
Video over USB-C is a minefield of complexity. When I bought my current
laptop I had to research this because I just wanted a dock like I had on
my old laptop. I don't know how a non-technical person is supposed to
figure out what kind of dock or cable they're supposed to buy for their
laptop.
There's multiple options:
DisplayLink:
This is video over usb.
You can use USB-A, or USB-C, and there are devices that are USB 2.0
and 3.0+. They're basically software displays. They work by using a
driver to make "software" second screen, and sending that framebuffer
over USB to the dongle that is actually driving the monitor.
The older ones could introduce latency, and resolution/refresh rate
limitations. Certain types of video may suffer from compression. You
probably won't notice for most desktop use, but may cause problems
with games, for example. That said, I'm out of touch with them, and I
think they've improved these since I last looked at them years ago.
They should work pretty much the same on any hardware, assuming the
software supports it (has drivers, etc). I know a few people that use
these regularly with no complaints.
Years ago they had issues with Linux compatibility, but I think things
are settled down now.
FYI: I've never used one
DP-Alt Mode (usb-c):
This is video over a usb-c port, but it is *not* video over usb.
The usb-c spec divides a usb-c cable into lanes, and lets some or all
lanes be configured to an "alternate" signal, such as displayport.
Benefits over the above is that this is a "real" displayport output
driven directly by your GPU, just like a physical displayport port
would be -- no additional drivers or framebuffer copies.
https://en.wikipedia.org/wiki/USB-C#Alternate_Mode_partner_specifications
That also means this requires your laptop manufacturer to have
actually plumbed your GPU to your USB-C ports, and a lot of devices
don't. My Lenovo Thinkpad T14 does, but my wife's Lenovo Flex with
similar cpu/etc doesn't (it also doesn't charge over usb-c, because
Lenovo hates people that buy their consumer hardware, apparently)
Resolution/refresh rate options are difficult to understand. Is your
laptop displayport 1.2? 1.4? 2.0? Which displayport version is your
dongle? Are you using a quality cable? Are you using all lanes for
displayport, or are you splitting the cable between DP-alt mode and
normal usb data?
Sometimes you need to dive into spec sheets to determine if a laptop
even supports this.
Also, all the specs only talk about resolutions -- I have a 3440x1440
monitor, but it supports 144Hz. Will a dongle that supports "4K"
3840x2160 at 60 Hz support that? Time to get the calculator out...
FYI: I use this method every day. (It supports 3440x1440 at 85Hz, btw.
But not 144)
HDMI-Alt Mode (usb-c):
It doesn't exist. Sure, the wiki says it exists, but you'll never see
it.
USB-C-to-HDMI adapters are actually DP-Alt Mode dongles with an HDMI
converter chip.
Thunderbolt:
This is also video over a usb-c port, but it is also *not* video over
usb.
Thunderbolt is another "Alt" mode (that then can *also* carry
displayport), but with higher bandwidth and some increased
capabilities, and most importantly: branding and a logo on the port so
you know you have it! And laptops advertise that it exists! You don't
need to find a spec sheet!
But this requires special hardware for thunderbolt, and it's mostly
Intel-specific with very few exceptions (at least until USB4 actually
makes it to our desks).
Thunderbolt does offer significantly broader capabilities -- you can
attach a whole external GPU via thunderbolt if you want, and run
monitors off that.
Generally thunderbolt docks have been less fuss from what I
understand.
(FYI: I've used thunderbolt before, but don't own a
thunderbolt-capable machine)
So there's multiple ways to get video "over USB", but only one of those
is actually "over USB".
Here's why this all really sucks: I'm on Lenovo's site and want to buy a
dock for my Lenovo laptop. This should be simple, right? Which of these
visually identical and similarly named docks do I buy:
* ThinkPad Thunderbolt 3 Workstation Dock Gen 2
https://www.lenovo.com/us/en/p/accessories-and-software/docking/docking_thunderbolt-docks-(universal-cable-docks)/40any230us
* ThinkPad USB-C Dock Gen 2
https://www.lenovo.com/us/en/p/accessories-and-software/docking/docking_usb-docks-(universal-cable-docks)/40as0090us
* ThinkPad Hybrid USB-C
https://www.lenovo.com/us/en/p/accessories-and-software/docking/docking_usb-docks-(universal-cable-docks)/40af0135us
If I have a thunderbolt laptop, I buy a thunderbolt dock, and all should
be good. However, I don't have thunderbolt. So...
If I have a laptop that supports DP-alt-mode (like my Lenovo T14), the
latter two will both work, but the "USB-C Dock Gen 2" is a better dock
considering my hardware capabilities. It will have a native output
driven by my AMD GPU. (This is also the dock I use).
If my laptop doesn't support alt-mode (like my wife's Lenovo Flex), the
first two docks will never give me video out (but everything else will
probably work).
As a consumer, am I supposed to know that my T14 has alt-mode? Am I
supposed to know my Flex 14 doesn't? They both have the same Ryzen CPU &
GPU. I only found out after researching why my dock didn't work with my
wife's laptop.
Last year my parents were looking at a USB-C dock in a store, and I was
on the phone trying to figure out what specific laptop they have, and
what specific dock they're looking at, to figure out if this dock will
work with it. At least Costco has hassle-free returns (yay e-waste).
Part of the problem is "usb-c" is a port that can be used for many
things -- power, displayport, audio, thunderbolt, usb... Only one of
those is *actually* usb, despite the name of the port. The rest of those
are port-specific features that have nothing to do with usb, and vary
from device to device. You can't use a usb-a adapter and have them work.
You can't assume a USB-C charger will charge a laptop with USB-C ports.
You can't even assume that the usb-c headphone adapter for my old phone
will work with my new one.
This is totally counter to old usb "if it fits, it works", even if I'm
plugging a usb-3.0 HDD into a usb-2.0 computer, or a 1.1 keyboard into a
3.0 port. But I'm going to try to limit myself to one novel-length rant
per day... :)
>Attempt 1 was using usb-A to usb-C adapter and trying hdmi thing that
>works with PinePhone (DisplayPort over usb something). But system
>didn't recognize it.
Pinephone specs state it supports Displayport Alt Mode, and the dongle
uses that. So you can't adapt that to USB-A because it's actually a
usb-c port feature, not a usb feature.
I just grabbed my Pinephone dongle to confirm, and it works on my
laptop, using DP-alt mode, because my laptop is plumbed for that in
hardware.
And to touch the point above about HDMI alt-mode dongles, the Pinephone
dongle uses DP-Alt mode, and has a Chrontel CH7210 to convert that to
HDMI. Because HDMI alt-mode doesn't exist, even in a device that ships
with an HDMI-only dongle.
--
Chris Irwin
email: chris at chrisirwin.ca
web: https://chrisirwin.ca
More information about the kwlug-disc
mailing list