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

Enabling QT_WIDGETS_RHI causes VirtualGL crash

    XMLWordPrintable

Details

    • Linux/X11

    Description

      When setting QT_WIDGETS_RHI=1 and QT_WIDGETS_RHI_BACKEND=opengl (a workaround for QTBUG-126303), opening or repainting a QDialog causes a crash when running with VirtualGL. Note: We use VirtualGL to redirect OpenGL rendering to a headless EGL rendering context.

      VirtualGL aborts with signal SIGABRT and logs the error:

      The EGL back end requires a 2D X server with a GLX extension.
      

      Stack trace for opening a dialog:

        File "<unknown>", in __pthread_kill_implementation
        File "<unknown>", in raise
        File "<unknown>", in abort
        File "VirtualGL-3.1/server/faker.cpp", line 99, in faker::safeExit
        File "VirtualGL-3.1/server/faker.cpp", line 81, in faker::safeExit
        File "VirtualGL-3.1/server/faker-glx.cpp", line 1758, in glXMakeCurrent
        File "<unknown>", in QGLXContext::QGLXContext
        File "<unknown>", in QXcbGlxIntegration::createPlatformOpenGLContext
        File "<unknown>", in QOpenGLContext::create
        File "<unknown>", in QRhiGles2InitParams::newFallbackSurface
        File "<unknown>", in QBackingStoreRhiSupport::create
        File "<unknown>", in QWidgetPrivate::create
        File "<unknown>", in QWidget::create
        File "<unknown>", in QWidgetPrivate::setVisible
        File "<unknown>", in QDialogPrivate::setVisible
        (...)
      

      Stack trace for repainting a dialog:

      File "<unknown>", in __pthread_kill_implementation
        File "<unknown>", in raise
        File "<unknown>", in abort
        File "VirtualGL-3.1/server/faker.cpp", line 99, in faker::safeExit
        File "VirtualGL-3.1/server/faker.cpp", line 81, in faker::safeExit
        File "VirtualGL-3.1/server/faker-glx.cpp", line 2250, in glXSwapBuffers
        File "<unknown>", in QGLXContext::swapBuffers
        File "<unknown>", in QRhiGles2::endFrame
        File "<unknown>", in QRhi::endFrame
        File "<unknown>", in QBackingStoreDefaultCompositor::flush
        File "<unknown>", in QPlatformBackingStore::rhiFlush
        File "<unknown>", in QXcbBackingStore::rhiFlush
        File "<unknown>", in QWidgetRepaintManager::flush
        File "<unknown>", in QWidgetRepaintManager::flush
        File "<unknown>", in QWidgetRepaintManager::paintAndFlush
        File "<unknown>", in QWidgetRepaintManager::sync
        File "<unknown>", in QWidgetWindow::event
        (...)
      

      Attachments

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

        Activity

          People

            lagocs Laszlo Agocs
            aristotle Aris van Dijk
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes