Dell displayport YJ3Y6 adapter doesn't drive 4K screen properly

Bug #1886729 reported by Robert Collins
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mutter (Ubuntu)
Undecided
Unassigned
xorg-server (Ubuntu)
Undecided
Unassigned

Bug Description

I have some early dell 4k 60hz screens - the ones which report 2 panels internally for DP 60Hz - horrid hack I know; I recently got a new XPS laptop and put Ubuntu on it.

That XPS laptop has two USB-C/thunderbolt ports, so to drive the screens I bought two slightly different DP adapters - one with power passthrough, and a cheaper one that only does DP.

The more expensive one 'USB-C to HDMI/DP' drives the monitor happily over DP, though sadly only at 30Hz - can't have everything :/. It reports one monitor as one output: DP-1 in the attached information:

DP-1 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
   3840x2160 29.98*+ 30.00 29.97
   1920x1200 59.88
...

The cheaper one reports the single monitor as two distinct outputs, at 60hz interestingly -

DP-3-8 connected (normal left inverted right x axis y axis)
   1920x2160 59.99 +
DP-3-9 connected 1920x2160+7680+0 (normal left inverted right x axis y axis) 527mm x 296mm
   1920x2160 59.99*+
   1920x1200 59.88

 which in theory if summed together would be one whole screen. But attempting to configure the output results in an error:

xrandr --output DP-1 --auto --left-of eDP-1 --output DP-3-9 --auto --right-of DP-3-8 --output DP-3-8 --auto --right-of eDP-1
xrandr: cannot find crtc for output DP-3-8

I'm not sure if this is an intrinsic limitation of the USB-C->DP dongle, or whether there is something that can be done in the software to deal with this 10 year old hardware hack I have sitting on my desktop.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: xorg 1:7.7+19ubuntu14
ProcVersionSignature: Ubuntu 5.4.0-40.44-generic 5.4.44
Uname: Linux 5.4.0-40-generic x86_64
ApportVersion: 2.20.11-0ubuntu27.3
Architecture: amd64
BootLog: Error: [Errno 13] Permission denied: '/var/log/boot.log'
CasperMD5CheckResult: skip
CompositorRunning: None
CurrentDesktop: ubuntu:GNOME
Date: Wed Jul 8 11:20:17 2020
DistUpgraded: Fresh install
DistroCodename: focal
DistroVariant: ubuntu
ExtraDebuggingInterest: Yes, including running git bisection searches
GraphicsCard:
 Intel Corporation Iris Plus Graphics G7 [8086:8a52] (rev 07) (prog-if 00 [VGA controller])
   Subsystem: Dell Iris Plus Graphics G7 [1028:096d]
InstallationDate: Installed on 2020-07-07 (0 days ago)
InstallationMedia: Ubuntu 20.04 LTS "Focal Fossa" - Release amd64 (20200423)
MachineType: Dell Inc. XPS 13 9300
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-5.4.0-40-generic root=/dev/mapper/vgubuntu-root ro quiet splash vt.handoff=7
SourcePackage: xorg
Symptom: display
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 05/08/2020
dmi.bios.vendor: Dell Inc.
dmi.bios.version: 1.0.11
dmi.board.name: 0WX9VX
dmi.board.vendor: Dell Inc.
dmi.board.version: A00
dmi.chassis.type: 10
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvr1.0.11:bd05/08/2020:svnDellInc.:pnXPS139300:pvr:rvnDellInc.:rn0WX9VX:rvrA00:cvnDellInc.:ct10:cvr:
dmi.product.family: XPS
dmi.product.name: XPS 13 9300
dmi.product.sku: 096D
dmi.sys.vendor: Dell Inc.
version.compiz: compiz N/A
version.libdrm2: libdrm2 2.4.101-2
version.libgl1-mesa-dri: libgl1-mesa-dri 20.0.8-0ubuntu1~20.04.1
version.libgl1-mesa-glx: libgl1-mesa-glx N/A
version.xserver-xorg-core: xserver-xorg-core 2:1.20.8-2ubuntu2.1
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev N/A
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:19.1.0-1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.99.917+git20200226-1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.16-1

Revision history for this message
Robert Collins (lifeless) wrote :
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

You certainly seem to have the latest and greatest Intel GPU which should support 4K up to 120Hz:

  https://ark.intel.com/content/www/us/en/ark/products/196597/intel-core-i7-1065g7-processor-8m-cache-up-to-3-90-ghz.html

So I suspect using "adapters" is the main issue. If you can then please try to get a Thunderbolt-to-DisplayPort CABLE. The Thunderbolt end looks like USB-C but it's much more capable and can carry a full-speed DisplayPort signal.

This is probably not a software bug, or if it is then probably not one we need to worry about if you just get a different cable. In the meantime you might want to try selecting 'Ubuntu on Wayland' from the login screen to see if the experience is any different there.

affects: xorg (Ubuntu) → xorg-server (Ubuntu)
Changed in xorg-server (Ubuntu):
status: New → Incomplete
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

IIRC, upstream GNOME/mutter has done some fixes for dual-link displays recently but upstream mostly only care about Wayland. So you might have more luck using 'Ubuntu on Wayland'.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Hmm, it seems Thunderbolt-DisplayPort cables are pretty rare. Instead of searching for those I suggest looking for adapters that are explicitly for "Thunderbolt" and not "USB".

USB 3.0 has a bandwidth of 5 Gbps
USB 3.1 has a bandwidth of 10 Gbps

4K at 60Hz however requires 3840x2160x4 (33177600) bytes per frame, 265420800 bits per frame, or ~16 Gbps. USB never had a chance and at best would give you only 30Hz.

So make sure your adapters are "Thunderbolt" and not "USB". Thunderbolt 3 in your laptop supports 40 Gbps which is enough for 4K at 120Hz.

Revision history for this message
Robert Collins (lifeless) wrote :

Thank you for the response. I think these might fall into the third category of 'VESA is its own special story' ?

I bought both the adapters from the dell configurator at the time I bought the machine.

This is the part that flakes: https://www.dell.com/en-us/shop/accessories/apd/470-acfc
The other part, that works fine

It is advertised as suitable for 4K 60hz, which as you note exceeds USB3.1, but see the link from the dell site - https://www.usb.org/sites/default/files/D2T1-4%20-%20VESA%20DP%20Alt%20Mode%20over%20USB%20Type-C.pdf - it is not being carried over USB, but over alt-mode DP as far as I can tell, which should have plenty of bandwidth.

The monitors are, from memory DP 1.2, requiring MST to operate - https://downloads.dell.com/manuals/all-products/esuprt_display_projector/esuprt_display/dell-up2414q_user%27s%20guide_en-us.pdf confirms this.

However, the mystery deepens.

There are two USB-C/thunderbolt connectors on the laptop. My initial report had the combined-power-HDMI-DP one in the left connector, and the DP only one in the right connector.

On a lets-be-pedantic hunch I just plugged them in on the opposite sides.

With the DP only adapter plugged in on the left side, it:
 - reports both the MST panels
 - both panels autoconfigure for a combined 4k 60hz
 - yay!

"""
DP-1-8 connected 1920x2160+5760+0 (normal left inverted right x axis y axis) 527mm x 296mm
   1920x2160 59.99*+
DP-1-9 connected 1920x2160+3840+0 (normal left inverted right x axis y axis) 527mm x 296mm
   1920x2160 59.99*+
   1920x1200 59.88
"""

With both adapters plugged in, the DP only one still on the left side, the behaviour that I originally filed the bug because of returns:
"""
xrandr --output DP-3 --auto --output DP-1-8 --auto --output DP-1-9 --auto
xrandr: cannot find crtc for output DP-1-9
"""

If I turn DP-3 off I can run the single DP monitor fine even though the adapter is plugged in.

This behaviour is also consistent if I switch the power/hdmi/dp adapter to use HDMI rather than DP.

What I had hoped to do is to use - ideally - all three outputs, or at worst, two external outputs and have my laptop folded flat and out of the way while I use my clicky-clacky keyboard and real mouse at my desk; being able to use either adapter, one at a time, is a dissapointment.

What I think this shows so far:
- each adapter works independently, with either adapter, from either USB-C port.
- something I don't know enough about yet causes some resource constraint or conflict when both external screens are in use.

Changed in xorg-server (Ubuntu):
status: Incomplete → New
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thanks for pointing that out. I was wondering why so many adapters/cables for sale only mention "USB" while also claiming to do 4K60Hz...

  https://www.displayport.org/displayport-over-usb-c/

So Thunderbolt isn't required, only USB 3.1 Alternate Mode and a powerful (probably only *integrated*) GPU that can link to it.

You might have hit some kind of bandwidth limitation using both USB-C ports at once. Although that doesn't make sense at Thunderbolt 3 speeds, it would make sense at USB speeds. And even if USB 3.1 speeds are being surpassed to support Alternate Mode your chipset/GPU might only know how to do it on one port at a time. So this might not be fixable...

Also remember to try 'Ubuntu on Wayland' which uses a completely different code path for all this.

Changed in xorg-server (Ubuntu):
status: New → Incomplete
status: Incomplete → New
Changed in mutter (Ubuntu):
status: New → Incomplete
Revision history for this message
Robert Collins (lifeless) wrote :

It is super snappy but doesn't work any better: one of the external monitors, or the other but not both.

I'm unfamiliar with Wayland, and Googling around has not found any equivalent tools to xrandr to let me interrogate what the system thinks is going on, so I've included a screenshot of the displays control panel.

What further diagnostics would you like me to perform?

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

If the same fundamental issue persists in Wayland sessions then it sounds like a hardware limitation or a kernel problem. To help identify which, the Mutter developers might have some suggestions so please report the issue here:

  https://gitlab.gnome.org/GNOME/mutter/issues

Changed in mutter (Ubuntu):
status: Incomplete → New
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers