Skip to content

Framework Desktop AMD (Strix Halo): Aquamarine/DRM crashes on connector teardown and render path under Hyprland #272

Description

@johngig1

System

  • Hardware: Framework Desktop AMD Ryzen AI Max 300 Series
  • GPU: AMD Strix Halo / Radeon 8050S/8060S (1002:1586)
  • OS: Arch Linux / Omarchy
  • Hyprland: 0.54.3
  • Aquamarine: 0.10.0
  • Mesa: 26.0.3
  • Kernel tested:
    • linux
    • linux-lts

Symptoms

Frequent Hyprland crashes and earlier full freezes, often while using the mouse / scrolling in Chrome on X.com.

Originally the machine sometimes hard-froze and required reset. After switching to linux-lts and adding:

  • amdgpu.gpu_recovery=1
  • amdgpu.vm_update_mode=3
  • amdgpu.gttsize=8192

the kernel-level symptoms improved, but Hyprland/Aquamarine crashes still occur.

Crash signature 1: Aquamarine connector teardown SIGSEGV

This happened even in safe mode:
Hyprland --watchdog-fd 4 --safe-mode
coredumpctl / gdb shows:

Aquamarine::SDRMConnector::disconnect()
Aquamarine::SDRMConnector::~SDRMConnector()
Aquamarine::CDRMBackend::~CDRMBackend()

and the actual segfault is:
Aquamarine::CLogger::log(this=0x0, ...)

with message:
drm: Not disconnecting connector DP-1 because it's already disconnected

Relevant backtrace excerpt:

#0 Aquamarine::CLogger::log (this=0x0, level=Aquamarine::AQ_LOG_DEBUG, str="drm: Not disconnecting connector DP-1 because it's already disconnected")
#1 Aquamarine::SDRMConnector::disconnect
#2 Aquamarine::SDRMConnector::~SDRMConnector
#10 Aquamarine::CDRMBackend::~CDRMBackend
#24 Aquamarine::CBackend::~CBackend

Crash signature 2: render-path SIGABRT

A newer crash also happens on HDMI, so this is not only DP-specific.

Backtrace:
#0 abort
#5 CHyprOpenGLImpl::begin
#6 CHyprRenderer::beginRender
#7 CHyprRenderer::renderMonitor
#8 CMonitorFrameScheduler::onFrame
#11 libaquamarine.so.9 + 0xad509
#12 drmHandleEvent
#13 libaquamarine.so.9 + 0xba1a8

Hyprland Crash Report:


Hyprland Crash Report

Oops

Hyprland received signal 6(ABRT)
Version: 521ece463c4a9d3d128670688a34756805a4328f
Tag: v0.54.3
Date: Fri Mar 27 18:17:50 2026
Flags:

System info:
System name: Linux
Node name: framework1
Release: 6.18.21-1-lts
Version: #1 SMP PREEMPT_DYNAMIC Thu, 02 Apr 2026 15:44:36 +0000

GPU:
c2:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Strix Halo [Radeon Graphics / Radeon 8050S Graphics / Radeon 8060S Graphics] [1002:1586] (rev c1)

os-release:
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

Libraries:
Hyprgraphics: built against 0.5.0, system has 0.5.0
Hyprutils: built against 0.12.0, system has 0.12.0
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.8, system has 0.6.8
Aquamarine: built against 0.10.0, system has 0.10.0

Backtrace:
# | Hyprland(_Z12getBacktracev+0x61) [0x55c987ab0121]
getBacktrace()
??:?
#1 | Hyprland(_ZN13CrashReporter18createAndSaveCrashEi+0xcd6) [0x55c987a13026]
CrashReporter::createAndSaveCrash(int)
??:?
#2 | Hyprland(+0x284bde) [0x55c987962bde]
std::__format::_Formatting_scanner<std::__format::_Sink_iter, char>::_M_format_arg(unsigned long)
??:?
#3 | /usr/lib/libc.so.6(+0x3e2d0) [0x7f712fb2f2d0]
??
??:0
#4 | /usr/lib/libc.so.6(+0x98a2c) [0x7f712fb89a2c]
??
??:0
#5 | /usr/lib/libc.so.6(gsignal+0x20) [0x7f712fb2f1a0]
??
??:0
#6 | Hyprland(_ZN15CHyprOpenGLImpl5beginEN9Hyprutils6Memory14CSharedPointerI8CMonitorEERKNS0_4Math7CRegionEP12CFramebufferSt8optionalIS6_E+0x918) [0x55c987e511f8]
CHyprOpenGLImpl::begin(Hyprutils::Memory::CSharedPointer, Hyprutils::Math::CRegion const&, CFramebuffer*, std::optionalHyprutils::Math::CRegion)
??:?
#7 | Hyprland(_ZN13CHyprRenderer11beginRenderEN9Hyprutils6Memory14CSharedPointerI8CMonitorEERNS0_4Math7CRegionE11eRenderModeNS2_I9IHLBufferEEP12CFramebufferb+0xbb2) [0x55c987e91692]
CHyprRenderer::beginRender(Hyprutils::Memory::CSharedPointer, Hyprutils::Math::CRegion&, eRenderMode, Hyprutils::Memory::CSharedPointer, CFramebuffer*, bool)
??:?
#8 | Hyprland(_ZN13CHyprRenderer13renderMonitorEN9Hyprutils6Memory14CSharedPointerI8CMonitorEEb+0xc0f) [0x55c987e9252f]
CHyprRenderer::renderMonitor(Hyprutils::Memory::CSharedPointer, bool)
??:?
#9 | Hyprland(_ZN22CMonitorFrameScheduler7onFrameEv+0x270) [0x55c987ae3cf0]
CMonitorFrameScheduler::onFrame()
??:?
#1 | /usr/lib/libhyprutils.so.11(_ZN9Hyprutils6Signal15CSignalListener12emitInternalEPv+0x2d) [0x7f713094436d]
??
??:0
#11 | /usr/lib/libhyprutils.so.11(_ZN9Hyprutils6Signal11CSignalBase12emitInternalEPv+0x2b3) [0x7f71309446e3]
??
??:0
#12 | /usr/lib/libaquamarine.so.9(+0xad509) [0x7f7130a49509]
??
??:0
#13 | /usr/lib/libdrm.so.2(drmHandleEvent+0x130) [0x7f71305820e0]
??
??:0
#14 | /usr/lib/libaquamarine.so.9(+0xba1a8) [0x7f7130a561a8]
??
??:0
#15 | Hyprland(+0x50639a) [0x55c987be439a]
Cursor::CShapeOverrideController::unsetOverride(Cursor::eCursorShapeOverrideGroup)
??:?
#16 | /usr/lib/libwayland-server.so.0(wl_event_loop_dispatch+0x1d2) [0x7f713080b182]
??
??:0
#17 | /usr/lib/libwayland-server.so.0(wl_display_run+0x37) [0x7f713080d297]
??
??:0
#18 | Hyprland(_ZN17CEventLoopManager9enterLoopEv+0x2c1) [0x55c987be6ef1]
CEventLoopManager::enterLoop()
??:?
#19 | Hyprland(main+0x1476) [0x55c9878e4ef6]
main
??:?
#2 | /usr/lib/libc.so.6(+0x276c1) [0x7f712fb186c1]
??
??:0
#21 | /usr/lib/libc.so.6(__libc_start_main+0x89) [0x7f712fb187f9]
??
??:0
#22 | Hyprland(_start+0x25) [0x55c98794d5f5]
_start
??:?

Log tail:
DEBUG from aquamarine ]: udev: new udev change event for card1
DEBUG from aquamarine ]: udev: DRM device card1 changed
DEBUG from aquamarine ]: udev: DRM device card1 change event unrecognized
DEBUG from aquamarine ]: drm: Got a hotplug event for /dev/dri/card1
DEBUG from aquamarine ]: drm: Scanning connectors for /dev/dri/card1
DEBUG from aquamarine ]: drm: Scanning connector id 100
DEBUG from aquamarine ]: drm: Connector id 100 already initialized
DEBUG from aquamarine ]: drm: Connector 100 connection state: 2
DEBUG from aquamarine ]: drm: Scanning connector id 110
DEBUG from aquamarine ]: drm: Connector id 110 already initialized
DEBUG from aquamarine ]: drm: connector HDMI-A-1 crtc is incapable of vrr: props.vrr_capable -> 115, crtc->props.vrr_enabled -> 24
DEBUG from aquamarine ]: drm: Explicit sync supported
DEBUG from aquamarine ]: drm: connector HDMI-A-1 crtc supports CTM
DEBUG from aquamarine ]: drm: connector HDMI-A-1 crtc supports HDR (7)
DEBUG from aquamarine ]: drm: connector HDMI-A-1 crtc supports Colorspace (114)
DEBUG from aquamarine ]: drm: Connector 110 connection state: 1
DEBUG from aquamarine ]: drm: Scanning connector id 117
DEBUG from aquamarine ]: drm: Connector id 117 already initialized
DEBUG from aquamarine ]: drm: Connector 117 connection state: 2
DEBUG from aquamarine ]: drm: Scanning connector id 123
DEBUG from aquamarine ]: drm: Connector id 123 already initialized
DEBUG from aquamarine ]: drm: Connector 123 connection state: 2
DEBUG from aquamarine ]: drm: Scanning connector id 129
DEBUG from aquamarine ]: drm: Connector id 129 already initialized
DEBUG from aquamarine ]: drm: Connector 129 connection state: 2
DEBUG from aquamarine ]: drm: Scanning connector id 135
DEBUG from aquamarine ]: drm: Connector id 135 already initialized
DEBUG from aquamarine ]: drm: Connector 135 connection state: 2
DEBUG from aquamarine ]: drm: Scanning connector id 141
DEBUG from aquamarine ]: drm: Connector id 141 already initialized
DEBUG from aquamarine ]: drm: Connector 141 connection state: 2
DEBUG from aquamarine ]: drm: Scanning connector id 147
DEBUG from aquamarine ]: drm: Connector id 147 already initialized
DEBUG from aquamarine ]: drm: Connector 147 connection state: 2
DEBUG from aquamarine ]: drm: Scanning connector id 153
DEBUG from aquamarine ]: drm: Connector id 153 already initialized
DEBUG from aquamarine ]: drm: Connector 153 connection state: 2
DEBUG from aquamarine ]: drm: Rechecking CRTCs
DEBUG from aquamarine ]: drm: connector DP-1, has crtc 86, will be rechecked
DEBUG from aquamarine ]: drm: Skipping connector HDMI-A-1, has crtc 90 and is connected
DEBUG from aquamarine ]: drm: connector DP-2, has crtc -1, will be rechecked
DEBUG from aquamarine ]: drm: connector DP-3, has crtc -1, will be rechecked
DEBUG from aquamarine ]: drm: connector DP-4, has crtc 86, will be rechecked
DEBUG from aquamarine ]: drm: connector DP-5, has crtc -1, will be rechecked
DEBUG from aquamarine ]: drm: connector DP-6, has crtc -1, will be rechecked
DEBUG from aquamarine ]: drm: connector DP-7, has crtc -1, will be rechecked
DEBUG from aquamarine ]: drm: connector DP-8, has crtc -1, will be rechecked
DEBUG from aquamarine ]: drm: slot 0 crtc 86 unassigned
DEBUG from aquamarine ]: drm: slot 1 crtc 90 taken by HDMI-A-1, skipping
DEBUG from aquamarine ]: drm: slot 2 crtc 94 unassigned
DEBUG from aquamarine ]: drm: slot 3 crtc 98 unassigned
DEBUG from aquamarine ]: drm: Connector DP-1 is not connected, removing old crtc 86
DEBUG from aquamarine ]: drm: Connector DP-2 is not connected
DEBUG from aquamarine ]: drm: Connector DP-3 is not connected
DEBUG from aquamarine ]: drm: Connector DP-4 is not connected, removing old crtc 86
DEBUG from aquamarine ]: drm: Connector DP-5 is not connected
DEBUG from aquamarine ]: drm: Connector DP-6 is not connected
DEBUG from aquamarine ]: drm: Connector DP-7 is not connected
DEBUG from aquamarine ]: drm: Connector DP-8 is not connected
ERR from aquamarine ]: [EGL] Command eglDupNativeFenceFDANDROID errored out with EGL_BAD_PARAMETER (0x12300): eglDupNativeFenceFDANDROID

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions