Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
6.2.0, 6.4.0
-
None
-
-
b93720472e (qt/qtbase/dev) b93720472e (qt/tqtc-qtbase/dev), 7382529fd (6.4), d4710f0cf (tqtc/lts-6.2)
Description
Crash when setPersistentGraphics(false), setPersistentSceneGraph(false) and visible: true on wayland.
Please see the attached test sample. (https://bugreports.qt.io/secure/attachment/133068/decoration_crash.tar.gz)
in main.cpp
QQuickWindow *w = qobject_cast<QQuickWindow *>(engine.rootObjects()[0]); w->setPersistentGraphics(false); w->setPersistentSceneGraph(false);
there is timer in main.qml to set visible property of Window{}
Timer { id: visibleTimer interval: 1000 repeat: true running: true onTriggered: { console.log("visibleTimer triggered, will be", !root.visible) root.visible = !root.visible console.log("---------------------------------------------------------------") } }
and run with wayland
./simple -platform wayland
call stack
(gdb) bt #0 0x00007f195545600c in QFontEngineFT::loadGlyphSet(QTransform const&) (this=0x7f19107e48c0, matrix=...) at /home/qt/work/qt/qtbase/src/gui/text/freetype/qfontengine_ft.cpp:1446 #1 0x00007f195545ba87 in QFontEngineFT::loadGlyphFor(unsigned int, QFixedPoint const&, QFontEngine::GlyphFormat, QTransform const&, bool, bool) (this=0x7f19107e48c0, g=43, subPixelPosition=..., format=QFontEngine::Format_A8, t=..., fetchBoundingBox=fetchBoundingBox@entry=false, disableOutlineDrawing=false) at /home/qt/work/qt/qtbase/src/gui/text/freetype/qfontengine_ft.cpp:1926 #2 0x00007f195545c11d in QFontEngineFT::glyphData(unsigned int, QFixedPoint const&, QFontEngine::GlyphFormat, QTransform const&) (this=<optimized out>, glyphIndex=<optimized out>, subPixelPosition=..., neededFormat=<optimized out>, t=...) at /home/qt/work/qt/qtbase/src/gui/text/freetype/qfontengine_ft.cpp:1906 #3 0x00007f195512a873 in QRasterPaintEngine::drawCachedGlyphs(int, unsigned int const*, QFixedPoint const*, QFontEngine*) (this= 0x7f19108298c0, numGlyphs=728007792, glyphs=<optimized out>, positions=<optimized out>, fontEngine=0x7f19107e48c0) at /home/qt/work/qt/qtbase/src/gui/painting/qpaintengine_raster.cpp:2802 #4 0x00007f195512e9e0 in QRasterPaintEngine::drawStaticTextItem(QStaticTextItem*) (this=0x7f19108298c0, textItem=0x7f1910796208) at /home/qt/work/qt/qtbase/src/gui/painting/qpaintengine_raster.cpp:3059 #5 0x00007f195514fe74 in QPainter::drawStaticText(QPointF const&, QStaticText const&) (this=this@entry=0x7f192b648808, topLeftPosition=..., staticText=...) at /home/qt/work/qt/qtbase/src/gui/painting/qpainter.cpp:5549 #6 0x00007f193c0177db in QPainter::drawStaticText(QPoint const&, QStaticText const&) (staticText=..., p=<synthetic pointer>..., this=0x7f192b648808) at /home/qt/work/install/include/QtCore/qpoint.h:129 #7 QtWaylandClient::QWaylandBradientDecoration::paint(QPaintDevice*) (this=0x7f192b6487e8, device=0x7f192b648810) at /home/qt/work/qt/qtwayland/src/plugins/decorations/bradient/main.cpp:165 #8 0x00007f19504cbdb1 in QtWaylandClient::QWaylandAbstractDecoration::contentImage() (this=0x55bc796f0d10, this@entry=0x7f192b648a30) at /home/qt/work/qt/qtwayland/src/client/qwaylandabstractdecoration.cpp:95 #9 0x00007f194cc2c595 in QtWaylandClient::DecorationsBlitter::blit(QtWaylandClient::QWaylandEglWindow*) (this=0x7f19107917c0, window=0x55bc7960b980) at /home/qt/work/qt/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:168 #10 0x00007f194cc2bf96 in QtWaylandClient::QWaylandGLContext::swapBuffers(QPlatformSurface*) (this=0x7f19101531d0, surface=<optimized out>) at /home/qt/work/qt/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:351 #11 0x00007f19553759ad in QRhiGles2::endFrame(QRhiSwapChain*, QFlags<QRhi::EndFrameFlag>) (this=0x7f191071d9c0, swapChain=0x7f1910784040, flags=...) at /home/qt/work/qt/qtbase/src/gui/rhi/qrhigles2.cpp:1912 #12 0x00007f19552126d8 in QRhi::endFrame(QRhiSwapChain*, QFlags<QRhi::EndFrameFlag>) (this=0x7f191015fe90, swapChain=0x7f1910784040, flags=..., flags@entry=...) at /home/qt/work/qt/qtbase/src/gui/rhi/qrhi.cpp:7272 #13 0x00007f1955c1fafa in QSGRenderThread::syncAndRender() (this=0x55bc796f0af0) at /home/qt/work/install/include/QtCore/qflags.h:73 #14 0x00007f1955c20e07 in QSGRenderThread::run() (this=0x55bc796f0af0) at /home/qt/work/qt/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:934 #15 0x00007f195452b4bf in QThreadPrivate::start(void*) (arg=0x55bc796f0af0) at /home/qt/work/qt/qtbase/src/corelib/thread/qthread_unix.cpp:322 #16 0x00007f195390b609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #17 0x00007f1953f72133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95