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

Crash when releasing shared texture

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.14.0 Alpha
    • 5.12.2
    • QPA: Wayland
    • None
    • Nvidia Jetson TX2, B2Qt, Qt5.12.2 with texture sharing patches
    • Linux/Wayland
    • 280d0e557eabe9410632edf32ed46e712535c45b (qt/qtwayland/dev) dbe1775f7e1b71696ee64f8b23c998f787e6e7ed (qt/qtwayland/wip/texturesharing-5.12)

    Description

      To reproduce, run the attached QML file (with qmlscene) on an Nvidia Jetson TX2 board. It implements a simple Wayland compositor and uses the texture sharing extension. It calls Qt.quit() after 3s, which results in a crash. (Note that interrupting with Ctrl-C does not result in a crash). Here is the backtrace: 

      #0 QThreadStorageData::get (this=this@entry=0x0) at qt5/qtbase/src/corelib/thread/qthreadstorage.cpp:122
      #1 0x0000007fb7109910 in qThreadStorage_localData<QGuiGLThreadContext> (d=...) at qt5/qtbase/src/corelib/thread/qthreadstorage.h:71
      #2 QThreadStorage<QGuiGLThreadContext*>::localData (this=<optimized out>) at qt5/qtbase/src/corelib/thread/qthreadstorage.h:145
      #3 QOpenGLContext::currentContext () at qt5/qtbase/src/gui/kernel/qopenglcontext.cpp:421
      #4 0x0000007face75bf4 in CurrentContext::CurrentContext (this=0x7ffffff860) at qt5/qtwayland/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp:101
      #5 VulkanServerBuffer::releaseOpenGlTexture (this=0x703190) at qt5/qtwayland/src/hardwareintegration/compositor/vulkan-server/vulkanserverbufferintegration.cpp:259
      #6 0x0000007faed69818 in SharedTextureFactory::~SharedTextureFactory (this=0x7fa00051e0, __in_chrg=<optimized out>) at qt5/qtwayland/src/compositor/extensions/qwltexturesharingextension.cpp:135
      #7 SharedTextureFactory::~SharedTextureFactory (this=0x7fa00051e0, __in_chrg=<optimized out>) at qt5/qtwayland/src/compositor/extensions/qwltexturesharingextension.cpp:136
      #8 0x0000007fb7c80af8 in QQuickPixmapData::~QQuickPixmapData (this=0x5acdb0, __in_chrg=<optimized out>) at qt5/qtdeclarative/src/quick/util/qquickpixmapcache.cpp:295
      #9 QQuickPixmapStore::shrinkCache (this=this@entry=0x7fb7fd07a8 <(anonymous namespace)::Q_QGS_pixmapStore::innerFunction()::holder>, remove=remove@entry=20) at qt5/qtdeclarative/src/quick/util/qquickpixmapcache.cpp:1117
      #10 0x0000007fb7c81cf4 in QQuickPixmapStore::~QQuickPixmapStore (this=0x7fb7fd07a8 <(anonymous namespace)::Q_QGS_pixmapStore::innerFunction()::holder>, __in_chrg=<optimized out>) at qt5/qtdeclarative/src/quick/util/qquickpixmapcache.cpp:1045
      #11 0x0000007fb7c81e5c in (anonymous namespace)::Q_QGS_pixmapStore::Holder::~Holder (this=<optimized out>, __in_chrg=<optimized out>) at qt5/qtdeclarative/src/quick/util/qquickpixmapcache.cpp:1008
      #12 0x0000007fb5ec772c in ?? () from /lib/libc.so.6
      

      Attachments

        1. qt.png
          qt.png
          10 kB
        2. texshare.qml
          0.6 kB
        For Gerrit Dashboard: QTBUG-76053
        # Subject Branch Project Status CR V

        Activity

          People

            tvete Paul Olav Tvete
            bweimer Bernd Weimer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes