| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 03e5f60e585701608c1181365faee484d7a1f14c.
Revert of commercial license headers is required for
Qt 5.15.3 opensource release.
Task-number: QTBUG-91108
Change-Id: I359e89ed77b1b2750607617d138ebb6c316f0296
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updated header.COMM to the files in tqtc-qt3d. Examples,
documentation files or tests are not updated.
The commercial license header may contain some
additional lines so that its line count equals
with the earlier license header. Reason for this
is that some autotests use hard coded line numbers
and a change in the line count causes failures in
tests.
Task-number: QTQAINFRA-4155
Change-Id: I139c8ad72c042b0900239decc36cfed4bc1c4951
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a node is added to the scene it is scheduled for a post-creation
initialization. However, if the node is destroyed before this
post-creation queue has been processed we will crash.
This commit ensures that the node being deleted is removed from the
post-creation queue. Usually the queue will be empty and so this should
not add a performance penalty.
Change-Id: Ibe4289e1e54cdb145f8588f15dc4ad894e427582
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 0a533673b5450d49725d23e08ac13b03fad564fb)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are two ways in which backend nodes can receive changes from the
frontend:
1) By syncing the state directly from the frontend nodes
2) By changs delivered by the change arbiter
Scene3D is already equipped to deal with changes going via the first
mechanism. However, it is possible for changes going via the second
mechanism to not trigger a re-render of a Scene3D item using the
OnDemand render mode. This is even true in the case of using a Scene3D
inside of a QQuickWidget even though this disables the threaded
Qt Quick 2 rendering.
The way this manifests is that:
* A change is made via mechanism 2) such as creating some new nodes.
* The frontend changes trigger a re-render of the Scene3D item via the
existing notification mechanism (connection to the change arbiter's
receivedChange() signal.
* The QQuickWidget uses a timerEvent() to trigger a possible update
* This notices the Scene3D is dirty and causes it to render and mark
its state as clean. This does not yet pick up the newly created
frontend nodes though as they need to go through the deferred
post creation init dance.
* The change arbiter then processes the deferred node creation events
and creates the backend nodes.
* At the next timerEvent from the QQuickWidget it still sees that the
Scene3D is clean and does not bother to re-render it.
This change fixes this by adding a new signal to the change arbiter,
syncedChanges() that gets emitted only when the arbiter has
actually finished distributing the changes going via mechanism 2) to
the backend nodes.
This syncedChhanges() signal is emitted on the aspect thread and so
Scene3DItem connects to this using a queued connection.
This then ensures that once the new backend nodes are actually
present and up to date that the Scene3D in OnDemand mode will then
re-render the scene with the complete scene graph.
Change-Id: I3246f34a3cfe15392a390eb6d97b4e90346288a6
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Ideally should support generic containers but clang seems to fail to
generate the symbol on the mac.
Change-Id: Ic1d6d815ab9aff60a97b3b0047228f55d7efe158
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit 5a33b94b348e5c65155b526e7746d9fe45560959)
|
|
|
|
|
|
|
| |
Change-Id: I1aa49328226d5e3f1da4bd86704c7fad44da6ad9
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit d41b639cc46e5d76aa7f779e6ef37bfd4e6c2e72)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Rework Scene3DRenderer/Scene3DItem to remove coupling and help
simplify the flow
- Introduce a Scene3DManagerNode to manager lifetime of the
Scene3DRenderer. Rely on the Scene3DManagerNode dtor to know
to shutdown the Qt3D renderer in the proper thread.
- Try to handle the fact that destruction order between Item and SGNode
is random by using an AspectEngineDestroyer helper
- Stop using a sharedptr to store the QEntity on the Scene3DItem side.
This can lead to crashes as the AspectEngine assumes it is the sole
owner of the Entity ptr.
Change-Id: I14915705eb9ab1195b2b783cbbb45076acc2ac1a
Task-number: QTBUG-84847
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
- Reverse dependency order so that graph shows jobs from first to last
instead of last to first
- Add instance id to RenderViewBuilder jobs, otherwise it all appears
as if there's a single instance of a given job when in reality there
is one per RenderView
Change-Id: Id47764151f0321c794068e71e21a25e921d04589
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Given QVector is potentially slower for this use case and the fact
that QVector might become QList in Qt6, we're better of using the
std.
Change-Id: If2c403439ddb856b60f8bfd5ae7c6ec1cb2c892a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 04bdb35a6c5f5fe417c06392e6a0861d80ec9dba)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a static function on QThreadPooler which returns the ideal thread count
(capped by QT3D_MAX_THREAD_COUNT) if set.
Call that function from all places that need that information. Avoids code
duplication and potentially reading the env value every frame.
Change-Id: I699691af33ed0a65aa557ed48aabb9de8929dcc2
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 1097607f112e79ddb4fc08d012db95faa193c4ea)
|
|
|
|
|
| |
Change-Id: I6a2a4577b4c45d7ac601d2693044c3817e245111
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Q_3DCORE_PRIVATE_EXPORT for operator* were removed by commit:
fa6799f63f3211300705b814b97716ca689d4bfa
for Vector3D_SSE and Matrix4x4_SSE.
Unfortunately they weren't removed for Matrix4x4_AVX2 which lead to
different linkage compile errors.
Change-Id: I854fb0cb4409aea1d130e935091533d4e72d6d6e
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Was caused by incorrect dependencies on the jobs.
Introduced a clearDependencies on QAspectJobPrivate to clear all
dependencies as removeDepencies(emptyVector) only removes null
dependencies.
Change-Id: I8119a9edaf841db6c5ab2a971dc5640da2192cba
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
If node parent / child or entity / component changes before the backend
nodes where created, records might not be complete yet.
Task-number: QTBUG-82269
Change-Id: Id8238410331626130bb71bb1653ac5cb5d5270d4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
| |
Might have QNodes "between" parents and child entities.
Change-Id: Ie041508ec96c39b779bc75a6ad4d38c604e322e2
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I8747c5714b4a25523835d558fa96888ea0ebcfed
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Ifbb51003e15f798798040597b5f7224641e8147c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Some jobs get skipped because they don't have anything to do.
However, since the runnable does not get submitted to the pool,
it would leak (along with the job it points to).
Also fixed a couple of compile warnings.
Change-Id: I7a25649f2f760c0593862328c0ab905da98c982a
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 34cb77c210316dd254a8aa27052fb03223e3f7af.
Naming in QProcess is considered to be the correct one and the rule.
Change-Id: I75f267b4f8dcc991b0d4945752b48de1b4e5b386
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
|
| |
Jobs that are in the graph but will not be scheduled (because they
have nothing to do) are showed in dashed line
Change-Id: Ia5d3b1b2b17d55820965b473099c0363cb645daf
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Can be triggered from the overlay API and using sending a "dump jobs"
command to the aspect engine. Gets saved in the current working
directory.
Change-Id: I19fc94a1215187c1d7eb9d1f3b13b968939cc917
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Once aspect jobs are inserted in the queue, they will always run, but
some of them don't actually have anything to do at every frame.
Ideally, when building a graph of jobs, you would include only jobs
that are required. However this makes building the graph more
complicated.
This introduces a method on the private job pimple which indicated if
the job actually has something to do or not.
When the scheduler is ready to run a job, it will call that method. If
there's nothing to do, then the job will be skipped and the dependent
jobs (if any) run instead.
Change-Id: Iaa8d3d064f03d8c0bab407879a9acea292a06784
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Fix MinGW-warings
src/core/transforms/matrix4x4_sse_p.h:485:50: warning: inline function 'Vector3D Qt3DCore::operator*(const Qt3DCore::Matrix4x4_SSE&, const Vector3D&)' declared as dllimport: attribute ignored [-Wattributes]
Q_3DCORE_PRIVATE_EXPORT Q_ALWAYS_INLINE Vector3D operator*(const Matrix4x4_SSE &matrix, const Vector3D &vector)
Change-Id: Ib8b39c613ce05b6dc3848c1251a88eea53903212
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
By default the QRenderAspect will try to load this plugin
Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2
Task-number: QTBUG-61151
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Iaa26160736bc6b92ecf0be767cb289d776cf46ad
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
| |
Mistakenly removed in a cleanup commit
Change-Id: Icfb7c370017facf6ce990430c3df1535a0a72973
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
- Removed some old optional timing code.
- Separated jobsDone into 2 parts since, on single threaded rendering
mode (ie macOS), the render aspect blocks until the next vsync which
confuses tracing
Change-Id: Icb641e3f8079da2cb9af0416b0f7c4dc4dd36c3c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* origin/5.14:
Fix usage of C++14 features
Use animation rather than event to drive simulation
Fix for incorrect QML property names in GeometryRenderer doc
Add viewAll support for orthographic projection mode
Change-Id: I397bdee907389a6f5cabb8390a805fa9a89ed4ca
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using events can be problematic as they contribute to flooding
of the event queue leading to issues with running animations.
So we now use an actual animation which runs in a loop and triggers
every 1ms (rendering still vsync locked though).
If animation have not been enabled for the qt build, we fall back
to using events as before.
Tests were changes since frame progress is no longer driven by
events, so processEvents does not trigger a frame update.
Change-Id: I89b11862ef432dffae0c3dfb140eedd61754697e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
with QNetworkReply::networkError().
Task-number: QTBUG-80369
Change-Id: I6ab7e6b68b1bad33fc4c410894f6ba62d940255d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: If981333f7a3d78028d4f08c59867453d4192b955
Task-number: QTBUG-81058
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
prints to the console, also dump the list of paths in the frame graph
to help understand render views.
Change-Id: Ic4756e09545971b224a239fafc6667b0ca3d4572
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Merely addding
DEFINES -= BUILD_QT3D_MODULE
to an example results in a deprecation warnings flood despite
the example not using any deprecrated API since for example
the flag operators and usages in the headers cause warnings by itself.
Remove the deprecation from smart pointer typedefs (it should
be sufficient to deprecate the pointee class) and disable warnings
for usages of deprecated enumerations.
This change silences the build of the simple-cpp example with
BUILD_QT3D_MODULE removed, more changes might be required to fix
the report.
Task-number: QTBUG-81058
Change-Id: Ie70c14cfef024a25b6b1330fe013ce57c69dc962
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the deprecation introduced by
6e448dd5918c70ddfd0d52f62522fa49c02e8ba8 since it does not compile
with MSVC nor the clang parsers used for qdoc and Qt for Python on
Windows. It should be sufficient to deprecate the pointee class. Note
the error does not show within Qt3D since the define BUILD_QT3D_MODULE
in .qmake.conf causes Q3D_DECL_DEPRECATED to be empty.
Task-number: QTBUG-81058
Change-Id: I844cbdabc8cdd2155e7ae9c6058d93a4dd826434
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add methods to:
- Reveal folder where trace files are saved in the file browser
- Dump the output of commands to the console
Change-Id: Iaad76b4db93dbf60df170aa53212a8f4df1b2283
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: I6cf9007132aa9867fd7046e7e641d849ee141e28
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
Useful for tracking amount of work done
Change-Id: I1d6e0394c35fffc4b33991373e4d16e4651987c7
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Always compile in AspectCommandDebugger and CommandExecuter
- AspectCommandDebugger start when QT3D_COMMAND_SERVER_ENABLED is set
- System information service becomes entry point for commands
from the debugger
- Added commands to enable and disable tracing
Change-Id: Ic0d7fe72fa8a118a43ca348ca4284595a71827a4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removes the jobs who's only purpose was to send a message to the frontend.
Now added a jobsDone() call to render which is called from main thread
when jobs are completed, so it's safe to sync data to frontend.
Added a task trace for the backend to front end synching.
Change-Id: I587462bea353c5d5a0065b542adcacef4dedb05f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: I999dfbb5c139ff8af2b1de9255f76ac132ae2dc0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: I9fe77a56fdc754132cf5da0e3e2361f62dc9a857
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Moved most of the code QSystemInformationService (private class
for now)
- Tracing can be enabled by setting QT3D_TRACE_ENABLED or
calling QSystemInformationService::setTraceEnabled(bool)
- Introduced QTaskLogger class to easy logging (RAII)
Change-Id: I2a3e08e4371fcee3e9ef3cf575725f13f57d1a94
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Deprecates the message classes and the public APIs to send/receive them.
(deprecates the constructors as deprecating classes breaks syncqt)
Change-Id: I4908f15c3c5f1d63969a0f2e11f6ecb22e2e3748
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\|
| |
| |
| | |
Change-Id: I6682d27cc7c4f54158fa6813b1de6edce77bea33
|
| |
| |
| |
| |
| |
| |
| | |
This should ensure we don't have too many idling threads
Change-Id: Ia533fc07140a4944a1149aca1565b0d8ae3cda22
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
Was private in 5.14, should remain so in 5.15
Change-Id: I74231d349e60f498d8ffb4ff39cc1e95fa3f0567
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I8f3fe9475749f10f33c8eb750befa8845ccc37d6
(cherry picked from commit 58db7d01e0d424fdf46baa70e2e41b8009429c78)
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This defines to empty when building Qt3D, and deprecated
attribute otherwise.
Change-Id: Ic36a020a7c43962ac4313efd72a941e5f74f4e99
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
84766ed9098f10efc53e4e43a75eef38fce7fbf6
Change-Id: I12341ec1b7bc68a7586c6671aa7b8f21caed17e0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
d521b994450f0a4febbd789ba66701ba24fdbe22
Change-Id: Ibe6d608e8400e69b50775c0eb156e74e4e90b25c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|