[Interest] [Qt3D] Crash when changing an entity's parent many times

Xavier Bigand flamaros.xavier at gmail.com
Tue Jan 3 16:29:46 CET 2017


Hi,

Sorry for the delay, I just tested with Qt5.8 RC and it now works.

Thank you and happy new year.

2016-10-26 17:19 GMT+02:00 Sean Harmer <sean.harmer at kdab.com>:

> Hi,
>
> can you file a JIRA with a small test case please?
>
> Cheers,
>
> Sean
>
> On 26/10/2016 16:16, Xavier Bigand wrote:
>
>> Yes I had this issue too, but when trying to share my QShaderProgram not
>> changing parents.
>>
>> I simply can't progress as fast as want because of a lot of small bugs
>> like this one and sadly I don't know how the backend is supposed to work
>> to be able to contribute.
>>
>>
>> In our homebrew engine I had similar issue, and the simplest way to
>> solve them was to check ptr in the 3D engine instead of using assert,
>> because it can be much hard from the user view to ensure the validity of
>> all nodes.
>>
>>
>>
>> 2016-10-26 16:56 GMT+02:00 Oleg Evseev <ev.mipt at gmail.com
>> <mailto:ev.mipt at gmail.com>>:
>>
>>     Hi,
>>
>>     I had problems similar to what you describe
>>     https://bugreports.qt.io/browse/QTBUG-55093
>>     <https://bugreports.qt.io/browse/QTBUG-55093> in qt 5.7. I haven't
>>     check it on 5.8.
>>
>>     2016-10-26 16:37 GMT+03:00 Xavier Bigand <flamaros.xavier at gmail.com
>>     <mailto:flamaros.xavier at gmail.com>>:
>>
>>
>>         Hi,
>>
>>         I have to change to parent to nullptr to make some entities
>>         invisible, but when I put them visible back I get a crash.
>>
>>         The crash is a segfault in the method void
>>         Entity::setNodeManagers(NodeManagers *manager) because the this
>>         pointer is null.
>>
>>         Here is the callstack :
>>          Qt53DRenderd.dll!Qt3DRender::Render::Entity::setNodeManager
>> s(Qt3DRender::Render::NodeManagers
>>         * manager) Line 140C++
>>          Qt53DRenderd.dll!Qt3DRender::Render::RenderEntityFunctor::c
>> reate(const
>>         QSharedPointer<Qt3DCore::QNodeCreatedChangeBase> & change) Line
>>         562C++
>>          Qt53DCored.dll!Qt3DCore::QAbstractAspectPrivate::createBack
>> endNode(const
>>         QSharedPointer<Qt3DCore::QNodeCreatedChangeBase> & change) Line
>>         198C++
>>          Qt53DCored.dll!Qt3DCore::QAbstractAspectPrivate::sceneNodeA
>> dded(QSharedPointer<Qt3DCore::QSceneChange>
>>         & change) Line 163C++
>>         Qt53DCored.dll!Qt3DCore::QChangeArbiter::distributeQueueChan
>> ges(std::vector<QSharedPointer<Qt3DCore::QSceneChange>,std::allocator<
>> QSharedPointer<Qt3DCore::QSceneChange>
>>         > > * changeQueue) Line 120C++
>>          Qt53DCored.dll!Qt3DCore::QChangeArbiter::syncChanges() Line
>> 180C++
>>          Qt53DCored.dll!Qt3DCore::QAspectManager::exec() Line 282C++
>>          Qt53DCored.dll!Qt3DCore::QAspectThread::run() Line 88C++
>>          Qt5Cored.dll!QThreadPrivate::start(void * arg) Line 380C++
>>          [External Code]
>>          [Frames below may be incorrect and/or missing, no symbols
>>         loaded for kernel32.dll]
>>
>>
>>
>>         I am also curious to know what does the enable flag on QEntity,
>>         it seems easier to use it to control the visibility of object
>>         and maybe faster.
>>
>>
>>         PS: I am using the git branch 5.8
>>
>>
>>         --
>>         Xavier
>>
>>         _______________________________________________
>>         Interest mailing list
>>         Interest at qt-project.org <mailto:Interest at qt-project.org>
>>         http://lists.qt-project.org/mailman/listinfo/interest
>>         <http://lists.qt-project.org/mailman/listinfo/interest>
>>
>>
>>     _______________________________________________
>>     Interest mailing list
>>     Interest at qt-project.org <mailto:Interest at qt-project.org>
>>     http://lists.qt-project.org/mailman/listinfo/interest
>>     <http://lists.qt-project.org/mailman/listinfo/interest>
>>
>>
>>
>>
>> --
>> Xavier
>>
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>>
> --
> Dr Sean Harmer | sean.harmer at kdab.com | Managing Director UK
> KDAB (UK) Ltd, a KDAB Group company
> Tel. +44 (0)1625 809908; Sweden (HQ) +46-563-540090
> Mobile: +44 (0)7545 140604
> KDAB - Qt Experts
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>



-- 
Xavier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20170103/cbfbedfe/attachment.html>


More information about the Interest mailing list