On Tue, Jul 18, 2017 at 11:20:06AM +0300, Dmitry Shachnev wrote: > I was debugging a crash which occurs when running qtwebsockets tests on > mips [1]. This crash happens in llvmpipe thread which is created by Mesa’s > software renderer. Shortly before the crash, this warning is printed > multiple times: > > 'generic' is not a recognized processor for this target (ignoring processor) > > Unfortunately at the moment of the crash the stack of llvmpipe thread is > corrupted so there is no useful stacktrace from that thread. Therefore I am > attaching two files: > > - stacktrace_threads.txt: Output of ‘thread apply all bt full’ at the moment > of the crash. The crashed thread is thread 3. > - stacktrace_print.txt: Stack trace of the moment when the warning is printed. This bug still happens with the latest versions of llvm, mesa and Qt in Buster. I have managed to obtain a stacktrace just before the crash on mips64el: #0 glDepthMask (flag=0 '\000') at ././glapi_mapi_tmp.h:44926 #1 0x000000fff7c76cf8 in QOpenGLFunctions::glDepthMask (this=0xffec001e50, flag=0 '\000') at /usr/include/mips64el-linux-gnuabi64/qt5/QtGui/qopenglfunctions.h:744 #2 QSGBatchRenderer::Renderer::renderBatches (this=0xffec001d70) at scenegraph/coreapi/qsgbatchrenderer.cpp:2540 #3 0x000000fff7c7d3e4 in QSGBatchRenderer::Renderer::render (this=<optimized out>) at scenegraph/coreapi/qsgbatchrenderer.cpp:2735 #4 0x000000fff7c6aed0 in QSGRenderer::renderScene (bindable=..., this=0xffec001d70) at scenegraph/coreapi/qsgrenderer.cpp:244 #5 QSGRenderer::renderScene (this=0xffec001d70, bindable=...) at scenegraph/coreapi/qsgrenderer.cpp:204 #6 0x000000fff7c6b46c in QSGRenderer::renderScene (this=<optimized out>, fboId=<optimized out>) at scenegraph/coreapi/qsgrenderer.cpp:197 #7 0x000000fff7cb5fa0 in QSGDefaultRenderContext::renderNextFrame (this=0xaaaad8c730, renderer=0xffec001d70, fboId=<optimized out>) at scenegraph/qsgdefaultrendercontext.cpp:182 #8 0x000000fff7d373e0 in QQuickWindowPrivate::renderSceneGraph (this=0xaaaab402d0, size=...) at items/qquickwindow.cpp:481 #9 0x000000fff7ca35f4 in QSGGuiThreadRenderLoop::renderWindow (this=0xaaaab36df0, window=<optimized out>) at /usr/include/mips64el-linux-gnuabi64/qt5/QtCore/qsize.h:119 #10 0x000000fff7ca49c4 in QSGGuiThreadRenderLoop::exposureChanged (this=0xaaaab36df0, window=<optimized out>) at scenegraph/qsgrenderloop.cpp:481 #11 0x000000fff71da220 in QWindow::event (this=0xffffffd500, ev=<optimized out>) at kernel/qwindow.cpp:2257 #12 0x000000fff7d44a80 in QQuickWindow::event (this=0xffffffd500, e=0xffffffd320) at items/qquickwindow.cpp:1634 ... The source code of scenegraph/coreapi/qsgbatchrenderer.cpp is here: https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp?h=v5.11.3 Qt does not call glDepthMask on line 2540 if QSG_NO_DEPTH_BUFFER=1 environment variable is set. And setting it makes the tests pass. -- Dmitry Shachnev
Attachment:
signature.asc
Description: PGP signature