** Description changed:

  [Impact]
  
  Plymouth draws the splash separately on every DRM display controller. A
  tiled monitor is one panel driven through several controllers, described
  by the connector TILE property, so plymouth draws a full splash on each
  tile.
  
  On a Dell UP3218K (7680x4320, two tiles) boot and shutdown show two
  logos and two spinners side by side instead of one. 26.04 LTS and 26.10
  ship the same plymouth snapshot (24.004.60+git20250831) and are both
  affected, as is the current 27.04 development series.
  
  [Fix]
  
  Cherry-pick seven commits from upstream main. They are not in any
  upstream release yet (the latest, 26.134.222, predates them). All apply
  unmodified, with line offsets only.
  
-   43b66bfe drm: guard gamma ramp setup against bogus gamma_size
-   d06b757a drm: Parse tiled display metadata
-   dd685898 drm: Select modes for display tiles
-   dd677c87 drm: Plan tiled display geometry
-   94cb2c8c drm: Store scanout state per controller
-   b3342873 drm: Read connector tile properties
-   12309506 drm: Combine tiled outputs into logical heads
+   43b66bfe drm: guard gamma ramp setup against bogus gamma_size
+   d06b757a drm: Parse tiled display metadata
+   dd685898 drm: Select modes for display tiles
+   dd677c87 drm: Plan tiled display geometry
+   94cb2c8c drm: Store scanout state per controller
+   b3342873 drm: Read connector tile properties
+   12309506 drm: Combine tiled outputs into logical heads
  
  The last six are MR !496. 43b66bfe (MR !411) is a prerequisite for
  94cb2c8c. The MR's three test-only commits are left out: they extend
  upstream's unit-test suite, which is newer than the packaged snapshot,
  and they don't change the shipped binaries.
  
  The same seven patches go into 27.04 (0ubuntu11), 26.10 (0ubuntu10.1)
  and 26.04 (0ubuntu8.2). They only touch src/plugins/renderers/drm/.
  
  [Test Plan]
  
  On 26.04 or 26.10 with a Dell UP3218K connected by both DisplayPort
  cables, booted with plymouth.debug:
  
  1. With the current archive version (26.04: -0ubuntu8 or -0ubuntu8.1,
-    26.10: -0ubuntu10): two logos and two spinners at boot and shutdown.
+    26.10: -0ubuntu10): two logos and two spinners at boot and shutdown.
  2. With the update: one logo and one spinner, centred, at boot and
-    shutdown. /var/log/plymouth-debug.log contains "Creating 7680x4320
-    logical head for TILE group".
+    shutdown. /var/log/plymouth-debug.log contains "Creating 7680x4320
+    logical head for TILE group".
  
  Regression checks, which should look the same as with the current
  archive version:
-   - laptop panel only
-   - laptop panel plus a non-tiled external monitor
-   - full-disk encryption passphrase prompt
-   - a VM (e.g. QEMU with virtio-gpu)
+   - laptop panel only
+   - laptop panel plus a non-tiled external monitor
+   - full-disk encryption passphrase prompt
+   - a VM (e.g. QEMU with virtio-gpu)
  
  [Where problems could occur]
  
  Plymouth runs in the initramfs and at shutdown, and shows the
  disk-encryption passphrase prompt, so regressions would appear at boot
  or shutdown.
  
  * 94cb2c8c changes how every display is driven, not only tiled ones. A
-   mistake could mean a missing or misplaced splash, a black screen, or
-   plymouthd crashing. The worst case is an encrypted-disk user who
-   cannot see the passphrase prompt.
+   mistake could mean a missing or misplaced splash, a black screen, or
+   plymouthd crashing. The worst case is an encrypted-disk user who
+   cannot see the passphrase prompt.
  * The tiled path only runs for connectors with a TILE property, and
-   incomplete or inconsistent tile groups fall back to the old
-   behaviour. A wrong decision would show as a stretched, cropped or
-   still duplicated splash on a tiled monitor.
+   incomplete or inconsistent tile groups fall back to the old
+   behaviour. A wrong decision would show as a stretched, cropped or
+   still duplicated splash on a tiled monitor.
  * 12309506 recalculates the panel size used to place the firmware
-   (BGRT) logo, which could move it on multi-display systems.
+   (BGRT) logo, which could move it on multi-display systems.
  
  [Other Info]
  
  * Upstream issue: 
https://gitlab.freedesktop.org/plymouth/plymouth/-/issues/353
  * MRs: https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/496
-        https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/411
- * Upload order: 27.04 (tenacious) first, then the 26.10 SRU, then the
-   26.04 SRU.
+        https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/411
  * The 26.04 upload (0ubuntu8.2) is built on top of 0ubuntu8.1 from
-   bug 2144770, which is in resolute-proposed. The two changes don't
-   overlap: that one only touches src/main.c.
+   bug 2144770, which is in resolute-proposed. The two changes don't
+   overlap: that one only touches src/main.c.
  * Test builds of the same source are in ppa:phantomba/verification:
-   26.04 0ubuntu8.2~ppa1, 26.10 0ubuntu10.1~ppa1, 27.04 0ubuntu11~ppa1
-   (build check only).
+   26.04 0ubuntu8.2~ppa1, 26.10 0ubuntu10.1~ppa1, 27.04 0ubuntu11~ppa1
+   (build check only).
  * The same code, built in PPA ~kchsieh/verification, was tested on 26.04
-   with a UP3218K (comment #2).
+   with a UP3218K (comment #2).
  * Comment #4 (patched 5K iMac, 26.10 beta): once the GPU driver was up,
-   boot and shutdown showed a single splash across the tiled panel. The
-   low-resolution phase before that is probably the firmware framebuffer
-   (comment #6); a plymouth-debug log is needed to confirm. The change
-   adds no waiting logic, and incomplete tile groups fall back to
-   independent heads immediately.
+   boot and shutdown showed a single splash across the tiled panel. The
+   low-resolution phase before that is probably the firmware framebuffer
+   (comment #6); a plymouth-debug log is needed to confirm. The change
+   adds no waiting logic, and incomplete tile groups fall back to
+   independent heads immediately.
  
  --- Original description ---
  
  The DRM renderer currently creates a separate head for every active display
  controller. A tiled monitor exposes several controllers for segments of the
  same physical panel, so Plymouth lays out the splash independently on each
  segment.
  
  On displays such as the Dell UP3218K, that behavior produces two logos and two
  progress indicators across one 7680x4320 monitor. DRM already provides the
  group, grid position, and tile dimensions needed to identify the physical
  layout.
  
  This has been fixed upstream here:
  
  
https://gitlab.freedesktop.org/plymouth/plymouth/-/commit/a2ef9b02a1aa1a43c9234097af60097ae5bf6498
  
  This should be brought into Ubuntu to increase tiled display
  compatibility

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2167376

Title:
  Plymouth doesn't handle tiled displays properly

To manage notifications about this bug go to:
https://bugs.launchpad.net/oem-priority/+bug/2167376/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to