Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-140459

OpenGL examples are crashing on Qt6 with nvidia-legacy-340 driver (linux) - Failed to finding matching FBConfig for QSurfaceFormat

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P2: Important P2: Important
    • None
    • 6.8.2
    • GUI: OpenGL
    • Linux/X11

      Since upgrading to Debian trixie (which now runs KDE/Plasma6 based on Qt6) most Kde6 apps don't open anymore when using the proprietary nvidia driver (340.*)

      BTW, there is no issue with KDE5 and the proprietary driver (eg. on Debian bookworm). Gnome desktop and Gnome applications, as well as the latest firefox-esr also work fine on trixie with the proprietary nvidia driver.

      Programs crash like this:

      qt.qpa.gl: Choosing xcb gl-integration based on following priority
       QList("xcb_glx", "xcb_egl")
      qt.qpa.gl: Xcb GLX gl-integration created
      qt.qpa.gl: Xcb GLX gl-integration successfully initialized
      qt.qpa.gl: Requested format before FBConfig/Visual selection: QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1, stencilBufferSize -1, samples 4, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
      qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples 1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
      qt.qpa.gl: No XVisualInfo for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples 1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
      qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples 1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
      qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples 1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
      Could not initialize GLX

      A few examples of such KDE programs are: sddm, kwin, plasmashell.

      I found that the OpenGL examples shipped in Qt6 are actually also crashing the same way. So this looks more like a problem with Qt6.

      For instance these qtbase examples are all failing when using the "nvidia-legacy-340xx" driver (Nvidia proprietary driver v340.*). It happens on both linux kernel 6.1 & 6.12, so this is probably not related to the kernel itself.

      • examples/opengl/2dpainting
      • examples/opengl/cube
      • examples/opengl/hellogl2
      • examples/opengl/hellogles3
      • examples/opengl/openglwindow
      • examples/opengl/stereoqopenglwidget
      • examples/opengl/textures

      Workaround is to use the "nouveau" driver, but it is buggy in other aspects (random system crashes/freezes) which make this solution not appropriate.

      You can find in attachment:

      • output of various glxinfo calls for each driver.
      • output of the examples for each driver when invoked with
        QT_LOGGING_RULES="qt.qpa.gl=true" /usr/lib/x86_64-linux-gnu/qt6/examples/opengl/2dpainting/bin/2dpainting  > 2dpainting.out 2>&1
        QT_LOGGING_RULES="*=true" /usr/lib/x86_64-linux-gnu/qt6/examples/opengl/2dpainting/bin/2dpainting  > 2dpainting.out.full 2>&1

      Files ending with .out are produced with QT_LOGGING_RULES="qt.qpa.gl=true"
      Files ending with .out.full are produced with QT_LOGGING_RULES="*=true"

      Expected behaviour:

      That the examples and kde6 programs open and display successfully with the nvidia driver (like it does with the nouveau driver with Qt6/KDE6 or nvidia driver with Qt5/KDE5)

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            lagocs Laszlo Agocs
            ban F S
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes