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

2dpainting/qquickviewcomparison crashes with Mesa when using EGL

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.6.0 RC
    • 5.6.0 Alpha
    • GUI: OpenGL
    • None

    Description

      Program received signal SIGSEGV, Segmentation fault.
      intelCreateBuffer (driScrnPriv=0x456020, driDrawPriv=0x4fb010, mesaVis=0x0, isPixmap=0 '\000') at intel_screen.c:982
      982	   unsigned num_samples = intel_quantize_num_samples(screen, mesaVis->samples);
      (gdb) bt
      #0  intelCreateBuffer (driScrnPriv=0x456020, driDrawPriv=0x4fb010, mesaVis=0x0, isPixmap=0 '\000') at intel_screen.c:982
      #1  0x00007fffecd74ad3 in driCreateNewDrawable (screen=0x456020, config=0x0, data=0x1086cf0) at dri_util.c:648
      #2  0x00007fffedca88b2 in dri2_x11_create_surface (disp=<optimized out>, type=1, conf=0x51ed30, native_surface=0x0, attrib_list=<optimized out>, drv=<optimized out>) at platform_x11.c:242
      #3  0x00007fffedc9ffd9 in eglCreatePbufferSurface (dpy=0x455780, config=0x51ed30, attrib_list=0x7fffffffcff0) at eglapi.c:789
      #4  0x00007ffff7fe9494 in QEGLPbuffer::QEGLPbuffer (this=0x4fad30, display=0x455780, format=..., offscreenSurface=0x513b30) at eglconvenience/qeglpbuffer.cpp:82
      #5  0x00007ffff7fe248f in QXcbEglIntegration::createPlatformOffscreenSurface (this=0x4622d0, surface=0x513b30) at qxcbeglintegration.cpp:95
      #6  0x00007ffff7e8fd6f in QXcbIntegration::createPlatformOffscreenSurface (this=0x417990, surface=0x513b30) at qxcbintegration.cpp:239
      #7  0x00007ffff702622e in QOffscreenSurface::create (this=0x513b30) at kernel/qoffscreensurface.cpp:174
      #8  0x00007ffff779403f in QOpenGLWidgetPrivate::initialize (this=0xf9b910) at kernel/qopenglwidget.cpp:781
      #9  0x00007ffff7794c1a in QOpenGLWidget::resizeEvent (this=0xf9b8c0, e=0x7fffffffd800) at kernel/qopenglwidget.cpp:1153
      #10 0x00007ffff77649db in QWidget::event (this=0xf9b8c0, event=0x7fffffffd800) at kernel/qwidget.cpp:8852
      #11 0x00007ffff7795422 in QOpenGLWidget::event (this=0xf9b8c0, e=0x7fffffffd800) at kernel/qopenglwidget.cpp:1321
      #12 0x00007ffff77168e5 in QApplicationPrivate::notify_helper (this=0x415620, receiver=0xf9b8c0, e=0x7fffffffd800) at kernel/qapplication.cpp:3718
      #13 0x00007ffff7716716 in QApplication::notify (this=0x7fffffffdb50, receiver=0xf9b8c0, e=0x7fffffffd800) at kernel/qapplication.cpp:3681
      #14 0x00007ffff6ba49e0 in QCoreApplication::notifyInternal2 (receiver=0xf9b8c0, event=0x7fffffffd800) at kernel/qcoreapplication.cpp:1026
      #15 0x00007ffff7706c18 in QCoreApplication::sendEvent (receiver=0xf9b8c0, event=0x7fffffffd800) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:227
      #16 0x00007ffff7761c48 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xf9b910, recursive=false, disableUpdates=false) at kernel/qwidget.cpp:7725
      #17 0x00007ffff7761eba in QWidgetPrivate::show_helper (this=0xf9b910) at kernel/qwidget.cpp:7776
      #18 0x00007ffff7762e8c in QWidget::setVisible (this=0xf9b8c0, visible=true) at kernel/qwidget.cpp:8121
      #19 0x00007ffff77619d1 in QWidget::show (this=0xf9b8c0) at kernel/qwidget.cpp:7683
      #20 0x00007ffff77632ce in QWidgetPrivate::showChildren (this=0xf99070, spontaneous=false) at kernel/qwidget.cpp:8204
      #21 0x00007ffff7761ee1 in QWidgetPrivate::show_helper (this=0xf99070) at kernel/qwidget.cpp:7782
      #22 0x00007ffff7762e8c in QWidget::setVisible (this=0x7fffffffdb60, visible=true) at kernel/qwidget.cpp:8121
      #23 0x00007ffff77619d1 in QWidget::show (this=0x7fffffffdb60) at kernel/qwidget.cpp:7683
      #24 0x0000000000404e44 in main (argc=1, argv=0x7fffffffdcb8) at main.cpp:55
      

      The example requests multisampling. Attempting to create a pbuffer for a config with MSAA apparently crashes in Mesa. Not requesting any samples for the surface is not an option as that leads to BAD_MATCH. (and we disable surfaceless QOffscreenSurface on Mesa with Intel due to other problems so the pbuffer is required)

      However, creating a multisampled context is not necessary in the first place - we are rendering only into an FBO, never to an actual surface!

      Same for QQuickWidget when requesting samples > 0.

      Attachments

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

        Activity

          People

            lagocs Laszlo Agocs
            lagocs Laszlo Agocs
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes