[RESOLVED] USB-C / HDMI - 100Hz on Linux?

Hi,
I have a framework 13 laptop running with Debian 12. All works great out of the box! But I have an issue with the monitor resolution:

When I connect the laptop via HDMI with my Samsung 34 Inch Monitor I have a resolution of 3440x1440 and 100Hz - wow!

But when I connect the monitor via USB-C I have only got 3440x1440 and 60Hz :-/

My question is: is this an issue of my Linux/Debian? Or is it a hardware issue of the Framework or Monitor?

Thanks for help

====
Ralph

1 Like

Maybe the location of the port is interfering with the throughput? Since with the Ryzen 7040 series, not all of the expansion slots have the same capabilities as described in FW’s help center article.

Hi @gxnni , thanks a lot for your response. Very interesting! But I did not mention that I have a Framework 13 Intel Core 13thGen. So I am not sure, if for these models the position of the expansion cards is relevant too (but anyway I use now slot-1) .

At the end I solved the problem - it was the Monitor! There was a setting called “USB-C Preference” with the options “High Resolution” and “High-Speed Data”. The later was set per default.

After I changed this setting on the monitor to “High Resolution”, Linux Debian 12 showed the 100Hz option via USB-C too :slight_smile:

Everything is fine now. By the way, I used this test page to test the differences in detail: EIZO LCD Monitore für Office, Foto & Design, Medizin, Gaming, Industrie

4 Likes

On the Intel Framework Laptops all ports are equal (Intel’s laptop CPUs support 4 fully capable ports compared to just 2 on AMD’s laptop CPUs).

That makes sense.

USB-C has 4 SuperSpeed data connections. Those can either be allocated all to display data, all to USB data, or 2 connections to each.

Your monitor’s specifications indicate that it supports using the display connections in HBR2 mode (which is a surprisingly old mode for a monitor of those specs). HBR2 mode supports 5.4 Gbps per connection, however 1.08 Gbps of that is set aside for correcting corruption leaving 4.32 Gbps for display data per connection.

In High-Speed Data Mode your monitor likely allocates 2 lanes to each, allowing 8.64 Gbps for display data. Although there’s also overhead like blanking (blanking is bandwidth that is intentionally wasted to maintain compatibility with older monitors).

In High Resolution Mode your monitor likely allocates all 4 lanes to display data, allowing 17.28 Gbps for display data. That leaves only 480 Mbps for other purposes (ex. USB 2.0).

A 3440 x 1440p 100 Hz 10bpc display like yours requires 14.86 Gbps of bandwidth minimum.

The only way to make it work with only 8.64 Gbps of bandwidth is to drop both the refresh rate and color depth (how many different colors can be displayed). At a refresh rate of 60 Hz and a color depth of 8bpc it requires 7.13 Gbps.

2 Likes

Hi @Kyle_Reis,
thanks for this detailed explanation. The monitor has 1.07B colors - what ever that means :wink:
The cool feature is the integrated Hub. My Framework13 is now only connected via one(!) USB-C cable. The monitor provides Power, LAN (RJ45) and USB-A ports for additional periphery.

The only thing I changed in addtion in the BIOS was enabling the “Power Option” “Power on AC attach”. Now I can boot the laptop when power on the monitor.

That means that it uses 10 bits per color.

That means it uses 10 bits of data to identify how much red is in each pixel, 10 bits of data to identify how much blue is in each pixel, and 10 bits of data to identify how much green is in each pixel.

10 bits of data allows for 2^10 (1024) different levels of red, green, and blue.

1024 levels of each of the primary colors allows for 1024×1024×1024 = 1,073,741,824 different possible unique colors.

By comparison 8 bits per color is the most common color depth for a monitor to support. If you do the math with that you end up with “only” 16,777,216 possible colors that can be communicated between the computer and the display.

16.8 million compared to 1.07 billion might sound like a huge difference but when at that level the difference is barely perceptible because 16.8 million is already a lot. By comparison most streaming services use only 6 bits per color (262,144) and GIF files are typically limited to 256 possible unique colors.

The problem is that that hub has to share bandwidth with the display. In High-Speed Data mode it shares bandwidth equally, in High Resolution mode it allocates much more bandwidth to the display (allowing it to reach the full resolution, refresh rate, and color depth).

In High Resolution mode it leaves only about 480 Mbps available for the hub. That’s fine for a mouse and keyboard. It’s also okay for the average internet connection, although if you have a particularly fast connection or want to access stuff within your local network that will be limiting, and you won’t get the full speed of any USB 3.0 devices you have.

3440x1440p 100 Hz could potentially be achieved simultaneously with High-Speed Data mode if it is dropped to 8 bpc (16.8 million unique colors), 4:2:2 subsampling is enabled, and reduced blanking V2 is set.

4:2:2 chroma subsampling is essentially a compression algorithm that works by having the computer black and white data for every pixel but color data only for every other pixel. Because humans are more sensitive to changes in brightness than changes in color that results in the monitor displaying something that looks almost as good as if it had color data for all pixels (the downsides of chroma subsampling are most noticeable around text).

Blanking is bandwidth that is deliberately wasted to improve compatibility with old displays. Reduced blanking V2 is a configuration that reduces bandwidth wasted to blanking.

With all those combined it would have just barely enough bandwidth to work at 3440x1440p 100 Hz while still having plenty of bandwidth for the hub.

Thanks for posting this issue @Ralph_Soika , then later updated the cause and solution to the limited refresh rate. labeling this as solved, also welcome to the forums.