Details
-
Bug
-
Resolution: Out of scope
-
P2: Important
-
None
-
5.6, 5.7
-
None
-
Arch Linux with latest NVIDIA beta drivers 361.16 (nvidia-libgl-beta) (can be reproduced with 358.16 too)
also libxcb compiled from git master
GPU NVIDIA GeForce GTX 650 Ti
Description
Qt OpenGL and QtQuick applications started when X screen isn't active on current VT doesn't work and sometimes crash inside NVIDIA library.
Other Qt non-OpenGL applications like gui/analogclock and gui/rasterwindow work and also other non-Qt OpenGL applications like glxgears and glxinfo does work even with inactive X screen (when current VT is console).
setting QSG_RENDER_LOOP=basic or QSG_RENDER_LOOP=windows doesn't make any difference.
To reproduce (need NVIDIA GPU with proprietary NVIDIA drivers):
1. Start X server
2. Switch to different VT
3. export DISPLAY=:0
4. start some Qt OpenGL application like examples/gui/openglwindow
5. Switch to X server VT
crash looks looks like
QOpenGLShaderProgram: could not create shader program
QOpenGLShader: could not create shader
QOpenGLShaderProgram::attributeLocation( posAttr ): shader program is not linked
QOpenGLShaderProgram::attributeLocation( colAttr ): shader program is not linked
QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked
Problem creating accessible interface for: OpenGLWindow(0x7ffdf7b796e0)
Make sure to deploy Qt with accessibility plugins.
openglwindow terminated by signal SIGSEGV (Address boundary error)
#0 0x00000000406f2f81 in ?? ()
#1 0x00007f0200bda554 in ?? () from /usr/lib/libnvidia-glcore.so.361.16
#2 0x00007f02007d7f88 in ?? () from /usr/lib/libnvidia-glcore.so.361.16
#3 0x0000000000403f57 in QOpenGLFunctions::glDrawArrays (count=3, first=0, mode=4, this=0x7ffdf7b79708)
at ../../../include/QtGui/../../../../../src/gui/opengl/qopenglfunctions.h:717
#4 TriangleWindow::render (this=0x7ffdf7b796e0) at /mnt/Qt/qtbase/examples/gui/openglwindow/main.cpp:161
#5 0x000000000040384f in OpenGLWindow::renderNow (this=0x7ffdf7b796e0) at /mnt/Qt/qtbase/examples/gui/openglwindow/openglwindow.cpp:142
#6 0x0000000000403a20 in OpenGLWindow::event (this=<optimized out>, event=<optimized out>)
at /mnt/Qt/qtbase/examples/gui/openglwindow/openglwindow.cpp:103
#7 0x00007f021b1cde43 in QCoreApplicationPrivate::notify_helper (receiver=receiver@entry=0x7ffdf7b796e0, event=event@entry=0x10ca510)
at /mnt/Qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1112
#8 0x00007f021b1cdeeb in doNotify (receiver=receiver@entry=0x7ffdf7b796e0, event=0x10ca510)
at /mnt/Qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1053
#9 0x00007f021b1ce116 in QCoreApplication::notify (this=this@entry=0x7ffdf7b796d0, receiver=receiver@entry=0x7ffdf7b796e0, event=<optimized out>)
at /mnt/Qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1039
#10 0x00007f021baedbd0 in QGuiApplication::notify (this=0x7ffdf7b796d0, object=0x7ffdf7b796e0, event=<optimized out>)
at /mnt/Qt/qtbase/src/gui/kernel/qguiapplication.cpp:1614
#11 0x00007f021b1ce02a in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x7ffdf7b796e0, event=event@entry=0x10ca510)
at /mnt/Qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:978
#12 0x00007f021b1d07f8 in QCoreApplication::sendEvent (event=0x10ca510, receiver=0x7ffdf7b796e0)
at ../../include/QtCore/../../../../../src/corelib/kernel/qcoreapplication.h:227
#13 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0xf94e40)
at /mnt/Qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1613
#14 0x00007f021b1d0a60 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0)
at /mnt/Qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1471
#15 0x00007f021b24e27a in postEventSourceDispatch (s=0xffa2b0) at /mnt/Qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:270
#16 0x00007f0218642dc7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#17 0x00007f0218643020 in ?? () from /usr/lib/libglib-2.0.so.0
#18 0x00007f02186430cc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#19 0x00007f021b24e30a in QEventDispatcherGlib::processEvents (this=0xffa580, flags=...)
at /mnt/Qt/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:417
#20 0x00007f02138c1c03 in QPAEventDispatcherGlib::processEvents (this=<optimized out>, flags=...)
at /mnt/Qt/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:115
#21 0x00007f021b1cadbd in QEventLoop::processEvents (this=this@entry=0x7ffdf7b79640, flags=..., flags@entry=...)
at /mnt/Qt/qtbase/src/corelib/kernel/qeventloop.cpp:128
#22 0x00007f021b1cb3b9 in QEventLoop::exec (this=this@entry=0x7ffdf7b79640, flags=..., flags@entry=...)
at /mnt/Qt/qtbase/src/corelib/kernel/qeventloop.cpp:204
#23 0x00007f021b1d4fef in QCoreApplication::exec () at /mnt/Qt/qtbase/src/corelib/kernel/qcoreapplication.cpp:1248
#24 0x00007f021bae6936 in QGuiApplication::exec () at /mnt/Qt/qtbase/src/gui/kernel/qguiapplication.cpp:1605
#25 0x000000000040331b in main (argc=1, argv=<optimized out>) at /mnt/Qt/qtbase/examples/gui/openglwindow/main.cpp:90