[Interest] [Qt3D] stability and performance issues with Qt 5.8
Xavier Bigand
flamaros.xavier at gmail.com
Fri Oct 21 18:15:23 CEST 2016
I am actually use Qt 5.8 branch from Git, I have some performances and
stability regression compared to the 5.7 release.
I can't run my application in Debug mode (tested with mingw and VS 2013)
with both Qt versions (5.7 and 5.8=), it runs in release but behavior
change fast when I do very small changes in my code.
It seems that the version 5.7 is able to support more complexe scenes than
Qt 5.8 and performances are twice better.
As much as I can tell for the moment stability/performances issues cames
from threading management.
When trying to load a scene in debug mode with Qt 5.8 it often break in T
QGenericAtomicOps::load(const T &_q_value) from a pooled thread.
Here is the full call stack :
> Qt53DRenderd.dll!QGenericAtomicOps<QAtomicOpsBySize<4> >::load<int>(const
int & _q_value) Line 90 C++
Qt53DRenderd.dll!QBasicAtomicInteger<int>::load() Line 99 C++
Qt53DRenderd.dll!QtPrivate::RefCount::isShared() Line 101 C++
Qt53DRenderd.dll!QVector<Qt3DRender::Render::ClearBufferInfo>::isDetached()
Line 108 C++
Qt53DRenderd.dll!QVector<Qt3DRender::Render::ClearBufferInfo>::detach()
Line 384 C++
Qt53DRenderd.dll!QVector<Qt3DRender::Render::ClearBufferInfo>::begin()
Line 204 C++
Qt53DRenderd.dll!Qt3DRender::Render::FrameGraphVisitor::visit::__l78::<lambda>()
Line 326 C++
Qt53DRenderd.dll!Qt3DRender::Render::GenericLambdaJob<void <lambda>(void)
>::run() Line 78 C++
Qt53DCored.dll!Qt3DCore::AspectTaskRunnable::run() Line 91 C++
Qt5Cored.dll!QThreadPoolThread::run() Line 99 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]
It breaks because the QBasicAtomicInteger pointer is allready free
(0xFEEEFEEE).
And for performance issues it seems to come from synchronization between
thread, so I am trying to reduce the number of Qt3D objects
(QShaderProgram, Texture,...) by sharing them, but doing this can lead in
rendering issues or crashs.
I want to help to improve stability (first) and performances, but I don't
have a great experience in thread debugging and on how the Qt3D backend
works. So I would be happy to get some hints to improve my feedbacks or
doing more to help.
--
Xavier
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20161021/43ce822a/attachment.html>
More information about the Interest
mailing list