| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Change-Id: Iffa3da72bc447f9115aac40ef026eabf1094fe1b
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Used to trigger a crash that occur when destroying QText2DEntity as runtime.
Change-Id: Ifeca1e815d4ed0e9e37b13213688819ab97472df
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I2ba77cbf63be34e1f7e605ca0b3591f62edbce84
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ic73694129baeaee35f31514c2d2f3f626c9ef7f7
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I7bcec4ada0bf0e36a14680cd6e290dd9a3e265f4
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I724f8945ee5a343d631a85a7d90491a9dbafcb70
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
| |
Task-number: QTBUG-99238
Change-Id: I5287ffb82104feb44fdf58383bf0a4766b066a6c
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I941a5ee87373bfe81d587dfeff370fbd56fe1a45
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I5ad664d011a4b66702cc882ade4e1509fcdc7443
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Idacd832cfbd544fa196153ad3f04032c79df0c80
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I1decf751c6ea7272c0134509b36da3bac07c7a10
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
| |
Change-Id: I0b45f308031d6143a088066558f241f08fe19011
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Option has not effect anymore.
Pick-to: 6.5
Change-Id: Id4c720bf3c64b91bb55d922dba093eb63b4b095c
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
|
|
|
|
|
| |
Change-Id: I193e646fbc1b33e112bed58059ec536c46064bc9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I008781fa63d253c4f1a7201d911da87f451d797f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Change the variable type from int to qsizetype when receiving qsizetype
values.
Change-Id: I2adf71e1d2f26b1452fee28890c0f68300f54224
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I7901a744aeceba8ea7037f9c018c954f0e58766b
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-107694
Change-Id: I4028dc107427c955342903239d4d80674e7109e4
Pick-to: 6.5 6.4
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Qt3D has many long lines.
Change-Id: I9bcbbed0b7bb214028877b370f415e6604800563
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.4 6.5
Change-Id: Ifb42900deb4c9d15cded9d2486fdc8a06fbfe6bf
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.4 6.5
Change-Id: Ib0a9ccaeb543f91da76e479f23bc59e868fbd2c7
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Pick-to: 6.4 6.5
Change-Id: I5f17169c106a70c38bcc29cc7758b2bb4b9ee793
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I2a256de2433578a445f6d6f2e64cfabeec572f31
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
|
| |
Change-Id: I068d964d3a498aa568304ef4295dfca01de8686c
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Amends fd7536a6e4cfaee8e52c9c6411601aed745fe5f6.
Pick-to: 6.5 6.4 6.2
Change-Id: Ib2aed78b798ea163125593319f65b123bcc4f895
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
| |
Amends f672753556cf28d44f864457dc6338a55e2e0ed4.
Pick-to: 6.5 6.4 6.2
Change-Id: I5c3e99a033cead91a03ab468b4c44b687422baac
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
| |
Amends 914752257634dede18cc5079f2a506b699744058.
Pick-to: 6.5 6.4 6.2
Change-Id: I0320fb3b5e44e10e6ee106bbcb79322323cc3d12
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|