This is a re-post of something I originally wrote here in 2022: https://www.reddit.com/r/mac/comments/idaz2s/comment/idt7k4b/?utm_source=share&utm_medium=web2x&context=3
Keyboard and mouse lag using USB-C hubs is highly inconvenient and incredibly annoying.

Generally speaking, unless a dock has USB GPU (DisplayLink which is more expensive and uses CPU) then a USB C 3 gen 2 dock with DisplayPort or HDMI port utilizes a clever feature called DisplayPort Alternate mode (DP Alt mode). This enables the dock to expose DisplayPort or HDMI ports, directly from the CPU. This is also used for a USB C monitor, which is a seriously cool feature, when connected to any USB C host port. Note that when the dock has HDMI ports, is still using DP Alt mode and converts to HDMI in the dock.
Up to 1440p 60Hz (or 4K 30Hz) this uses 2 PCI-e lanes. This leaves 2 lanes for the USB 3 functions and limited to 5Gbps.
At 4K 60 Hz this uses either: 4 lanes or 2 lanes for DP Alt mode.
When it’s 4 lanes, USB 3 functions are not possible and USB 2 is achieved over signaling channels. In this scenario it’s pretty horrible performance, even for USB 2 devices like a keyboard and mouse.
2 lane 4k 60Hz is only possible if the CPU supports DisplayPort 1.4. This is because it came with a new feature called Display Stream Compression (DSC). But it’s not quite that easy even then. The dock would have to be of a quality and design that has recognized this opportunity to implement and done so. I have one of these by a company called DockCase, which was released in 2021/2022. This device has an LCD and is user configurable to force USB bandwidth vs video lanes. I have verified that it is capable of 4K 60 Hz with DP 1.4 DSC enabled and provides 5Gbps USB 3 performance for the ports and Ethernet simultaneously. Although if 1Gbps Ethernet is connected it will get hot. https://www.dockcase.com/products/dockcase-usb-c-smart-hb-8-1
Remember, if you are at 1440p 60Hz or below and have only one display on the dock you are using 2 lane DP Alt mode and leaves 2 lanes for USB 3 functions. In this scenario performance issues are not bandwidth related. If you have a dock with two monitors running at 60Hz you’ll be using 4 lanes. If you have two monitors at 1440p or lower at 30Hz you’ll be using 2 lanes.
If your host port is USB gen 1 5Gbps then you can forget using display and USB on the same dock. It’s an either or decision.
As a point of comparison, if you are looking at TB3 and TB4 docks there is a jump from 10Gbps to 40Gbps and the conversation changes.
So keep in mind if your USB C connector on the host and the dock will be using USB 3 gen 1 (5Gbps) gen 2 (10Gbps), TB3/TB4 (40Gbps) etc. I didn’t mention USB 4 (20 and 40Gbps) as it already has a bit of a personality disorder and I haven’t seen it on any dock products, as of this writing (in 2022).
So all this background and to what end…
Well, even in TB3 eGPU, when there are USB and Ethernet ports, the best eGPU platforms add two TB3 controllers, because there are reported mouse and keyboard performance problems. This, despite the dedicated 4 lane PCI-e feature of TB3, leaving significant unused capacity for the USB functions.
And with TB4 there are problems. I personally use the Anker TB4, 3 port hub version, with 2 displays over USB C (remember DP Alt mode?) One at 4K 60 Hz and the other at 1080p 60Hz, adding an additional downstream ‘cheap’ USB C dock on the third TB4 port, for lots of USB A ports and Ethernet.
Even with TB4, which you would think would be flawless, I have the exact same issue with mainly keyboard issues and sometimes mouse and once in a while Ethernet. I call it “the ghost in the machine,” when the keyboard is having issues. I don’t believe it’s host driver power management and not convinced it’s RF interference either. If the TB3 multiple controller designs are anything to go by, then I think there is an analogous parallel here too.
The fastest way to address is move the USB devices to a different host port, on a dedicated dock. This comes with the disadvantage of two wires to the host. Alternatively you can be sure it will work flawlessly with a dock that incorporated USB GPU from DisplayLink. But this comes at the expense of CPU utilization. Last but not last TB3 eGPU with multiple TB3 controllers. I’m yet to be convinced that this can be solved with TB4, from my own experiences, unless you have a single mega TB4 dock like the CalDigit TS4 which is a component level work of art. https://dancharblog.wordpress.com/2022/03/05/caldigit-ts4-teardown/
I hope that this brain dump is helpful to others. It’s many months of Internet research and reading.
Great resource by Dan Charlton on docks: https://dancharblog.wordpress.com/2021/02/05/usb4-tb4-docks/
Could this be an issue on hubs that have USB 2.0 ports created by a technique called port splitting? https://dancharblog.wordpress.com/2021/08/19/why-do-usb-c-hubs-still-have-usb-2-0-ports/
All about DP 1.4 DSC here: https://linustechtips.com/topic/1237459-what-is-displayport-14-display-stream-compression/





Leave a comment