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

crash in Qt3DRender::Render::TrianglesExtractor::extract(Qt3DCore::QNodeId)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.7.0 RC
    • 5.7.0
    • Qt3D
    • mac 10.11.1 latest git 5.6
    • f52f556ab5f6304310990e38e5836120c41e9c67

    Description

      I'm getting the following crash in a render thread for a dynamic triangle strip GeometryRenderer mesh (T3TriangleStrip – see attached example to reproduce):

      • thread #15: tid = 0x49e6b5, 0x00000001000ff113 Qt3DRender`QVector<Qt3DCore::QBoundingVolume*> Qt3DRender::Render::(anonymous namespace)::processBuffer<QVector<Qt3DCore::QBoundingVolume*>, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> > >(Qt3DRender::Render::(anonymous namespace)::BufferInfo const&, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> >&) + 29203, name = 'Thread (pooled)', stop reason = EXC_BAD_ACCESS (code=1, address=0x31c120c08)
        frame #0: 0x00000001000ff113 Qt3DRender`QVector<Qt3DCore::QBoundingVolume*> Qt3DRender::Render::(anonymous namespace)::processBuffer<QVector<Qt3DCore::QBoundingVolume*>, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> > >(Qt3DRender::Render::(anonymous namespace)::BufferInfo const&, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> >&) + 29203
        Qt3DRender`QVector<Qt3DCore::QBoundingVolume*> Qt3DRender::Render::(anonymous namespace)::processBuffer<QVector<Qt3DCore::QBoundingVolume*>, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> > >:
        -> 0x1000ff113 <+29203>: movl (%r13,%rax,4), %eax
        0x1000ff118 <+29208>: movl %eax, -0x48(%rbp)
        0x1000ff11b <+29211>: movl $0x1, %eax
        0x1000ff120 <+29216>: testl %r15d, %r15d
        (lldb) bt
      • thread #15: tid = 0x49e6b5, 0x00000001000ff113 Qt3DRender`QVector<Qt3DCore::QBoundingVolume*> Qt3DRender::Render::(anonymous namespace)::processBuffer<QVector<Qt3DCore::QBoundingVolume*>, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> > >(Qt3DRender::Render::(anonymous namespace)::BufferInfo const&, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> >&) + 29203, name = 'Thread (pooled)', stop reason = EXC_BAD_ACCESS (code=1, address=0x31c120c08)
      • frame #0: 0x00000001000ff113 Qt3DRender`QVector<Qt3DCore::QBoundingVolume*> Qt3DRender::Render::(anonymous namespace)::processBuffer<QVector<Qt3DCore::QBoundingVolume*>, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> > >(Qt3DRender::Render::(anonymous namespace)::BufferInfo const&, Qt3DRender::Render::(anonymous namespace)::IndexedVertexExecutor<unsigned int const, QVector<Qt3DCore::QBoundingVolume*> >&) + 29203
        frame #1: 0x00000001000c432d Qt3DRender`Qt3DRender::Render::TrianglesExtractor::extract(Qt3DCore::QNodeId) + 2557
        frame #2: 0x000000010018e502 Qt3DRender`Qt3DRender::Render::CalcGeometryTriangleVolumes::run() + 82
        frame #3: 0x00000001003b4d98 Qt3DCore`Qt3DCore::AspectTaskRunnable::run() + 24
        frame #4: 0x0000000100a5e268 QtCore`QThreadPoolThread::run() + 104
        frame #5: 0x0000000100a6182a QtCore`QThreadPrivate::start(void*) + 362
        frame #6: 0x00007fff93ca39b1 libsystem_pthread.dylib`_pthread_body + 131
        frame #7: 0x00007fff93ca392e libsystem_pthread.dylib`_pthread_start + 168
        frame #8: 0x00007fff93ca1385 libsystem_pthread.dylib`thread_start + 13
      • I also included a T3Frame which is a static geometry like cuboid etc. Has all the same basic code elements as the dynamic one. Not sure why one crashes and the other doesn't!
      • ps. the Frame is a very useful geometry element – consider including something like this in base code!

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-49808
          # Subject Branch Project Status CR V

          Activity

            People

              lemire_p Paul Lemire
              rcoreilly Randall O'Reilly
              Votes:
              2 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes