The scenario is two identical 4K-HDR@60Hz DP1.2 monitors plugged into their own TB3 docks plugged into two different TB4 ports on my laptop, and a closed laptop lid (eDP off)
The expected behavior is for both my monitors to enumerate on boot, with mirrored kernel consoles to appear on boot, or as drm initializes, and then for gdm to present a login screen on one of the two monitors as part of an extended desktop across both screens side-by-side.
What happens is that one of the monitors remains blank on boot, even after drm has initialized devices, and then as gdm loads, the opposite monitor comes to life, and the one that showed drm output during boot goes blank. Blank is off, not a lit black screen. The one that is off when gdm is loaded (on previously during boot) is actually where gdm is attempting to display the login prompt. The one that is now on is just lit with a solid black background, which is normal for the second monitor on a desktop extended across both screens. I am familiar with the login, so without seeing the actual login prompt, I can just login as if I could see it on the blank screen, and wayland loads up. Unfortunately even as wayland takes over and applies my display settings, there is no change and the primary display is still off.
I see my desktop wallpaper and icon bar, and can right-click on the desktop and launch the Display Settings, which confirms that wayland thinks both displays are lit. To workaround the issue, and to make the primary display active, I just open display 1 settings and toggle the refresh from 60Hz to 30Hz, and then back to my desired 60Hz, and the screen that was off lights up. Both monitors are now active in 4K@60Hz, like the intended boot settings.
Inspecting xrandr, wayland_info and drm_info shows that drm_info does not align with the other two outputs. I have attached the full outputs as xrandr.txt, wayland.txt and drm.txt respectively.
The drm_info shows the preferred resolutions are correct, but for CRTC 1 (CRTC ID 167) it show the mode @30.00Hz, even though the monitor is running at @60Hz.
The exerpts from xrandr and wayland_info report the correct, running 60Hz on both monitors.
imac@imac-X1-Yoga:~$ cat xrandr.txt | grep 3840
2:DP-5 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 600mm x 340mm
3: 3840x2160 59.98*+
41:DP-8 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
42: 3840x2160 59.98*+
Additionally, I see these messages in the journal which seem related:
3689:Jun 15 13:21:22 imac-X1-Yoga gnome-shell[3006]: Page flip failed: Failed to set mode 3840x2160 on CRTC 167: Invalid argument
3690:Jun 15 13:21:22 imac-X1-Yoga gnome-shell[3006]: Failed to post KMS update: Failed to set mode 3840x2160 on CRTC 167: Invalid argument
3695:Jun 15 13:21:22 imac-X1-Yoga gnome-shell[3006]: Page flip failed: Page flip of 167 failed, and no mode set available
I am looking hard at i915/xe/drm as the culprit, especially given the conflicting output from drm_info after I toggle the monitors into the correct working configuration manually.
I have another laptop (XPS 13 9380 with TB3 ports) where the monitors and docks work properly (expected behavior) so it does look to be isolated to how drm is working in this setup.
ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: linux-image-6.8.0-35-generic 6.8.0-35.35+1
ProcVersionSignature: Ubuntu 6.8.0-35.35-generic 6.8.4
Uname: Linux 6.8.0-35-generic x86_64
ApportVersion: 2.28.1-0ubuntu3
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: ubuntu:GNOME
Date: Sat Jun 15 14:07:15 2024
EcryptfsInUse: Yes
HibernationDevice: #RESUME=UUID=57cb4898-6884-49ba-a5ba-74ac837dd3e7
InstallationDate: Installed on 2017-12-08 (2382 days ago)
InstallationMedia: Ubuntu 17.10 "Artful Aardvark" - Release amd64 (20171018)
MachineType: LENOVO 20XY0027US
ProcFB: 0 i915drmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-6.8.0-35-generic root=UUID=55cd97c8-08cc-4c11-8fb2-a7e0e7b10386 ro intel_iommu=igfx_off acpi_enforce_resources=lax mitigations=off
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No PulseAudio daemon running, or not running as session daemon.
RelatedPackageVersions:
linux-restricted-modules-6.8.0-35-generic N/A
linux-backports-modules-6.8.0-35-generic N/A
linux-firmware 20240318.git3b128b60-0ubuntu2.1
SourcePackage: linux
UpgradeStatus: Upgraded to noble on 2024-05-06 (40 days ago)
dmi.bios.date: 02/02/2024
dmi.bios.release: 1.67
dmi.bios.vendor: LENOVO
dmi.bios.version: N32ET91W (1.67 )
dmi.board.asset.tag: Not Available
dmi.board.name: 20XY0027US
dmi.board.vendor: LENOVO
dmi.board.version: SDK0K17763 WIN
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 31
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.ec.firmware.release: 1.36
dmi.modalias: dmi:bvnLENOVO:bvrN32ET91W(1.67):bd02/02/2024:br1.67:efr1.36:svnLENOVO:pn20XY0027US:pvrThinkPadX1YogaGen6:rvnLENOVO:rn20XY0027US:rvrSDK0K17763WIN:cvnLENOVO:ct31:cvrNone:skuLENOVO_MT_20XY_BU_Think_FM_ThinkPadX1YogaGen6:
dmi.product.family: ThinkPad X1 Yoga Gen 6
dmi.product.name: 20XY0027US
dmi.product.sku: LENOVO_MT_20XY_BU_Think_FM_ThinkPad X1 Yoga Gen 6
dmi.product.version: ThinkPad X1 Yoga Gen 6
dmi.sys.vendor: LENOVO
The scenario is two identical 4K-HDR@60Hz DP1.2 monitors plugged into their own TB3 docks plugged into two different TB4 ports on my laptop, and a closed laptop lid (eDP off)
The expected behavior is for both my monitors to enumerate on boot, with mirrored kernel consoles to appear on boot, or as drm initializes, and then for gdm to present a login screen on one of the two monitors as part of an extended desktop across both screens side-by-side.
What happens is that one of the monitors remains blank on boot, even after drm has initialized devices, and then as gdm loads, the opposite monitor comes to life, and the one that showed drm output during boot goes blank. Blank is off, not a lit black screen. The one that is off when gdm is loaded (on previously during boot) is actually where gdm is attempting to display the login prompt. The one that is now on is just lit with a solid black background, which is normal for the second monitor on a desktop extended across both screens. I am familiar with the login, so without seeing the actual login prompt, I can just login as if I could see it on the blank screen, and wayland loads up. Unfortunately even as wayland takes over and applies my display settings, there is no change and the primary display is still off.
I see my desktop wallpaper and icon bar, and can right-click on the desktop and launch the Display Settings, which confirms that wayland thinks both displays are lit. To workaround the issue, and to make the primary display active, I just open display 1 settings and toggle the refresh from 60Hz to 30Hz, and then back to my desired 60Hz, and the screen that was off lights up. Both monitors are now active in 4K@60Hz, like the intended boot settings.
Inspecting xrandr, wayland_info and drm_info shows that drm_info does not align with the other two outputs. I have attached the full outputs as xrandr.txt, wayland.txt and drm.txt respectively.
The drm_info shows the preferred resolutions are correct, but for CRTC 1 (CRTC ID 167) it show the mode @30.00Hz, even though the monitor is running at @60Hz.
imac@imac- X1-Yoga: ~$ cat drm.txt | grep -A8 "CRTC 1"
485:│ ├───CRTC 1
486-│ │ ├───Object ID: 167
487-│ │ ├───Legacy info
488-│ │ │ ├───Mode: 3840x2160@30.00 driver phsync nvsync
489-│ │ │ └───Gamma size: 256
490-│ │ └───Properties
491-│ │ ├───"ACTIVE" (atomic): range [0, 1] = 1
492-│ │ ├───"MODE_ID" (atomic): blob = 389
493-│ │ │ └───3840x2160@30.00 driver phsync nvsync
The exerpts from xrandr and wayland_info report the correct, running 60Hz on both monitors.
imac@imac- X1-Yoga: ~$ cat xrandr.txt | grep 3840
2:DP-5 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 600mm x 340mm
3: 3840x2160 59.98*+
41:DP-8 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
42: 3840x2160 59.98*+
imac@imac- X1-Yoga: ~$ cat wayland.txt | grep 3840
25: x: 3840, y: 0, scale: 2,
30: width: 3840 px, height: 2160 px, refresh: 59.996 Hz,
40: width: 3840 px, height: 2160 px, refresh: 59.996 Hz,
47: logical_x: 3840, logical_y: 0
48: logical_width: 3840, logical_height: 2160
54: logical_width: 3840, logical_height: 2160
Additionally, I see these messages in the journal which seem related:
3689:Jun 15 13:21:22 imac-X1-Yoga gnome-shell[3006]: Page flip failed: Failed to set mode 3840x2160 on CRTC 167: Invalid argument
3690:Jun 15 13:21:22 imac-X1-Yoga gnome-shell[3006]: Failed to post KMS update: Failed to set mode 3840x2160 on CRTC 167: Invalid argument
3695:Jun 15 13:21:22 imac-X1-Yoga gnome-shell[3006]: Page flip failed: Page flip of 167 failed, and no mode set available
I am looking hard at i915/xe/drm as the culprit, especially given the conflicting output from drm_info after I toggle the monitors into the correct working configuration manually.
I have another laptop (XPS 13 9380 with TB3 ports) where the monitors and docks work properly (expected behavior) so it does look to be isolated to how drm is working in this setup.
ProblemType: Bug 6.8.0-35- generic 6.8.0-35.35+1 ature: Ubuntu 6.8.0-35.35-generic 6.8.4 esult: unknown UUID=57cb4898- 6884-49ba- a5ba-74ac837dd3 e7 /boot/vmlinuz- 6.8.0-35- generic root=UUID= 55cd97c8- 08cc-4c11- 8fb2-a7e0e7b103 86 ro intel_iommu= igfx_off acpi_enforce_ resources= lax mitigations=off ersions: restricted- modules- 6.8.0-35- generic N/A backports- modules- 6.8.0-35- generic N/A git3b128b60- 0ubuntu2. 1 asset.tag: Not Available asset.tag: No Asset Information version: None firmware. release: 1.36 bvrN32ET91W( 1.67):bd02/ 02/2024: br1.67: efr1.36: svnLENOVO: pn20XY0027US: pvrThinkPadX1Yo gaGen6: rvnLENOVO: rn20XY0027US: rvrSDK0K17763WI N:cvnLENOVO: ct31:cvrNone: skuLENOVO_ MT_20XY_ BU_Think_ FM_ThinkPadX1Yo gaGen6: MT_20XY_ BU_Think_ FM_ThinkPad X1 Yoga Gen 6 version: ThinkPad X1 Yoga Gen 6
DistroRelease: Ubuntu 24.04
Package: linux-image-
ProcVersionSign
Uname: Linux 6.8.0-35-generic x86_64
ApportVersion: 2.28.1-0ubuntu3
Architecture: amd64
CasperMD5CheckR
CurrentDesktop: ubuntu:GNOME
Date: Sat Jun 15 14:07:15 2024
EcryptfsInUse: Yes
HibernationDevice: #RESUME=
InstallationDate: Installed on 2017-12-08 (2382 days ago)
InstallationMedia: Ubuntu 17.10 "Artful Aardvark" - Release amd64 (20171018)
MachineType: LENOVO 20XY0027US
ProcFB: 0 i915drmfb
ProcKernelCmdLine: BOOT_IMAGE=
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No PulseAudio daemon running, or not running as session daemon.
RelatedPackageV
linux-
linux-
linux-firmware 20240318.
SourcePackage: linux
UpgradeStatus: Upgraded to noble on 2024-05-06 (40 days ago)
dmi.bios.date: 02/02/2024
dmi.bios.release: 1.67
dmi.bios.vendor: LENOVO
dmi.bios.version: N32ET91W (1.67 )
dmi.board.
dmi.board.name: 20XY0027US
dmi.board.vendor: LENOVO
dmi.board.version: SDK0K17763 WIN
dmi.chassis.
dmi.chassis.type: 31
dmi.chassis.vendor: LENOVO
dmi.chassis.
dmi.ec.
dmi.modalias: dmi:bvnLENOVO:
dmi.product.family: ThinkPad X1 Yoga Gen 6
dmi.product.name: 20XY0027US
dmi.product.sku: LENOVO_
dmi.product.
dmi.sys.vendor: LENOVO