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

Xavier Bigand flamaros.xavier at gmail.com
Wed Oct 26 17:16:46 CEST 2016


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>:

> Hi,
>
> I had problems similar to what you describe 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>:
>
>> 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::setNodeManagers
>> (Qt3DRender::Render::NodeManagers * manager) Line 140 C++
>>   Qt53DRenderd.dll!Qt3DRender::Render::RenderEntityFunctor::create(const
>> QSharedPointer<Qt3DCore::QNodeCreatedChangeBase> & change) Line 562 C++
>>   Qt53DCored.dll!Qt3DCore::QAbstractAspectPrivate::createBackendNode(const
>> QSharedPointer<Qt3DCore::QNodeCreatedChangeBase> & change) Line 198 C++
>>   Qt53DCored.dll!Qt3DCore::QAbstractAspectPrivate::sceneNodeAd
>> ded(QSharedPointer<Qt3DCore::QSceneChange> & change) Line 163 C++
>> Qt53DCored.dll!Qt3DCore::QChangeArbiter::distributeQueueChan
>> ges(std::vector<QSharedPointer<Qt3DCore::QSceneChange>,std::allocator<
>> QSharedPointer<Qt3DCore::QSceneChange> > > * changeQueue) Line 120 C++
>>   Qt53DCored.dll!Qt3DCore::QChangeArbiter::syncChanges() Line 180 C++
>>   Qt53DCored.dll!Qt3DCore::QAspectManager::exec() Line 282 C++
>>   Qt53DCored.dll!Qt3DCore::QAspectThread::run() Line 88 C++
>>   Qt5Cored.dll!QThreadPrivate::start(void * arg) Line 380 C++
>>   [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
>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>>
> _______________________________________________
> 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/20161026/4aa59d7a/attachment.html>


More information about the Interest mailing list