Skip to content

fix(cmake): GPU spectrum disabled on aarch64 — Qt6GuiPrivate path probe hardcodes x86_64 #3157

Description

@K5PTB

Problem

On Debian-based aarch64 systems (e.g. Raspberry Pi 5 running Raspberry Pi OS), building with qt6-base-private-dev installed still produces:

GPU spectrum rendering disabled — Qt6GuiPrivate not found (install qt6-base-private-dev / qt6-qtbase-private-devel)

Root cause

The Debian multiarch fallback path probe in CMakeLists.txt hardcodes x86_64-linux-gnu:

PATHS "/usr/include/x86_64-linux-gnu/qt6" "/usr/include/qt6"

On aarch64, Qt6's private headers are installed at /usr/include/aarch64-linux-gnu/qt6, so the probe misses them even when the package is present.

Impact

GPU spectrum rendering (QRhi) is silently disabled on Raspberry Pi 5 and any other aarch64 Debian build. With it disabled, all spectrum/panadapter rendering falls back to CPU. Observed improvement after fix: approximately 20% reduction in CPU utilization, 10% increase in GPU utilization.

Fix

Use dpkg-architecture -qDEB_HOST_MULTIARCH to detect the correct multiarch tuple at configure time, making the probe work for any Debian target (aarch64-linux-gnu, armhf, x86_64-linux-gnu, etc.).

Fix is in branch fix/cmake-aarch64-qt-private-path on K5PTB/AetherSDR, PR to follow.

Workaround (until merged)

Pass the cmake variable directly:

cmake -S . -B build -DQt6GuiPrivate_DIR=/usr/lib/aarch64-linux-gnu/cmake/Qt6GuiPrivate

Test environment

  • Raspberry Pi 5, Raspberry Pi OS Trixie (Debian 13)
  • Qt 6.x from apt (qt6-base-dev, qt6-base-private-dev)

Metadata

Metadata

Assignees

No one assigned

    Labels

    GUIUser interfacebugSomething isn't workinggood first issueGood for newcomersmaintainer-reviewRequires maintainer review before any action is takenspectrumPanadapter and waterfall

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions