| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That's too clever, and it backfires with compilation errors in C++20
mode:
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:129:29: error: ambiguous overload for ‘operator==’ (operand types are ‘MeshFunctorA’ and ‘MeshFunctorB’)
129 | QVERIFY(!(*functorA == *functorB));
| ~~~~~~~~~ ^~ ~~~~~~~~~
| | |
| MeshFunctorA MeshFunctorB
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:72:10: note: candidate: ‘virtual bool MeshFunctorB::operator==(const Qt3DCore::QGeometryFactory&) const’ (reversed)
72 | bool operator ==(const Qt3DCore::QGeometryFactory &other) const override
| ^~~~~~~~
qt3d/tests/auto/render/meshfunctors/tst_meshfunctors.cpp:50:10: note: candidate: ‘virtual bool MeshFunctorA::operator==(const Qt3DCore::QGeometryFactory&) const’
50 | bool operator ==(const Qt3DCore::QGeometryFactory &other) const override
| ^~~~~~~~
Fix by providing a symmetric operator== for QGeometryFactory that
delegates to a virtual equals() method.
Pick-to: 6.2 5.15
Change-Id: I23d29ad1b16075629132f2b4757c5810d5615a36
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I78c11accf69eb4ce8774885bce5303ef3c934926
Pick-to: 6.2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using Manual run mode on a QComputeCommand, we rely on the enabled
property changing to enable/disable the backend ComputeCommand for a given
set of frames.
Since we weren't setting any dirty flag when the enabled property changed,
Qt 3D was not rebuilding the list of active compute commands but rather
using the one stored in its cache. This resulted in the ComputeCommand, now
disabled, to still be called for execution until something else triggered
a command rebuild.
The renderer calls ComputeDirty after it has executed a compute call.
This explains why eventually we only had 2 calls (and not a perpetual loop)
when calling trigger(1). One was the valid call, followed by the invalid one
(and then the command list got rebuilt because of the ComputeDirty flag set by
the renderer).
Task-number: QTBUG-86493
Change-Id: I7b31606a03609dc13294256b1dac89ee86730ba1
Pick-to: 6.2 5.15
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Needed for subsequent change that will check and error out if the
version is lower than 3.16. We do that to ensure all policies
introduced by CMake up to version 3.16 have their behavior set to
NEW.
Pick-to: 6.2
Task-number: QTBUG-95018
Change-Id: I29beb4b263c915d3ff5312a3b1ceb45e8fdc34e0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When Qt's CI configures standalone tests with
qt-internal-configure-tests the value of QT_FEATURE_qt3d_extra
is not available before actually calling qt_build_tests.
Move the check into each test subdirectory.
Although it's likely the check was too coarse-grained in the first
place and should be changed into something more specific that doesn't
exclude tests that shouldn't be excluded.
Pick-to: 6.2
Change-Id: Ic267b3a9c7f078c60699b709591a3d0ae8bb3018
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Replace outdated LGPL3 with LGPL header in src, and
GPL3-EXCEPT in tests.
Task-number: QTBUG-90321
Pick-to: 6.2
Change-Id: I3f6491cb402a993a4341a983c780337e8658c256
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This fixes picking for cases where multiple LayerFilters using different
filter modes are present in the FrameGraph. This also reduces code
duplication.
Pick-to: 6.2 6.1 5.15
Change-Id: I19d0c2c5777930820ab950cbf2bfe08ef7d2484f
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.2 6.1
Change-Id: I1e4ecb5064a0118e295df9d2a256eb60b569ea5e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I06bbd8e9a521e5572182275198c1a1bb91e1626d
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.2 6.1
Change-Id: Ia7e3b84667d78f45195702fc131f0d3d88d1c7e7
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The rule selection still has to be made from last added rule to first
so that format.support works correctly.
- Update QShaderNode unit tests
Pick-to: 6.2 6.1 5.15
Change-Id: I47af898ee0d82e91009efccf1dca9937feaca717
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I067f5861767a7d2cdf078d9a1c04e8721e5f7008
Pick-to: 6.2 6.1
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.2 6.1
Change-Id: Ifa53378c930b071231dab3d293e8bb1ed4c71b46
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, bounding computation results from the core aspect were
propagated to the render aspect via the front end objects.
This introduces a job watcher which gets called with the results
and the render aspect can update it's backend data directly.
The watcher process method is called in the thread of the core
aspect job but the render aspect job will wait for that complete
anyway (since it depends on the core aspect job).
Pick-to: 6.1 6.2
Change-Id: Ie59337f00025fd55fc723a7d105342e0b1e91d6c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
In b9994cd88925ca012d66e52d033cc9a3a909fc7a, we removed the tool and the parser.
This restores the parser, but the tool was unmaintained.
Pick-to: 6.1 6.2
Change-Id: I168e720b7fdf65aafebb9652933d8093f5449bdc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.1 6.2
Change-Id: I4b8e1b3c5e2a8b942441a0889087330a7e1edff1
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using Scene3DView, qt3d still has a single scene graph and and a
single framegraph. It automatically creates layers and layer filters
to make sure the right objects are only rendered in the right view.
This affects picking though as it was not aware of layer filters.
This patch collects the filtered layers for each view and makes sure
only entities matching those layers are tested for picking (this uses
code that existed for ray casting).
This changes the behavior of Qt3D though as non rendered objects (ie,
excluded by layer filtering) are no longer pickable. Only way now would
be to provide a shader that just discarded everything.
Note: Scene3DView is not available in Qt6 so on this branch this only
really affects custom scenes with multiple views each showing different
content.
[ChangeLog] Non rendered entities (due to layer filtering) are no
longer pickable
Pick-to: 6.1 6.2 5.15
Ticket-number: QTBUG-94214
Change-Id: I8515368e43342b33ac219dff533e92efa72fbe7d
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-86726
Change-Id: I2a7748b67b55008962809ece1a34c6cf2a0617bb
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The benchmark, manual folders is already added to the build in
Qt6BuildInternalsConfig (depending on whether QT_BUILD_BENCHMARKS
, QT_BUILD_MANUAL_TESTS are true). Adding it manually again leads to
errors like
The binary directory
C:/dev/qt/6.1/msvc-2019-amd64-toplevel/qt3d/tests/benchmarks
is already used to build a source directory. It cannot be used to build
source directory
C:/dev/qt/6.1/src/qt3d/tests/benchmarks
Specify a unique binary directory name.
This reverts part of 8448855b8050e56
Fixes: QTBUG-93240
Change-Id: Idc5b2fea6996cd8367f0963e993dd788dd3fb239
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
(cherry picked from commit fd067783366eccedd57d0075677ca58a7e8c5294)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When Qt is built to enable Vulkan support, it is given the path to
the Vulkan header source. This then enables the vulkan feature.
Qt3D used this feature to decide if it could use Vulkan directly or
not, however, since it is now built separately, it has no idea where
to find the headers, so QVulkanInstance is not properly defined.
This caused an issue when using official installers of Qt since
those are configured to support Vulkan.
So we now do a separate config check to find Vulkan for Qt3D.
When building Qt3D, you need to make sure if can find Vulkan (the same
way you configure Qt itself)
Pick-to: 6.1
Task-number: QTBUG-90243
Change-Id: Ia05381597b4974d7b0914706ea2f607341dccacc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When adding a QObjectPicker component to a QEntity, the object couldn't
actually be picked until one of hoverEnabled, dragEnabled or priority
changed.
This fixes the issue by ensuring notifyJob is called at least once,
when the picker is initialized.
Pick-to: 6.1
Change-Id: I5b035cf5be6ef1da35c2d24cf76bc2daaad9bc57
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: Id9574cf23b9af29815d8452915cebfc380fd94d1
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
| |
Haven't tried to run anything, it just builds
Change-Id: I6c2c2a949bc3892a363697cf38f1608af87c303c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Updates to support building with Qt6 and Qt5.15
Change-Id: I9f06d810c943a348e6a060f4ea35ed870f21694a
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Built with QtQuick disabled.
- C++17 required
- minor issues with QList vs QVector
- QMutexLocker templated vs not
- moc forward declaration handling
Change-Id: I5540625e74e2c009e528f56203e4b88be8d54599
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
Facilitates building against Qt 5.15.
Will migrate to std::vector over time.
Change-Id: I5db14c9ea95b38e4b2d596d7397fef76f6baf118
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
This test needs to be updated to match the fix for change
I3fefbe93b58c8bc695a15022204806abcc5ff127
Change-Id: I2a3975508d89b76be53c851f937f40139d676d0c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To bind to a specific face: use glFramebufferTextureLayer and calculate
the layer as 6 * layer + face.
To bind to a specific cubemap: There is no way in OpenGL to directly
bind to an entire cubemap within the array. Instead bind to the entire
texture as for a CubeMap with AllFaces. It is up to the drawing code
to select the right cubemap and face, 6 * layer + face
Change-Id: Ib9e1a598503eeba1fa729677944aba6d799f90b2
Pick-to: 5.15 6.0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tests were a broken too because the QT3D_DISABLE_SHADER_CACHE
environment var was still set from the previous test. These tests
passed before because the shader builder used the cache if either the
QT3D_DISABLE_SHADER_CACHE or QT3D_REBUILD_SHADER_CACHE are not set.
Change-Id: Ic04bf3bb8bb7b9b27e3dc9663fe5e96647a3bed4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit fd5c3299553818e99421f54c1b819681335de9aa)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
| |
Pick-to: 6.0
Change-Id: Ib87186571dbf911004d8292e0c0cd9ddaea92318
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Also remove duplication and make QAspectJobManager::idealThreadCount
the centralized function to retrieve expect maximum number of threads.
Pick-to: 6.0 6.0.0
Change-Id: Iec8d65d368ac7825ef87e883a987551726603adc
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Also fix manual test to import Qt3D.Core 2.9 since QBuffer was moved to
core in Qt 6 and accessType property was introduce with revision 9.
Pick-to: 6.0
Change-Id: I449f413fd161fe4660cef61708cd641e429c1c81
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
| |
Support building against both 5.15 and 6
Change-Id: I46e15f2f898f5f2304075e290798d3d2aea47dad
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's better to rely on RHI instead of a hard coded matrix.
Also modify the UBO to provide the clipSpaceCorrectionMatrix and the
uncorrected projectionMatrix.
All the other matrices we compute and provide use the corrected projectionMatrix
but these two new matrices give users the libertity of bypassing the
correction if they need to.
Pick-to: 6.0 6.0.0
Change-Id: I52e409cc9b38ea0e939d19d92e2ddd907aa7d1cb
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
This is supposed to be exposed for Qt6
Pick-to: 6.0
Pick-to: 6.0.0
Change-Id: I3fefcd706ca16328946f33d665055dfe2a4c3563
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-88790
Change-Id: I886592001ed2d8aad8ab6df542ea788b44d2ff71
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit e4cd93bcad4953e95f5bc6f3d35502a604f2ec97)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-88757
Change-Id: I5097faecd2e895d4685a4cc57a4e2a5c079f2255
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit d826238b65b0ebd8034900224b382bd85e6add27)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Lets user override the sorting order of entities.
[ChangeLog] Add sortIndex property to QGeometryRenderer to
explicitly control the order in which entities are rendered
Pick-to: 5.15
Change-Id: Iab7fd0d705f7ddcb424a59f86f8c2c28059813d1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
- QVariant::Type deprecated, use QMetaType related APIs
- QNodeId not used as reference in for loops (nop but really noisy)
- some unused code
Change-Id: I291219207fcd1ad0bf89533b4e2bb5fa47a353bb
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Also update dependencies and fix non-gui builds.
Disabled (for now) gltf unit test since JSON parser seems to crash.
Change-Id: Ie7fdd9626653e89ad43e8bdb22b0e764618b1e9e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
The GLTexture class wasn't registered for cleanup on the manager.
This could result in it being reuse while not being reinitialized resulting
in incorrect rendering.
Change-Id: I85e6a5c3b5ca9d3cfa5ac5bcb1db3695dabfa576
Pick-to: 5.15
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
| |
Return nullptr rather than crashing.
Pick-to: 5.15
Change-Id: Ie11fe798e0bcd3bfdfda053331eabf9ed16e3d94
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
| |
Windows doesn't like colons in a path.
Change-Id: Ia5e8da4e45bf8e99600eb8ab0bcd610fa5e2ad64
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is a 2 level cache system: runtime and offline
First we now generate a hash key based on unique features of a graph,
the api it targets, the last time the graph file was modified.
We then use that hash key to at runtime check whether we have already
loaded a graph matching the same hash key.
If that's not the case, we switch to using the offline cache and checking
whether a file already exists for that shader or not. If the file exists,
we load it, use the code it contains and add it to the runtime cache.
If the file does not exist, we revert to actually generating the shader
and we save the generated code to both the offline cache and the runtime cache.
By default, the offline cache with try to write into the location reported by
QStandardLocation::writableLocation(QStandardLocation::TempLocation).
Optionally, the environment variable QT3D_WRITABLE_CACHE_PATH can be set with
a path to a writable location.
If QT3D_REBUILD_SHADER_CACHE is not empty, cache will be regenerated.
Alternatively if QT3D_DISABLE_SHADER_CACHE is set, cache will be ignored.
Pick-to: 5.15
Change-Id: Ia348f92ce4cdd5e63ec89e58b7954d1f127f26bb
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Ic12bc80a00e887a959c6cb27e72be0422d71b254
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Change-Id: If6ca151b22f442985df1ff34108ca0bd216ebf47
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit 6fdf835639e56c68ae01da894c7d2b9f552dd87d)
|
|
|
|
|
|
|
|
| |
Also make use of the newly documented pattern in the manual test.
Pick-to: 5.15
Change-Id: Idefe271eea345848af3817e08ac5b45946843dad
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-87217
Change-Id: I2c6f2e0af475d03baa74799a61d70c603fd2ce85
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-86815
Change-Id: I7a8755571c8977be1f16b2287e5a8055e9016ee5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
|
| |
Register and document QDebugOverlay.
Change-Id: I357918ce3448c451d796f88656ec287bf03ffcfd
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|