summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-02-131-4/+4
| | | | | Change-Id: Iffa3da72bc447f9115aac40ef026eabf1094fe1b Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Add some exclusions for CMake Unity (Jumbo) buildsFriedemann Kleint2023-02-105-0/+15
| | | | | | | | | | | QtGui headers referencing QTransform clash with source files using namespace Qt3DCore. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: I17a4571ef4a69e1133b96442c309cd1f5f922a0c Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* quick3drender plugin: Disambiguate meta type id constantsFriedemann Kleint2023-02-102-6/+4
| | | | | | | | | | | Make them function-local to prevent clashes in CMake Unity (Jumbo) builds, Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: I3c42d2b2f45f5aef5f63ced4f68911d6d34a2884 Reviewed-by: Inho Lee <inho.lee@qt.io> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* qspritesheetitem_p.h: Fix include guardFriedemann Kleint2023-02-101-3/+3
| | | | | | | | | | | It clashes with qspritesheetitem_p.h. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: I551f09cd5ee29696711b9e1ea9b3b1a96e84c0c6 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Inho Lee <inho.lee@qt.io> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* 3DCore: Remove using namespace Qt3DCoreFriedemann Kleint2023-02-106-9/+12
| | | | | | | | | | | It causes clashes in CMake Unity (Jumbo) builds (3DCore::QBufferPrivate vs QBufferPrivate). Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: Ibb8a8f37b5da3531daeca1d82aef892d253ece7f Reviewed-by: Inho Lee <inho.lee@qt.io> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix warnings about fields anonymous namespacesFriedemann Kleint2023-02-101-8/+5
| | | | | | | | | | | | | Remove anonymous namespace, fixing warning: qsgareaallocator.cpp:27:8: warning: QSGAreaAllocatorNode has a field QSGAreaAllocatorNode::splitType whose type uses the anonymous namespace [-Wsubobject-linkage] which occur in CMake Unity (Jumbo) builds. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: Ieb575215dad57df299e3ea11cc9f1504f311fada Reviewed-by: Inho Lee <inho.lee@qt.io> Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* QText2DEntity: fix QTextureAtlas parenting that could lead to crashesPaul Lemire2023-02-102-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | We rely on a DistanceFieldFont object to manage QTextureAtlas that hold the glyphs. The DistanceFieldFont/QTextureAtlas are supposed to be parented by the scene root to ensure that a QTextureAtlas lives as long as possible. DistanceFieldFont/QTextureAtlas are stored in a cache global to the scene to minimize the use of resources. When adding text elements, we can reuse atlases since the cache is global to the scene and only destroy an atlas (and remove it from the cache) when we know no more glyphs are referencing it. However we were mistakenly passing a null parenty to DistanceFieldFont instace of the scene root. This resulted on the QTextureAtlas not being parented by the scene root but rather by the first DistanceFieldRenderer to use the atlas. This meants that if the DistanceFieldRenderer were to be destroyed, so would the atlas (yet it would still be referenced by the glyph cache leading to crashes). Pick-to: 6.5 6.4 6.2 5.15 Change-Id: Id84f6a651b162a4bb3c571b11388fd2429b231de Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add distancefieldtext-dynamic manual testPaul Lemire2023-02-106-0/+165
| | | | | | | Used to trigger a crash that occur when destroying QText2DEntity as runtime. Change-Id: Ifeca1e815d4ed0e9e37b13213688819ab97472df Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Force OpenGL for distancefieldtext manual testPaul Lemire2023-02-101-0/+3
| | | | | Change-Id: I2ba77cbf63be34e1f7e605ca0b3591f62edbce84 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* QPaintedTextureImage: fill image with transparency by defaultPaul Lemire2023-02-101-0/+1
| | | | | | | | | Avoids having junk in the texture on the first paint call if not filling a rectangle with a QPainter. Pick-to: 6.5 6.4 5.15 Change-Id: Icb65b6f994a9edea5132a2c54406fa0dd817bcb2 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Remove Qt6 QT_VERSION checks from the code basePaul Lemire2023-02-1081-658/+1
| | | | | | | | | | Those are left overs from the Qt 5.15 to Qt 6 port. Now that both code based have diverged, there's no much point in keeping those checks. Pick-to: 6.5 Change-Id: I4e83876b6b4cb18b181af32e376f4411054a1183 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-02-021-4/+4
| | | | | Change-Id: Ic73694129baeaee35f31514c2d2f3f626c9ef7f7 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-02-011-4/+4
| | | | | Change-Id: I7bcec4ada0bf0e36a14680cd6e290dd9a3e265f4 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* tst_QAspectJob: fix -Wsign-compareMarc Mutz2023-01-261-2/+2
| | | | | | | | | | | | | | | | | | | | | std::vector::size_type is unsigned, while decltype(2) is signed. Found by Clang 15: qtestcase.h:585:34: warning: comparison of integers of different signs: 'const unsigned long' and 'const int' [-Wsign-compare] return compare_helper(t1 == t2, "Compared values are not the same", ~~ ^ ~~ tst_qaspectjob.cpp:36:9: note: in instantiation of function template specialization 'QTest::qCompare<unsigned long, int>' requested here QCOMPARE(job1->dependencies().size(), 2); ^ Make the RHS unsigned, too. Amends b70f7af20550f55e9546ff5a2192f53d6ccb62cb. Pick-to: 6.5 6.4 6.2 Change-Id: Ia7e612de97de86946c42c104081957fbdcc67d7f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-01-201-4/+4
| | | | | Change-Id: I724f8945ee5a343d631a85a7d90491a9dbafcb70 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Retire the qt_parse_all_argumentsAmir Masoud Abdol2023-01-203-3/+3
| | | | | | Task-number: QTBUG-99238 Change-Id: I5287ffb82104feb44fdf58383bf0a4766b066a6c Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* 3DCore: rip away the configure option and static choice of SIMDThiago Macieira2023-01-1929-931/+94
| | | | | | | | | | | | Instead, simply use whatever is available from the compiler. This also does away with the separation between Matrix4x4_SSE and Matrix4x4_AVX2. The two classes store the data the same way and are source-compatible; they just operate differently. This also allows for an AVX2-enabled Qt3DRenderer to link to and run with a non-AVX Qt3DCore. Change-Id: I76216ced393445a4ae2dfffd172a512266b2414d Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Qt3DCore: update AVX2 code to mean x86-64-v3Thiago Macieira2023-01-191-5/+1
| | | | | | | | | | | | | | | | qsimd_p.h doesn't like when you compile with just -mavx2. I guess no one is using these flags except me, and I already set the full arch in CFLAGS. Qt 6.4 calls x86-64-v3 "arch haswell". Will be fixed in 6.5. Drive-by remove the AVX512 bits that weren't in use. Pick-to: 6.4 Change-Id: I76216ced393445a4ae2dfffd172a4f5684351514 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mike Krus <mike.krus@kdab.com> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-01-171-4/+4
| | | | | Change-Id: I941a5ee87373bfe81d587dfeff370fbd56fe1a45 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-01-121-4/+4
| | | | | Change-Id: I5ad664d011a4b66702cc882ade4e1509fcdc7443 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix the input qualifier of the fragment shader for GLSL1.10Inho Lee2023-01-102-1/+10
| | | | | | | | | | | | FS's input qualifier is different with VS's in GLSL1.10. If prototypes has 'headerSnippetsFrag', it will be applied for FS instead of 'headerSnippets'. Fixes: QTBUG-99019 Pick-to: 6.5 6.4 6.2 Change-Id: I588d3f78d4ba895a9a90b20a87b92a6da9ffee18 Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Compare size() to unsigned numeric literalsEdward Welbourne2023-01-101-1/+1
| | | | | | | | | The STL containers used in some types return size_t as their size(), which gets signed/unsigned comparison warnings. Use unsigned literals for the constants to compare against. Change-Id: I91887a1dbd3eb95655c86add2e9f589f0c970def Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-01-091-4/+4
| | | | | Change-Id: Idacd832cfbd544fa196153ad3f04032c79df0c80 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-01-051-4/+4
| | | | | Change-Id: I1decf751c6ea7272c0134509b36da3bac07c7a10 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2023-01-031-4/+4
| | | | | Change-Id: I0b45f308031d6143a088066558f241f08fe19011 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Remove QT_USE_SYNCQT_CPPAlexey Edelev2023-01-021-3/+0
| | | | | | | | Option has not effect anymore. Pick-to: 6.5 Change-Id: Id4c720bf3c64b91bb55d922dba093eb63b4b095c Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* RHI SubmissionContext: remove unused membersAurélien Brooke2022-12-212-16/+4
| | | | | Change-Id: I193e646fbc1b33e112bed58059ec536c46064bc9 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Assimp importer: ensure loop variable has enough widthAurélien Brooke2022-12-211-1/+1
| | | | | | | | | loop variable has narrower type 'ushort' (aka 'unsigned short') than iteration's upper bound 'unsigned int' [bugprone-too-small-loop- variable] Change-Id: Id6ab16316f9eb40e47d8494bf70621792284a7b4 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Remove unused forward declarationsAurélien Brooke2022-12-213-5/+0
| | | | | Change-Id: I008781fa63d253c4f1a7201d911da87f451d797f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* OpenGLVertexArrayObject: fix bugprone erase() callAurélien Brooke2022-12-211-3/+4
| | | | | | | | | openglvertexarrayobject.cpp:117:5: this call will remove at most one item even when multiple items should be removed [bugprone-inaccurate- erase] Change-Id: Ife88facc1cad159658c08180548fe365eaeb1714 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Remove qsizetype to int narrowing conversionsAurélien Brooke2022-12-2137-218/+218
| | | | | | | | Change the variable type from int to qsizetype when receiving qsizetype values. Change-Id: I2adf71e1d2f26b1452fee28890c0f68300f54224 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2022-12-211-4/+4
| | | | | Change-Id: I7901a744aeceba8ea7037f9c018c954f0e58766b Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Skip tst_raycasting on QNXVille Voutilainen2022-12-191-0/+8
| | | | | | | Task-number: QTBUG-107694 Change-Id: I4028dc107427c955342903239d4d80674e7109e4 Pick-to: 6.5 6.4 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Scene3DItem: fix screen flickering when using OnDemandPaul Lemire2022-12-192-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using OnDemand, we detect whether Qt3D actually needs to render or not. Based on that we set a flag on the Scene3DRenderer to tell it whether it should render or not. The subtlety lies in the fact that depending on that flag value, we will still call Qt3D render but not at the same moment. We need to call render to unlock the Qt3D render loop for next frame. Therefore when we should skip a frame, we call render in Scene3DRender::beforeSynchronize (updatePaintNode) and return early while in the other case beforeSynchronize doesn't call render and it gets called later in beforeRenderPassRecording. We know that the render call in the skip frame case won't render anything. To work correctly, we must obviously set the skip frame flag before beforeSynchronize / beforeRenderPassRecording is called which wasn't the case. This therefore resulted in random screen flashing as we would end up having beforeSynchronize rely on the skip frame value for the previous frame. This means we would end up issuing a render call in beforeSynchronize using assuming it wouldn't render anything when it actually did (no FBO would be bound and Qt3D would render straight to the window ...) Also update the number of frames to render before skipping to 3 to match Qt 5.15 and ensure we have something visible for the first time Scene3D is launched. Pick-to: 6.4 6.5 Change-Id: Icc34b62a0af2ff44232b39c694a4702488a890a2 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* RHI: fix the leak of QRhiResourceUpdateBatchAurélien Brooke2022-12-192-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | There are 2 ways to dispose of a QRhiResourceUpdateBatch obtained with QRhi::nextResourceUpdateBatch(): 1) Either give it to beginPass/endPass/beginComputePass/endComputePass so it is sent to the RHI backend and then automatically released; 2) or call QRhiResourceUpdateBatch::release() if the resource update is not used for any pass. The Qt3D RHI renderer was never disposing of the QRhiResourceUpdateBatch, and could end up exhausting all the 64 batches available in the RHI: "Resource update batch pool exhausted (max is 64)", in addition to consuming a lot of RAM if the buffers or textures are large. To fix this, ensure the QRhiResourceUpdateBatch'es we allocate are always released: when requesting a new one, send the previous one to endPass/endComputePass (1), and when destroying the SubmissionContext, release the one we will not use (2). Pick-to: 6.4 6.5 Change-Id: Ic3fb145b11a8e615c83745f560f019e6c4ee37f7 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix incorrect usages of std::make_move_iteratorAurélien Brooke2022-12-196-35/+21
| | | | | | | | | | | | | | In several places, std::make_move_iterator was used to move from a const vector, which is not possible and fell back to copy. Use the existing Qt3DCore::moveAtEnd utility to ensure a move operation is actually happening. * When readability permits, pass directly a return value as second parameter; * Otherwise, std::move from a mutable vector. Change-Id: I56c8925bbdeab95257d0a7fa89cffcda53fd6451 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* .clang-format: remove column limitAurélien Brooke2022-12-191-0/+1
| | | | | | | Qt3D has many long lines. Change-Id: I9bcbbed0b7bb214028877b370f415e6604800563 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Fix scene3d-loader manual testPaul Lemire2022-12-191-1/+1
| | | | | | Pick-to: 6.4 6.5 Change-Id: Ifb42900deb4c9d15cded9d2486fdc8a06fbfe6bf Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add manual tests to check the use of multiple QQuickWidgetsPaul Lemire2022-12-195-0/+233
| | | | | | Pick-to: 6.4 6.5 Change-Id: Ib0a9ccaeb543f91da76e479f23bc59e868fbd2c7 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* quickwidget-switch: make it work in a single screen setupPaul Lemire2022-12-191-1/+2
| | | | | | Pick-to: 6.4 6.5 Change-Id: I5f17169c106a70c38bcc29cc7758b2bb4b9ee793 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix compilation of manual testsPaul Lemire2022-12-192-3/+3
| | | | | | | | | | | | - Disable the examples that use QtMultimedia as they haven't been ported to QtMultimedia from Qt6 - QTextureDataUpdate forward header doesn't seem to be generated - Add QuickWidgets in the find_package call so that we can later check if it is actually available Pick-to: 6.4 6.5 Change-Id: I98d000e839dd0cb0aad862b66bfe8b9725a13744 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* qtexturedataupdate.h: fix namespace declaration for syncqt to workPaul Lemire2022-12-191-2/+1
| | | | | | | | | syncqt doesn't find the class name if the namespace line doesn't end with {. Pick-to: 6.4 6.5 Change-Id: Icf30464ed0ecb9ce84d6c62c04edfc5d374ed26f Reviewed-by: Mike Krus <mike.krus@kdab.com>
* LoadSceneJob: don't risk to leak the loaded subtreeAurélien Brooke2022-12-172-3/+4
| | | | | | | | | | | | | | There is a risk that the front-end QSceneLoader node has been destroyed by the time the LoadSceneJob completes. The postFrame() would then do nothing, and the m_sceneSubtree pointer will be forgotten, leaking the whole tree. This can happen in real life when loading very large scenes. To ensure that we cannot leak the scene tree, use strict pointer ownership with std::unique_ptr. Pick-to: 6.4 6.5 Change-Id: Ie2281bc178fc8793bab967a13ea8d30aa46268a0 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Handle nullptr returned from the shader managerMartin Andersson2022-12-161-0/+3
| | | | | | | | Sometimes the shader manager returns a nullptr when fetching the shader from a handle, so the return value needs to be checked before it is accessed. Pick-to: 6.5 6.4 5.15 Change-Id: Ia021cd8f22ceb2626a7a2734b7e346fbcc8e0301 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Bump version to 6.6.0Jani Heikkinen2022-12-162-2/+2
| | | | | Change-Id: I2a256de2433578a445f6d6f2e64cfabeec572f31 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Update dependencies on 'dev' in qt/qt3dQt Submodule Update Bot2022-12-161-4/+4
| | | | | Change-Id: I068d964d3a498aa568304ef4295dfca01de8686c Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* tst_pickboundingvolumejob: fix signed/unsigned mismatchMarc Mutz2022-12-151-2/+2
| | | | | | | | Amends fd7536a6e4cfaee8e52c9c6411601aed745fe5f6. Pick-to: 6.5 6.4 6.2 Change-Id: Ib2aed78b798ea163125593319f65b123bcc4f895 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* tst_renderviews: fix signed/unsigned mismatchMarc Mutz2022-12-151-4/+4
| | | | | | | | Amends f672753556cf28d44f864457dc6338a55e2e0ed4. Pick-to: 6.5 6.4 6.2 Change-Id: I5c3e99a033cead91a03ab468b4c44b687422baac Reviewed-by: Mike Krus <mike.krus@kdab.com>
* tst_filtercompatibletechniquejob: fix signed/unsigned mismatchMarc Mutz2022-12-151-1/+1
| | | | | | | | Amends 914752257634dede18cc5079f2a506b699744058. Pick-to: 6.5 6.4 6.2 Change-Id: I0320fb3b5e44e10e6ee106bbcb79322323cc3d12 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* RHI renderer: fix crash in Renderer::sendShaderChangesToFrontend()Aurélien Brooke2022-12-151-0/+6
| | | | | | | | | | | | | | | | The Shaders or the QShaderProgramBuilders may not exist in the managers anymore by the time we arrive in Renderer::sendShaderChangesToFrontend(). This happens when Qt3D shuts down. To fix this, check the returned values by the managers. This is similar to the existing patch for the OpenGL renderer: Ia021cd8f22ceb2626a7a2734b7e346fbcc8e0301 Pick-to: 6.4 Change-Id: I322bf2524016c1f98433891ad230b65272fabbdd Reviewed-by: Paul Lemire <paul.lemire@kdab.com>