Skip to content

Conversation

@daschuer
Copy link
Member

With EGLFS we can use either QWidgets or OpenGL, not both at the same time.
This is a band aid that shall avoid the fatal abort reported in #15863.

A better fix would be to use only GELS.
This type of refactoring is probably not beneficial because we are already working in a QML GUI which likely works with EGLFS. We need to investigate with this.

@JoergAtGithub
Copy link
Member

As we've two implementations for the waveforms (OpenGL and QQuick) would it help to switch from QOpenGLWindow to doc.qt.io/qt-6/qquickwidget.html using the QQuick waveform implementation we use for QML already?
This would also solve the problem that Apple deprecated OpenGL at all and support might be removed with an upcoming macOS release.

@daschuer
Copy link
Member Author

I don't think so. EGLFS is used with a frame buffer device, where no windows manager is available. See https://doc.qt.io/qt-6/embedded-linux.html.
We either use QWidget, where Qt handles the off-screen rendering and screen updates or render everything with GLES. Since we currently use both only QWidget waveforms are available.

I can't test it though. Hope @mirko can confirm.

@mirko
Copy link

mirko commented Jan 18, 2026

fb(dev) is legacy from kernel side by now and AFAIK is - if still used - routed via DRM/KMS.
I'm going the direct way via DRM/KMS. I only ever dealt with OpenGLES2 and Qt, so unfortunately I don't know about the OpenGL stuff. But as far as I remember, for Qt5 you could compile qt5gui either with OpenGL or OpenGLES support (see e.g. https://packages.debian.org/trixie/libqt5gui5-gles), whereas with Qt6 that's interchangeable at runtime. Probably not answering any of your questions, though :)

@JoergAtGithub
Copy link
Member

@mirko
Copy link

mirko commented Jan 18, 2026

The environment I use for reference:

export QT_QPA_PLATFORM=eglfs
export QT_QPA_EGLFS_INTEGRATION=eglfs_kms
export QT_QPA_EGLFS_KMS_CONFIG=/etc/qt_eglfs_kms.json
mixxx --qml --developer

whereas /etc/qt_eglfs_kms.json contains:

{
  "hwcursor": false,
  "outputs": [
    {
      "name": "HDMI1",
      "mode": "1920x1080"
    }
  ]
}

@daschuer daschuer changed the base branch from main to 2.6 February 6, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants