Package: libaquamarine10
Version: 0.11.0-2~bpo13+1
Severity: important
Tags: fixed-upstream

Hello,

I would like to report a reproducible HDMI hotplug/reconnect failure with 
Aquamarine 0.11.0 from trixie-backports on a Raspberry Pi 5, together with a 
controlled A/B test of the upstream fix.

Environment

Hardware:

-

Raspberry Pi 5 / BCM2712

-

arm64

-

Two HDMI displays

Software at the time of the final test:

-

Raspberry Pi OS / Debian trixie-based system

-

Linux 6.18.39+rpt-rpi-2712

-

Hyprland 0.55.2

-

libaquamarine10 0.11.0-2~bpo13+1

Displays:

-

HDMI-A-1: TCL Roku TV

-

HDMI-A-2: PDi monitor

User-visible failure

Both displays initially operate normally.

A reliable real-world reproduction was:

-

Start Hyprland with both displays working.

-

Power the displays off.

-

Leave them off for a period of time.

-

Power them back on.

HDMI-A-2 would commonly remain at "No Signal" immediately after reconnection. 
HDMI-A-1 could also eventually become unrecoverable.

The Raspberry Pi itself remained alive.

The same Raspberry Pi and display hardware had previously been operated with 
Sway for approximately 305 days, including repeated display power cycling, 
without this failure.

Failed-state observations

During a failed HDMI-A-2 reconnect:

/sys/class/drm/card1-HDMI-A-2/status

reported:

connected

while DRM state showed the connector with:

crtc=(null)

and HDMI-A-2 was absent entirely from:

hyprctl monitors all

Further tracing established that:

-

the kernel generated the DRM hotplug notification,

-

Aquamarine/Hyprland received the notification,

-

userspace subsequently issued DRM_IOCTL_MODE_GETCONNECTOR,

-

the kernel returned valid connector/mode information,

-

but no final HDMI-A-2 activation atomic request reached DRM.

This indicated that the kernel was detecting the returned display correctly, 
but userspace was aborting before requesting its reactivation.

Aquamarine failure

With Aquamarine logging enabled, the failed reconnect produced:

drm: Connector HDMI-A-2 connected

drm: Connecting connector HDMI-A-2, CRTC ID 106

followed by:

[EGL] Command eglQueryDeviceStringEXT errored out with EGL_BAD_PARAMETER

CDRMRenderer(drm): Can't create renderer, no matching devices found

drm: initMgpu: no renderer

drm: Failed to update renderer state for HDMI-A-2 on connect

Following the Aquamarine 0.11.0 source showed that failure of the 
renderer-state update causes the connector connect() path to abort before the 
output is successfully made available to Hyprland.

Raspberry Pi DRM/render-node topology

The relevant device topology on this Raspberry Pi 5 is split:

KMS/display device:

/dev/dri/card1

parent approximately:

/sys/devices/platform/axi/axi:gpu

Render device:

/dev/dri/renderD128

parent approximately:

/sys/devices/platform/axi/1002000000.v3d

There is exactly one renderD* device on the system.

Therefore the KMS/display device and V3D rendering device do not have the same 
immediate parent syspath.

Upstream fix

Aquamarine upstream PR #291:

https://github.com/hyprwm/aquamarine/pull/291

was merged as commit:

f44fecf

https://github.com/hyprwm/aquamarine/commit/f44fecf

The change adds a fallback to the sole renderD node when normal parent-syspath 
matching fails on a system containing exactly one render node.

Although the upstream report primarily discusses Apple/Asahi split-node 
hardware, Raspberry Pi 5 has a topology that exercises the same condition.

Controlled A/B test

Rather than installing a newer Aquamarine release, I downloaded the exact 
Debian source package:

aquamarine 0.11.0-2~bpo13+1

and applied only upstream commit f44fecf.

I rebuilt it locally as:

libaquamarine10 0.11.0-2~bpo13+1+f44fecf1

No other Aquamarine changes were introduced.

Before applying f44fecf, power-cycling HDMI-A-2 repeatedly reproduced:

-

eglQueryDeviceStringEXT failure

-

Can't create renderer, no matching devices found

-

initMgpu: no renderer

-

Failed to update renderer state for HDMI-A-2 on connect

-

HDMI-A-2 absent from Hyprland

-

physical PDi display reporting No Signal

With the same system and only f44fecf added, repeating the same monitor 
power-cycle produced:

-

HDMI-A-2 present in hyprctl monitors all

-

dpmsStatus: 1

-

disabled: false

-

physical video signal restored to the PDi display

-

the previous HDMI-A-2 renderer-init failure sequence absent from the reconnect 
capture

Extended validation

The locally patched package has now been in normal operation for approximately 
five days.

During that period:

-

both displays remained powered off over an entire weekend and recovered 
normally when powered back on,

-

two additional overnight display-off periods also recovered normally,

-

the original No Signal failure has not recurred.

Before applying the patch, leaving both monitors off overnight was a reliable 
real-world way of encountering the failure.

Requested action

Could you please consider cherry-picking upstream commit f44fecf into the 
Aquamarine 0.11.0 package currently shipped by trixie-backports, or otherwise 
provide the equivalent fix through the backports update path?

The single-commit cherry-pick has been sufficient on this Raspberry Pi 5 and 
avoids requiring the newer Aquamarine ABI solely to obtain this fix.

I can provide the complete diagnostic logs, DRM state captures, strace 
evidence, exact package-build procedure, and additional hardware/software 
information if useful.

Thank you.

Sent with [Proton Mail](https://proton.me/mail/home) secure email.

Reply via email to