summaryrefslogtreecommitdiffstats
path: root/src/core/jobs
Commit message (Collapse)AuthorAgeFilesLines
* Make QThreadPooler use the global thread poolPaul Lemire2019-12-022-6/+9
| | | | | | | This should ensure we don't have too many idling threads Change-Id: Ia533fc07140a4944a1149aca1565b0d8ae3cda22 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Disable threaded rendering macOS 10.14 and laterMike Krus2019-11-141-0/+1
| | | | | | | | | | | | | | | | Making context current from background thread crashes on Catalina. In this case, we disable threaded rendering. This implies changes in the order in which initialization and rendering happens. We can't just rely on rendering type since Scene3D is not threaded but has it's own initialization logic. Ideally 5.15 should introduce proper API since currently manually setting a QWindow based app to use Synchronous rendering will hang at initialization time. Task-number: QTBUG-80049 Change-Id: Ic346a44d8e0add8232a16129e878423f4cf2f4f1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Update jobs to remove post FF changesMike Krus2019-10-223-1/+10
| | | | | | | Made the d_ptr private again. Change-Id: Ia5ba23b03cd22290d5c922e9a1c657a67ff98977 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix post FF API changesMike Krus2019-10-222-8/+0
| | | | | Change-Id: I347f6df41c0a4f2295831e78248669b4a2d6b5ef Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix Coverity warningsMike Krus2019-10-211-0/+1
| | | | | Change-Id: I00c875b48d838170fddf0b92f0ac5592828c6f0f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add callback on aspect job when all jobs are completev5.14.0-beta1Mike Krus2019-10-013-1/+21
| | | | | | | | This gets called in the main so it's safe for jobs to propagate results from the run at this point. Change-Id: I7d2f31472ec1fcd1801dcb9ded735f9f1e5214f9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix deprecation warnings related to QBasicAtomicIntegerFriedemann Kleint2019-09-192-2/+2
| | | | | | | | | Use loadRelaxed(), storeRelaxed(), fixing warnings like: renderers/opengl/renderer/renderer.cpp:451:22: warning: ‘void QBasicAtomicInteger<T>::store(T) [with T = int]’ is deprecated: Use storeRelaxed [-Wdeprecated-declarations] qt3d/src/render/renderers/opengl/renderer/renderer_p.h:188:61: warning: ‘T QBasicAtomicInteger<T>::load() const [with T = int]’ is deprecated: Use loadRelaxed [-Wdeprecated-declarations] Change-Id: Ica946808969e7f311c98e30d1a61c1b4fa22f66a Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix QThreadPoolerPaul Lemire2019-08-071-2/+8
| | | | | | | Handle Manual Drive mode / Scene3D changes jobs stats Change-Id: Iadd7dd64580ce88145b264df5adcfc8bcb36b66a Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix some deprecation warningsFriedemann Kleint2019-05-281-1/+1
| | | | | | | | | | | | | jobs/qaspectjobmanager.cpp:90:72: warning: 'T* QWeakPointer<T>::data() const [with T = Qt3DCore::QAspectJob]' is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Wdeprecated-declarations] defaults/qtexturematerial.cpp:66:431: warning: 'QVariant qVariantFromValue(const T&) [with T = QGenericMatrix<3, 3, float>]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations] ... testpostmanarbiter.cpp:75:51: warning: 'static QVector<T> QVector<T>::fromStdVector(const std::vector<T>&) [with T = QSharedPointer<Qt3DCore::QSceneChange>]' is deprecated: Use QVector<T>(vector.begin(), vector.end()) instead. [-Wdeprecated-declarations] tst_qray3d.cpp:510:100: warning: 'QVariant qVariantFromValue(const T&) [with T = Qt3DRender::RayCasting::QRay3D]' is deprecated: Use QVariant::fromValue() instead. [-Wdeprecated-declarations] tst_renderviewbuilder.cpp:331:120: warning: 'T* QWeakPointer<T>::data() const [with T = Qt3DCore::QAspectJob]' is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Wdeprecated-declarations] ... Change-Id: I446f3ddeb7aa2c5698d2a976fa163b443e01cc0c Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Switch export macros to standard formKai Koehne2019-04-025-5/+5
| | | | | | | | | | | | Qt expects the export macros to have Q_ prefixes, otherwise the symbol versioning script won't find them and mark them. Also remove non-exising QT3DLOGIC_PRIVATE_EXPORT macro from src/doc/qt3d.qdocconf Task-number: QTBUG-74752 Change-Id: I71b9e85ff09c002fb283824aa51a5a8f50e937f4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix compilation with -qt3d-profile-jobs on AndroidPaul Lemire2018-10-051-0/+5
| | | | | Change-Id: Id6dc461bbc61712f59484898c54a85d07fd8fc22 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Doc: Add missing dots (qt3d)Paul Wicking2018-06-191-1/+1
| | | | | | Task-number: QTBUG-68933 Change-Id: I4226b8b9d70548b6921948c5ea47520f40f5df98 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Fix documentation warnings for Qt 3D CoreTopi Reinio2018-02-162-5/+6
| | | | | | | | | | | | 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>
* Replace Q_DECL_OVERRIDE with overrideKevin Funk2017-09-252-16/+16
| | | | | Change-Id: I92c955068e233c50043ad7d06a32300dd386c24d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Merge branch '5.9' into 5.10Sean Harmer2017-09-129-342/+46
|\ | | | | | | Change-Id: Id6a3d4ec579a2f2a2e559c22a2293d0e184f0bdf
| * Improve dependency look-upChristian Strømme2017-09-069-342/+45
| | | | | | | | | | | | | | | | | | Simplify the dependency look-up by moving the dependers directly into the dependee runnable, each task is then responsible for updating their dependers and queue them up when they are free to be run. Change-Id: I96295d47cecd507a864965e1fb65f2ff9af68111 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge branch '5.9' into devSean Harmer2017-08-191-0/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/render/backend/renderer.cpp src/render/backend/renderview.cpp src/render/graphicshelpers/graphicscontext_p.h src/render/graphicshelpers/graphicshelperes2_p.h src/render/graphicshelpers/graphicshelpergl2_p.h src/render/graphicshelpers/graphicshelpergl3_2_p.h src/render/graphicshelpers/graphicshelpergl3_3_p.h src/render/graphicshelpers/graphicshelpergl4_p.h src/render/graphicshelpers/graphicshelperinterface_p.h src/render/jobs/pickboundingvolumejob.cpp tests/auto/animation/clipanimator/tst_clipanimator.cpp tests/auto/auto.pro tests/manual/manual.pro Also disabled the QQmlMetaType codepaths following commit 49a11e882059ee1729f776722e085dd21d378c36 in qtdeclarative. The QQmlMetaType codepaths will be re-enabled once a qt5.git integration has succeeded. Change-Id: Ia654d75425e6d406c472d19864383612208cad2b
| * Fix compilation on linux with -qt3d-profile-jobsPaul Lemire2017-08-031-0/+1
| | | | | | | | | | Change-Id: Iebecab6fa362bb6bda4ee720cb0259214ced52a4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Properly use QT_CONFIG for Qt3D profiling optionsPaul Lemire2017-08-035-13/+13
| | | | | | | | | | | | Change-Id: Id3bb7bb657f3d48c6c4cd3d5e86c43ad64dca791 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Make ThreadPool thread count configurable with QT3D_MAX_THREAD_COUNTPaul Lemire2017-08-021-0/+7
|/ | | | | Change-Id: I50671d11b2c6ae950abe013ad371c1f1f74516b0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc: add basic doc to undocumented classesNico Vertriest2017-06-091-0/+5
| | | | | Change-Id: Ib67712bd961a3e0b113ddd25feaa819695e792b9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Qt3D: add configure option for jobs and GL profilingPaul Lemire2017-04-051-0/+1
| | | | | Change-Id: Idb1f54d231e469670b24b2b2aecedbfc1cd0f956 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Merge branch '5.8' into 5.9Sean Harmer2017-04-0213-49/+49
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/core/jobs/qthreadpooler.cpp src/core/nodes/qcomponent.cpp src/core/qpostman.cpp src/core/qscene_p.h src/core/services/qservicelocator_p.h src/input/frontend/qinputaspect.cpp src/plugins/sceneparsers/assimp/assimpimporter.cpp src/plugins/sceneparsers/assimp/assimpimporter.h src/plugins/sceneparsers/gltf/gltfimporter.h src/plugins/sceneparsers/gltf/gltfio.cpp src/quick3d/imports/core/qt3dquick3dcoreplugin.cpp src/quick3d/imports/extras/qt3dquick3dextrasplugin.cpp src/quick3d/imports/render/qt3dquick3drenderplugin.cpp src/quick3d/quick3dextras/qt3dquickwindow.cpp Change-Id: I3566708c6f74a34959e7bb64b64e93647ca3f699
| * Fixes includes to comply with coding conventions for Src/CoreRobert Brock2017-03-3113-46/+49
| | | | | | | | | | | | | | | | Reordering the header includes to comply with Qt coding conventions Task-number: QTBUG-56185 Change-Id: I3943678c183c4ef46d403e0fff878c3cad964dfa Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QThreadPooler: improve job traces namePaul Lemire2017-03-281-2/+10
| | | | | | | | | | | | | | | | And save the trace in the Download folder on Android, otherwise it's impossible to retrieve the trace on non rooted devices. Change-Id: Icc6f11429738350df26081003d9bc51233521668 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Initialize member in DependencyHandlerSean Harmer2017-02-141-0/+1
| | | | | | | | | | | | Change-Id: I2f55f5e0ddc35a6e992b13f6729ae34199877a45 Coverity-Id: 154601 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Initialize members in DependencySean Harmer2017-02-121-1/+4
| | | | | | | | | | | | Change-Id: I0b6ee508099bc12d95da5ad7da519a25e5923747 Coverity-Id: 154602 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Initialize member in QThreadPoolerSean Harmer2017-02-121-4/+5
| | | | | | | | | | | | Change-Id: I7c59c48fbdeac30d0f2f3caefb6b71e19550e9f8 Coverity-Id: 154600 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Initialize member in SyncTaskRunnableSean Harmer2017-02-121-5/+6
| | | | | | | | | | | | Covrity-Id: 154599 Change-Id: Iacb9d98c8357a37ad8764875785862ee43506d37 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* | Initialize member in AspectTaskRunnableSean Harmer2017-02-121-2/+3
|/ | | | | | Change-Id: I370f798e7408c2bc47e64cfcc2e55b3e6e9f689b Coverity-Id: 154598 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Doc: Specify #include path for each \classTopi Reinio2016-12-071-0/+1
| | | | | | | | | | | | QDoc tries to guess the correct #include statement, displayed in the requisites table in the class reference. However, this often produces incorrect information for a module as complex as Qt3D. To fix this, manually specify the include path with the \inheaderfile command. Change-Id: I42929b92600d07d759f4f76e9051ff656785c652 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove compile warnings when not defining QT3D_JOBS_RUN_STATSPaul Lemire2016-08-191-1/+4
| | | | | Change-Id: Ibccce418c750eada3a5bcabf7bd74f37b960b35a Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Job Traces: add support for Submission framesPaul Lemire2016-07-174-21/+64
| | | | | | | | | We now have worker frames for jobs and submission frames for render command submissions. Since both can happen concurrently, slightly adjusted what needed to be. Change-Id: I355bb6540090b4f569d38f4989dc9911dc381974 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* JobStats write fixPaul Lemire2016-07-031-0/+1
| | | | | | | | | | The write of the frame needs to be performed before we start the new frame. Otherwise, doing the write just after the submission could clear the cache when jobs (such as texture loading) taking longer than submission are still running. In turn that results in the jobs never making it into the trace file. Change-Id: I7f4883fc33a778edd5d266181c5dbff5a8e568a1 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Move SET_JOB_RUN_STAT_TYPE macro to qaspectjob_p.hPaul Lemire2016-06-281-0/+14
| | | | | | | This will allow each aspect to register their job types Change-Id: I7ab1036f2e05f01f3c4ec8efcc39b5c8ebfaad36 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QThreadPooler: append date to jobs trace filePaul Lemire2016-06-271-2/+2
| | | | | | | | Makes it easier to keep separate trace files as otherwise the trace file was overwritten. Change-Id: Ib980e13f36e7ad32f02d4ea9b79b720096f565b3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Doc for core moduleColin Ogilvie2016-06-031-2/+1
| | | | | | Task-number: QTBUG-46037 Change-Id: I187794f67a61e3e626e7992b0cfe211811823466 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add more explicitMarc Mutz2016-05-141-1/+1
| | | | | | Change-Id: Iaa91d6248cbc3822ed3380e360d2880d4894446d Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QThreadPooler: eradicate remaining Q_FOREACHMarc Mutz2016-05-141-12/+7
| | | | | | | Also expanded the obfuscating typedefs. Change-Id: Idfe7c1e7c04dd4ff896fc7f73967bb8c00ce7b9c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Q_NULLPTR -> nullptrSean Harmer2016-05-013-5/+5
| | | | | | Task-number: QTBUG-52736 Change-Id: I58f9cbcdf018e7b672d33dd865067485412b79fe Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* QThreadPooler: aggregate mutex by valueMarc Mutz2016-04-302-9/+7
| | | | | | | | There's no reason to incur a heap allocation for something as simple as a mutex. Change-Id: I9489b2348c142e028009b757d8f922fea43e168b Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QThreadPooler: QVector::clear() no longer sheds capacityMarc Mutz2016-04-281-2/+0
| | | | | | | | ... (since qtbase/a7885c9756d423042bd0670d82d78d8dffe9be54) so there's no need to restore capacity manually. Change-Id: Ie8004a496860d7ed67977365956d95f9d82f6732 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QThreadPooler: minimize critical sectionMarc Mutz2016-04-281-1/+1
| | | | | | | | | | The localStorageMutex only needs to be held when appending to localStorages here, because the heap allocation is a purely local act and setting the object on QThreadStorage is thead-safe. Change-Id: I01f6f12a22e19ec0d53d5e039779c6917dbbda05 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Added the rest of Qt3DCore doc skeletonsTomi Korpipää2016-04-211-1/+24
| | | | | | | | Change-Id: I6898bdc24821276d44fdf5f42170143b7a0cbfd9 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> Reviewed-by: Pasi Keränen <pasi.keranen@theqtcompany.com> Reviewed-by: Antti Määttä <antti.maatta@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Merge branch '5.6' into 5.7Sean Harmer2016-04-161-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/qt3d/examples-common/qorbitcontrol.h src/core/qnodecreatedchange.cpp src/core/qnodecreatedchange.h src/input/frontend/qaxisactionhandler.h src/input/frontend/qinputaspect.h src/input/frontend/qkeyboardhandler.h src/input/frontend/qmousedevice.h src/input/frontend/qmousehandler.h src/input/frontend/qphysicaldevicecreatedchange.h src/input/input.pro src/logic/qframeaction.h src/plugins/sceneparsers/assimp/assimp.pro src/quick3d/imports/input/importsinput.pro src/quick3d/imports/render/importsrender.pro src/render/backend/trianglesextractor.cpp src/render/framegraph/qclearbuffer.h src/render/framegraph/qlighting.h src/render/framegraph/qstateset.h src/render/frontend/qrenderattachment.h src/render/geometry/qabstractattribute.h src/render/geometry/qabstractbuffer.h src/render/geometry/qattribute.h src/render/geometry/qboundingvolumespecifier.h src/render/geometry/qbuffer.h src/render/materialsystem/qfilterkey.h src/render/materialsystem/qparameter.h src/render/materialsystem/qparametermapping.h src/render/renderstates/qblendstate.h src/render/renderstates/qdepthmask.h src/render/renderstates/qpointsize.cpp src/render/renderstates/qrenderstatecreatedchange.cpp src/render/renderstates/qstencilop.h src/render/renderstates/qstencilopseparate.h src/render/renderstates/qstenciltestseparate.h src/render/texture/qabstracttexture.h src/render/texture/qabstracttextureimage.h src/render/texture/qtextureproviders.h Change-Id: I894d7781042cabdaa0cac690c198b57a41127bd4
| * Export QAbstractAspectJobManagerMarc Mutz2016-03-211-1/+1
| | | | | | | | | | | | | | | | | | It is used in libQt3DRender.so. Fixes UBSan build, which requires access to the typeinfo object, even though only inline methods and data members are accessed. Change-Id: I96a5bf5887c30feb55e044bca02be86c76e124cf Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * Make public headers compile with -Wzero-as-null-pointer-constantMarc Mutz2016-03-011-1/+1
| | | | | | | | | | | | | | | | ... or equivalent. Task-number: QTBUG-45291 Change-Id: I1453477ad718335ca6c5c0c3447539cb93e21176 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Add more job run statsPaul Lemire2016-03-213-5/+1
| | | | | | | | | | | | | | | | - store submission time - store instance of the renderview Change-Id: Ifccb63b9adc93fa16c9e950b4c0300d8b3414b88 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Disable copying where default copy ctors would cause resource leaks.Volker Krause2016-03-121-0/+1
| | | | | | | | | | | | | | Found by clazy. Change-Id: Iec817c3c978c51658a462e8e3da2f74720002b23 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Qt3D job run statsPaul Lemire2016-03-046-6/+156
| | | | | | | | | | | | | | | | | | | | | | Add a way to write to a trace.qt3d file stats about the frame jobs Then use the qt3dprofiler tool to visualize the trace file This is enabled by defining QT3D_JOBS_RUN_STATS at compile time Change-Id: I4d2faaf5189cd91ecc88b7ca0ca3e3e1f2f60498 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>