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

Qt OpenGL applications doesn't work and crashes inside NVIDIA library

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P2: Important
    • None
    • 5.6, 5.7
    • GUI: OpenGL
    • 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

      Attachments

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

        Activity

          People

            lagocs Laszlo Agocs
            davispuh Dāvis Mosāns
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes