Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.6.0 Alpha
-
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.