> On Sep 7, 2026, at 5:42 PM, wmiler1 <
wmi...@gmail.com> wrote:
>
> The roadmap is for Linux to move to Vulkan at some point, not sure when that is.
The technical issue from the project standpoint is that when you configure a project with find_package(Qt6 COMPONENTS Multimedia ... Widgets), CMake pulls in a cascading web of internal dependency targets. In a default Qt build ecosystem, Qt6::Widgets or Qt6::Multimedia internally link against Qt6::Gui, which holds the foundational system pipeline hooks. Because the underlying JS8Call codebase relies heavily on core Qt classes, the binary maps those assets to the desktop window via Qt6::Gui. The linker configuration will implicitly append -framework OpenGL to the final compilation build string.
This has not been a problem to-date as long as OpenGL exists on the system in some useable form. There was a report sometime back about the AppImage failing to run on Ubuntu 26. The problem was solved by installing libopengl0.The Qt plugin for linuxdeploy can’t package GL drivers as that would break the system. The linker linked libopengl0 to the binary simply because it existed on the build system.
Otherwise, as I experimented and found out with MacOS where OpenGL no longer exists, if you build on a system that does not have OpenGL (SDK 27 on Mac) you can force Qt to use its RHI backend.
This forces the issue at compile-time rather than runtime, stripping the legacy code paths entirely. By utilizing SDK 27 on Mac without the legacy framework, we are essentially forcing Qt’s build system to acknowledge that OpenGL is physically missing. Because Qt 6 is built around the modern RHI (Rendering Hardware Interface) abstraction layer, it gracefully cascades down to its native fallback backend, which on Apple systems is the Metal API, and on Windows is DirectX. I’m not sure what it is on linux, and that may change from one distro to the next because obviously Ubuntu 26 didn’t have it in that one case, but the build system obviously did.
For whatever reason I have not figured out, I cannot get this to work on Qt 6.9.3. It works (so far) on Qt 6.11 and Qt 6.12. But Qt 6.11 won’t compile with SDK 27. To build that experiment I had to use SDK 26 with a -no-opengl configure flag to build Qt itself.
There was a definite advantage to using the native Metal API on Mac vs legacy OpenGL. It reduces the memory footprint by ~55MB and the waterfall/spectrum scope renders much cleaner without all the “white noise”.
The linux developers will have to experiment with this going forward. I’m not sure if it works the same way on linux that it does on Mac/Windows.
Chris AC9KH