[Development] New SceneGraph related issue

Sletta Gunnar Gunnar.Sletta at digia.com
Fri Sep 13 09:56:09 CEST 2013


Ok, that stack trace doesn't tell me much as the interesting parameters are optimized out :/

If this was a general bug, I suspect the issue would be present in a lot of places though, so my immediate reaction is to point towards the emulator :) You can compare the buffer size used in uploadBatches() to the offsets and sizes used in the renderMergedBatch() function, but from what I can see, they are all correct.

There is no way to disable optimizations or use the old renderer. The new logic is here to stay.

cheers,
Gunnar

________________________________
Fra: Tomasz Olszak [olszak.tomasz at gmail.com]
Sendt: 12. september 2013 18:53
To: Sletta Gunnar
Cc: development at qt-project.org
Emne: Re: [Development] New SceneGraph related issue

I got stracktrace. It is as you predicted glDrwaElements. Is there any possibility to make some kind of workaround patch to make it work on emulator (I suppose it is emulator GL issue), perhabs by turning off some optimizations and so on? I would like to add such patch to rpm emulator package until problem will be fixed.

#0  0xb7fe1424 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb69a0cc1 in raise () from /lib/libc.so.6
No symbol table info available.
#2  0xb69a40ee in abort () from /lib/libc.so.6
No symbol table info available.
#3  0xb6999888 in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#4  0xb4866d2c in glGetBufferSubDataARB () from /usr/lib/host-gl/libGL.so.1.2
No symbol table info available.
#5  0xb4866d62 in glGetBufferSubData () from /usr/lib/host-gl/libGL.so.1.2
No symbol table info available.
#6  0xb6c20dec in glDrawElements () from /usr/lib/libGLESv2.so.1
No symbol table info available.
#7  0xb7cc3096 in QSGBatchRenderer::Renderer::renderMergedBatch (
    this=0x84e6800, batch=0x84e8100)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:1863
        draw = <value optimized out>
        offset = <value optimized out>
        i = <value optimized out>
        e = <value optimized out>
        __PRETTY_FUNCTION__ = "void QSGBatchRenderer::Renderer::renderMergedBatch(const QSGBatchRenderer::Batch*)"
---Type <return> to continue, or q <return> to quit---
        sms = 0x84e5420
        g = 0x84e7bbc
        attrNames = <value optimized out>
        gn = 0xb7fc2e5c
        material = <value optimized out>
        program = <value optimized out>
#8  0xb7cc4e3f in QSGBatchRenderer::Renderer::renderBatches (this=0x84e6800)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:2008
        b = <value optimized out>
        i = <value optimized out>
        __PRETTY_FUNCTION__ = "void QSGBatchRenderer::Renderer::renderBatches()"
        renderOpaque = <value optimized out>
        renderAlpha = true
#9  0xb7cc6718 in QSGBatchRenderer::Renderer::render (this=0x84e6800)
    at scenegraph/coreapi/qsgbatchrenderer.cpp:2168
        __PRETTY_FUNCTION__ = "virtual void QSGBatchRenderer::Renderer::render()"
#10 0xb7cd5e10 in QSGRenderer::renderScene (this=0x84e6800, bindable=...)
    at scenegraph/coreapi/qsgrenderer.cpp:274
        profileFrames = <value optimized out>
        bindTime = 0
        renderTime = 0
---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = "void QSGRenderer::renderScene(const QSGBindable&)"
#11 0xb7cd60dd in QSGRenderer::renderScene (this=0x84e6800)
    at scenegraph/coreapi/qsgrenderer.cpp:231
        b = warning: RTTI symbol not found for class 'QSGRenderer::renderScene()::B'
{<QSGBindable> = {
            _vptr.QSGBindable = 0xb7fb4240}, <No data fields>}
#12 0xb7ce7e4c in QSGContext::renderNextFrame (this=0x845d620,
    renderer=0x84e6800, fboId=0) at scenegraph/qsgcontext.cpp:367
No locals.
#13 0xb7d3273e in QQuickWindowPrivate::renderSceneGraph (this=0x848c870,
    size=...) at items/qquickwindow.cpp:358
        _qml_memory_scope = {pushed = false}
        q = 0x845dc30
        fboId = 0
        devicePixelRatio = <value optimized out>
#14 0xb7d0bb04 in QSGGuiThreadRenderLoop::renderWindow (this=0x8498128,
    window=0x845dc30) at scenegraph/qsgrenderloop.cpp:288
        data = @0x8489ba4
        current = <value optimized out>
        alsoSwap = true
        cd = 0x848c870
        renderTime = 0
        swapTime = <value optimized out>
---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = "void QSGGuiThreadRenderLoop::renderWindow(QQuickWindow*)"
        syncTime = 0
        renderTimer = {t1 = -4611697219702095867, t2 = 55969188728}
        profileFrames = false
#15 0xb7d0c4ee in QSGGuiThreadRenderLoop::exposureChanged (this=0x8498128,
    window=0x845dc30) at scenegraph/qsgrenderloop.cpp:335
No locals.
#16 0xb7d319be in QQuickWindow::exposeEvent (this=0x845dc30)
    at items/qquickwindow.cpp:214
        d = <value optimized out>
#17 0xb71f6b94 in QWindow::event(QEvent*) () from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#18 0xb7d3dcb4 in QQuickWindow::event (this=0x845dc30, e=0xbffff880)
    at items/qquickwindow.cpp:1241
        d = <value optimized out>
#19 0xb6ec782a in QCoreApplicationPrivate::notify_helper (this=0x8055458,
    receiver=0x845dc30, event=0xbffff880) at kernel/qcoreapplication.cpp:986
No locals.
#20 0xb6ec78cb in QCoreApplication::notify (this=0xbffffc80,
    receiver=0x845dc30, event=0xbffff880) at kernel/qcoreapplication.cpp:931
        d = 0x8055458
        __PRETTY_FUNCTION__ = "virtual bool QCoreApplication::notify(QObject*, Q---Type <return> to continue, or q <return> to quit---
Event*)"
#21 0xb71e643b in QGuiApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#22 0xb6ec752b in QCoreApplication::notifyInternal (this=0xbffffc80,
    receiver=0x845dc30, event=0xbffff880) at kernel/qcoreapplication.cpp:869
        threadData = 0x80545b0
        result = false
        cbdata = {0x845dc30, 0xbffff880, 0xbffff81f}
        d = <value optimized out>
#23 0xb71e747a in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#24 0xb71ee7b0 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
No symbol table info available.

#25 0xb71d6497 in QWindowSystemInterface::sendWindowSystemEventsImplementation(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#26 0xb71d6501 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#27 0xb4e616f3 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/qt5/plugins/platforms/libqxcb.so
No symbol table info available.
#28 0xb64c2a13 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#29 0xb64c2da8 in g_main_context_iterate.clone.5 ()
   from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#30 0xb64c2e8f in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#31 0xb6f2839d in QEventDispatcherGlib::processEvents (this=0x80572a0,
    flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:426
        d = 0x80562b0
        canWait = true
        result = <value optimized out>
#32 0xb4e61937 in QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt5/plugins/platforms/libqxcb.so
No symbol table info available.

#33 0xb6ec5637 in QEventLoop::processEvents (this=0xbffffc18, flags=...)
    at kernel/qeventloop.cpp:136
        d = <value optimized out>
#34 0xb6ec5b67 in QEventLoop::exec (this=0xbffffc18,
    flags=<value optimized out>) at kernel/qeventloop.cpp:212
        locker = {val = 134563376}
---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = "int QEventLoop::exec(QEventLoop::ProcessEventsFlags)"
        app = 0x24
        d = 0x8482d20
#35 0xb6ecd629 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1122
        threadData = 0x80545b0
        __PRETTY_FUNCTION__ = "static int QCoreApplication::exec()"
        eventLoop = {<QObject> = {_vptr.QObject = 0xb712af08,
            static staticMetaObject = {d = {superdata = 0x0,
                stringdata = 0xb7039860, data = 0xb703a360,
                static_metacall = 0xb6f05bb0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
                extradata = 0x0}}, d_ptr = {d = 0x8482d20},
            static staticQtMetaObject = {d = {superdata = 0x0,
                stringdata = 0xb7083340, data = 0xb708aee0,
                static_metacall = 0, relatedMetaObjects = 0x0,
                extradata = 0x0}}}, static staticMetaObject = {d = {
              superdata = 0xb7129394, stringdata = 0xb7095480,
              data = 0xb70954e0,
              static_metacall = 0xb6f7e9d0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
              extradata = 0x0}}}
        returnCode = <value optimized out>
---Type <return> to continue, or q <return> to quit---
#36 0xb71e6387 in QGuiApplication::exec() () from /usr/lib/libQt5Gui.so.5
No symbol table info available.
#37 0x08049216 in OspMain (argc=1, argv=0xbffffd94) at main.cpp:48
        app = <incomplete type>





        engine = {<QQmlEngine> = {<QJSEngine> = {<QObject> = {
                _vptr.QObject = 0xb7ba7868, static staticMetaObject = {d = {
                    superdata = 0x0, stringdata = 0xb7039860,
                    data = 0xb703a360,
                    static_metacall = 0xb6f05bb0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
                    extradata = 0x0}}, d_ptr = {d = 0x8092420},
                static staticQtMetaObject = {d = {superdata = 0x0,
                    stringdata = 0xb7083340, data = 0xb708aee0,
                    static_metacall = 0, relatedMetaObjects = 0x0,
                    extradata = 0x0}}}, static staticMetaObject = {d = {
                  superdata = 0xb7129394, stringdata = 0xb7adb39c,
                  data = 0xb7adb3c0,
                  static_metacall = 0xb7883f30 <QJSEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
                  extradata = 0x0}

}, d = 0x8094120},
            static staticMetaObject = {d = {superdata = 0xb7ba463c,
                stringdata = 0xb7af9e20, data = 0xb7af9ec0,
                static_metacall = 0xb7a98aa0 <QQmlEngine::qt_static_metacall(QOb---Type <return> to continue, or q <return> to quit---
ject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
                extradata = 0x0}}}, static staticMetaObject = {d = {
              superdata = 0xb7ba8990, stringdata = 0xb7af2ec0,
              data = 0xb7af3000,
              static_metacall = 0xb7a25fd0 <QQmlApplicationEngine::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0,
              extradata = 0x0}}}
        window = 0x845dc30
        __PRETTY_FUNCTION__ = "int OspMain(int, char**)"
#38 0x08049375 in main (argc=1, argv=0xbffffd94) at main.cpp:56
No locals.


--
regards / pozdrawiam, Tomasz Olszak
Qt for Tizen | http://qt-project.org/wiki/Tizen
Qt Certified Developer | http://qt-project.org<http://qt-project.org/>
http://linkedin.com/in/tolszak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130913/7ff070be/attachment.html>


More information about the Development mailing list