| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I8262ada29898df37c33855b9cb33aead419b02a6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
for debugging and streaming
Change-Id: Id9924fa9a99c6412069e6907473d0dfe083e3107
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default behavior for texture loading of uncompressed or CPU
compressed images results in a performance price at runtime. Add a
warning to the documentation describing this behavior and how to avoid
it. Ideally, in the future we'll have an asset conditioning pipeline
that will handle this in an optimal manner for the user of the 3D
framework.
Change-Id: I795d011adfedcbcf8d80224a36adbf9465140066
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous implementation used a component conversion for
QAbstractTexture::RGBA32F (when GL_TYPE is GL_FLOAT) which results in a
non-linear mapping from [0,1] to [0,127]. A non-linear mapping should
only be used for some GL_TYPE other than GL_FLOAT.
See https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/
glReadPixels.xhtml for more.
This change maps color linearly to the range [0,255] when
QAbstractTexture::TextureFormat is QAbstractTexture::RGBA32F.
Task-number: QTBUG-66514
Change-Id: I4aa36b59acd193c7342ba4b0577f132e0c19ef85
Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/render/backend/renderer.cpp
tests/auto/auto.pro
Change-Id: Idc5bb088ae7f591809f8795124a3e44410bf4cf9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The previous implementation would reset ComputeDirty every frame if
markDirty(AllDirty) had been called earlier. This would break the
OnDemand rendering policy because every frame would be rendered even if
there were no changes or no compute commands in the scene.
This change removes the code that would re-enable the ComputeDirty flag
every frame and documents that the user must either set the rendering
policy to Always or trigger the rendering of a new frame if the
rendering policy is set to OnDemand.
Change-Id: Ide03a3a49ee1670fd9d67ed47454c6679219765d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
>>> CID 187918: Null pointer dereferences (REVERSE_INULL)
>>> Null-checking "node" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
Change-Id: Ic799724e91d118a2c5b2715c5742a4184b09a217
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
Apparently this was a major security issue reported to security.qt-project.org
Change-Id: Id52f035134ca6111e24b5820eb1b64b99449e47f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I0a7334907e4b34df6955fb24832958b674d7b62b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 627167bd4a2e1dc12ffee813e82f9b33bff19a22.
There was a reason to use the y axis as the up vector here which
is to keep the camera controller oriented correctly. Without this
restriction it's far too easy to end up with a twisted camera.
If we want a fully free trackball type controller, let's add that
as a new type, or perhaps as an option on these.
Change-Id: I56c8708535d4ccd05ccb5f2ddea732bb27abda58
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change fixes multiple QDoc warnings for Qt 3D Core that are
related to how Clang parses the source code and the \fn QDoc
commands.
We still have a number of 'No documentation for ...' warnings left -
those are not addressed in this change.
Change-Id: Ia6394f453d7bd959bc4d4cc9347ac0039b80f661
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/animation/doc/src/qt3danimation-module.qdoc
src/render/backend/abstractrenderer_p.h
src/render/backend/buffervisitor_p.h
src/render/backend/renderer.cpp
src/render/backend/renderer_p.h
src/render/backend/triangleboundingvolume_p.h
src/render/backend/trianglesextractor_p.h
src/render/frontend/sphere_p.h
src/render/jobs/calcboundingvolumejob.cpp
src/render/jobs/job_common_p.h
src/render/jobs/pickboundingvolumejob.cpp
src/render/jobs/pickboundingvolumejob_p.h
src/render/jobs/pickboundingvolumeutils.cpp
src/render/jobs/renderviewjobutils_p.h
tests/auto/render/boundingsphere/tst_boundingsphere.cpp
tests/auto/render/commons/testrenderer.h
tests/auto/render/raycasting/tst_raycasting.cpp
tests/auto/render/render.pro
tests/auto/render/renderer/tst_renderer.cpp
Change-Id: I76633bc5a5a065e5f9ea62cc16563377e5c693a3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Move it to renderBinJobs because we clear all dependencies of
calculateBoundingVolumeJob at the start of this function.
Change-Id: Idebe10349181d95813e47e85b2e6f4f2ae39e615
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, if the render surface could not be locked or makeCurrent
failed, the aspect thread would be stuck waiting for the next frame and
the render thread would be stuck waiting for the render jobs.
This change makes sure both threads continue, which will allow changes
to the surface to be synchronized and make the render thread try to
lock the surface again.
Task-number: QTBUG-66243
Change-Id: I01bbe4c2ca74961f363efbe87c0586edaad41c62
Reviewed-by: Harald Vistnes <harald.vistnes@gmail.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For generating Python bindings, the struct InputState needs to
be public since a Python binding needs to be created for it
so that a wrapper of QAbstractCameraController can be generated
that calls into Python for an implementation of moveCamera().
Task-number: PYSIDE-487
Change-Id: Ib410b19a9e886ad06335dac05fd56206a72220bf
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ia498dd96a6d35997a3f493f26b376fb8fa146196
Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |\|
| | |
| | |
| | | |
Change-Id: I72fdfb9a20be2f819542243e888756818b03c28e
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Scene2D can sometimes receive the render initialization event before the
qt3d renderer has been initialized. This causes crash because the
sharecontext hasn't been set yet. Add safeguard against this.
Task-number: QT3DS-904
Change-Id: Ib50a60ed89c12ac54c9165266466d9804affe77c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The resource manager policy for scene2d nodes has been changed so the
scene2d constructor gets called multiple times at startup. That in turn
increments render thread user counter every time. The cleanup code gets
called for each instanciated QScene2D node so at shutdown the counter
never reaches zero and the render thread is not closed properly. Change
the implementation so that the counter gets incremented only when the
render thread has been properly initialized.
Task-number: QTBUG-66003
Change-Id: I33a5b1f407e65329776bcabe0b66ff049581a435
Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
src/render/backend/trianglesvisitor.cpp
src/render/backend/uniform.cpp
src/render/jobs/calcboundingvolumejob.cpp
src/render/jobs/pickboundingvolumejob.cpp
src/render/jobs/pickboundingvolumeutils.cpp
Change-Id: Ib8305011c51710a3538c0b29f7022388f5244a38
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-61759
Change-Id: I2c61f9cf41124816d10da90783c7fb9ff6088fc4
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This completes the fix for out of order event delivery related to
creation changes. We now ensure that QNodes used as values in singular
and list properties are fully constructed on the backend before they
are referenced in properties of other nodes.
Also added a check to not recurse into sending too many changes
when adding a child node.
Written with Svenn-Arne Dragly.
Task-number: Task-number: QTBUG-65956
Change-Id: I1470e0f685c81d1277ac04ad985ec1b76f1c27c0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The actual geometry for patch-based geometry renderers is computed in
tessellation shaders, so don't try to compute bounding volumes.
Task-number: QTBUG-66073
Change-Id: I9ff13c526859020ff85ba84e6db7c4c4b7335974
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
And improve error output
Change-Id: I9364e0e610cc758ad322bf96b52f57989c7ed0df
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This way a material with a broken shader will fail once (and won't be
retried unless the shader code gets changed), and the application will
continue gracefully, without asserting.
Task-number: QTBUG-65936
Change-Id: I7003e8c6f7d9094280d7757c1020b485f93e3b37
Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
PickBoundingVolumeJob uses QEntity::worldBoundingVolumeWithChildren(),
which is set by ExpandBoundingVolumeJob.
Change-Id: Ic03360a694254e45c9abfd6863a7b101910bb7fc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
All examples, even with packed data, set actual vertex size on
the attribute. However, convention is to pass 0 for packed data,
in which case GL will compute vertex size based on number of coordinates
and component data size.
Neither the buffer visitor nor the triangle visitor respected this
convention and relied on the real size to be set. Now computing the
actual stride if it's passed in as 0.
Change-Id: I9a65fd7d8d56f181e31faa93389e3fdd1a973c17
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Take the index attribute (and buffer) into account, when present.
Rely on QGeometryRenderer::vertexCount(), when set.
Initially done on dev as: 1d874d33da9174a82fccc266c66a22af006ac8ef
Task-number: QTBUG-65590
Change-Id: I98d1865e3581272471d6b93b9633da38dc77163d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a component is added to an entity, two change
notifications were sent but they both were directed
to the entity.
This makes sure one message is sent to the entity
and one to the component, as was intended.
Same for remove notifications.
Fixed the unit tests which where incorrectly testing for the
subject id of the change notification.
Change-Id: Ic697c08e92e884abf28e675e4ae2b44a93ca45d5
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I8b519e3d0c5389607be069c08215c921b63e5f07
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This fixes issues with picking when having multiple viewports and/or
multiple windows.
Now check that the mouse event actually hits inside the viewport extents.
Also track the source of events and check that the surface matches the
source of the event.
Remaining issue is overlapping viewports within the same window
Task-number: QTBUG-59567
Change-Id: I76a4ee2bec7300d893fef6040d89bf81f2109795
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Will be restored to compatible x86 platforms later
Change-Id: Ide66dea099690682fd898bd0378b3d5614c40808
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I19b3b2f8fcb06eb2bc600ebe370465dd15a8eabc
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes sure that jobs that depend on a specific state of the
renderer (such as context being initialized) never run before this
is the case. This reduces the number of possible race conditions
and checks we need to do to ensure the jobs and the renderer are in
the correct state.
This way we no longer swap buffers when nothing has been rendered,
which in turn makes sure that we only draw one frame when the
render policy is OnDemand and there are no changes.
This change also adds a number of assertions on pointers to
resources to make it easier to detect missing job dependencies.
Finally, this change overhauls the job dependencies in
Renderer and RenderViewBuilder.
Task-number: QTBUG-66024
Change-Id: I3e4e9dd0dd53b5c88f5c1b17d68df42f28eae794
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-66407
Change-Id: Ic79851e94fcadee8f707cb2682938692db094aa7
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|\ \ \
| | | |
| | | |
| | | | |
refs/staging/5.11
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/render/backend/renderer.cpp
src/render/backend/renderer_p.h
tests/auto/render/renderer/tst_renderer.cpp
Done-with: Svenn-Arne Dragly <svenn-arne.dragly@qt.io>
Change-Id: I2ca9bac4777e51434579edf86030414734f533ac
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The resource manager policy for scene2d nodes has been changed so the
scene2d constructor gets called multiple times at startup. That in turn
increments render thread user counter every time. The cleanup code gets
called for each instanciated QScene2D node so at shutdown the counter
never reaches zero and the render thread is not closed properly. Change
the implementation so that the counter gets incremented only when the
render thread has been properly initialized.
Task-number: QTBUG-66003
Change-Id: I33a5b1f407e65329776bcabe0b66ff049581a435
Reviewed-by: Svenn-Arne Dragly <svenn-arne.dragly@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
(cherry picked from commit 564dfd87c5b1317dcf9fbc4d1c8d858c72513421)
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Scene2D can sometimes receive the render initialization event before the
qt3d renderer has been initialized. This causes crash because the
sharecontext hasn't been set yet. Add safeguard against this.
Task-number: QT3DS-904
Change-Id: Ib50a60ed89c12ac54c9165266466d9804affe77c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
(cherry picked from commit 13f340c92bdf725d214ab4840fc2e071d12d6e00)
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This completes the fix for out of order event delivery related to
creation changes. We now ensure that QNodes used as values in singular
and list properties are fully constructed on the backend before they
are referenced in properties of other nodes.
Also added a check to not recurse into sending too many changes
when adding a child node.
Written with Svenn-Arne Dragly.
Task-number: Task-number: QTBUG-65956
Change-Id: I1470e0f685c81d1277ac04ad985ec1b76f1c27c0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit 8fa23602cff47de6d19d05a8428a8e753bf73d61)
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Also improve error output
Change-Id: Ibf4a4340c83dadd507f4f356682cc861930fe2fd
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
PickBoundingVolumeJob uses QEntity::worldBoundingVolumeWithChildren(),
which is set by ExpandBoundingVolumeJob.
Change-Id: Ic03360a694254e45c9abfd6863a7b101910bb7fc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The OnDemand render policy has no effect because the ShadersDirty and
ComputeDirty flags are always set. This commit resets ShadersDirty so
that ShaderGathererJob is only run when needed. It also introduces the
TechniquesDirty flag so we know when to run
FilterCompatibleTechniqueJob and makes sure the job is only run if
the context has been initialized and the renderer is running.
Task-number: QTBUG-65965
Change-Id: Icbcc03ed2dc6b14c6580cc794267b5a88e5f4ca2
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The ShaderGathererJob will use Technique::isCompatibleWithRenderer()
while looking for dirty shaders. This is set in the
FilterCompatibleTechniquesJob, but it might run after (or, even worse,
at the same time as) ShaderGathererJob.
Task-number: QTBUG-66024
Change-Id: I929e87b9c67068b51f7d64c637b1741d743b1839
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
To get a better overview of which dirty bits changed at what time,
this change organizes them in the following categories:
- current: dirty bits at job building
- marked: dirty bits marked since last job building
- remaining: dirty bits set but not cleared in the previous frame
Further, within renderBinJobs, we add a variable "notCleared" to
keep track of which bits in "current" should be set in "remaining".
Change-Id: I43a42a4fd495a6d9f794721d1f09381718dfa647
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
GCC 7 complains that it is used uninitialized. The line number points to
the opening brace of the class, so I suppose it's the implicit copy
constructor.
Loading undefined floating point values is probably a bad idea. Could
generate an FP exception.
animationutils_p.h:126:8: error: ‘<anonymous>.Qt3DAnimation::Animation::ChannelNameAndType::pad’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
Change-Id: I11d489f37e7e424b971dfffd150e3268d4be9294
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
assimpimporter.cpp:616:75: error: unused parameter ‘basePath’ [-Werror=unused-parameter]
Change-Id: I8d96dea9955d4c749b99fffd14cd62dd3d0fa45f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|/ / /
| | |
| | |
| | |
| | | |
Change-Id: If53d29902d786c3e8369e521582aee5ab0bdcf7a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Using OpenGL ES 2.0 cause a division by zero due to a modification to
GraphicsHelperES2: uniform.m_rawByteSize is not correctly initialized.
Task-number: QTBUG-64964
Change-Id: Ib500b683b1402d0160a5e18236ac5b0a4cbf131a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When testing Qt3D Studio runtime 2.0, noticed slowing down and memory
usage increasing which came from AspectTaskRunnable m_dependers growing.
Located reason being multiple dependencies to
m_findRunningClipAnimatorsJob, so make sure that each job has only
single dependency to that and m_loadAnimationClipJob.
Task-number: QT3DS-909
Change-Id: I0d3ebc3ea2ab17af51394c69bc32b8aa2db0913e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|