[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