| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
Change-Id: I4ab815079a5fd794714bc5a7cad05e970afcd731
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Jean-Michaël Celerier <jean-michael.celerier@kdab.com>
(cherry picked from commit 3f98bd6a1929c32ab70531af6d82b83481d36a14)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
m_glContext is left not initialized by the code (which had a
merge resolution marker in the middle), and there's a connect()
statement against it. This makes me think this code should
initialize it, instead of just initializing ctx.
Change-Id: Ia1cbd5630cc6aa7b047457a9c895d94f164f9204
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit df32ce178a23f0b1e3919208dd5d786a2be9b966)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
A placeholder was accidentally repeated, causing warnings
(and wrong debug output).
Change-Id: I2c09a538bf1a4b39e926fa9a8d1e6d991f524e01
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit c1b6293728b062a37a65d9f2bde16e750f0952a1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
Leads to a massive gain on bigscene-cpp (increase of 10 fps,
frame preparation time reduced by 2ms)
Change-Id: Ie2d1f0816fef8c28f316bb9cc8c7daf417c7f8fd
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 735fe47dab436727dc5ab6d66ba7feb7a868f4c3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Only perform render command filtering when needed (when camera has moved usually)
- Keep RenderCommand around so that we only update them if needed:
-> We keep a double set of commands we per RV and switch in between every frame
- Introduce EntityRenderCommandDataView as a wrapper around RenderCommands
-> Use std::vector for RenderCommand storage (avoids hidden detachments)
-> Filter and sort indices into the RenderCommand vector rather than the commands
directly
- Cleanup RenderView
-> Remove InnerData field
-> Hide direct RenderCommand access
- Next steps
-> Only update uniforms that need to be updated
-> Most likely lights/standard uniforms won't all change every frame
-> Only update light sources for entity when needed
Change-Id: I153822a16c0989a8ac5b83d756385056c96572aa
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 59345bc1a733ee035b342feecadc923e062a850c)
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes an issue when resizing a Scene3D that is inside
a QQuickWidget to ensure that it has something rendered in
each frame.
Fixes: QTBUG-83095
Change-Id: Ic6c8b1b2efd0757f9f88768aafb331c4c1a1f9f2
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 2e3607aa120324f60832ca1cd42aaeaf22cc148d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Only lock the cache when needed. It lots of cases job dependencies
ensure we don't have data races
- Use flags to know what needs to be rebuilt instead of booleans.
Makes it easier to transmit that information around.
- Cache filtered renderables and filered light sources.
LayerFilter or Light changes are fairly infrequent, no point in computing
that for every RV for every frame.
Change-Id: I9b768c62825b7e946369f91e7445ebf3f2a888a8
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit f5b4bd3cb32d21cf034f13b999e819701da5d4e1)
|
|
|
|
|
|
| |
Change-Id: I322e97d9d0da185a98ced5e782a801b3474a892a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 897b6cd5de7042edcdaf610f80d97d2b422c73c2)
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
There's an upgrade plan somewhere, because binary JSON won't exist in Qt
5. Someone is taking care of that, surely.
Change-Id: I99ab0f318b1c43b89888fffd160b626e8b871766
Reviewed-by: Simon Hausmann <hausmann@gmail.com>
|
|
|
|
|
|
|
|
|
| |
scene3d/scene3ditem.cpp:151:7: warning: field 'm_renderAspect' will be initialized after field 'm_aspectToDelete' [-Wreorder-ctor]
Change-Id: I99ab0f318b1c43b89888fffd160b5cec60153bc9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit 05b32f0511d0259903001065e056bb7d97470398)
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The parentheses were in the wrong place, so this was effectively
dividing by a boolean. Thankfully, that was true (1), so the result was
also a constant true.
gltexture.cpp:710:41: warning: expression does not compute the number of elements in this array; element type is
'const GLenum' (aka 'const unsigned int'), not 'bool' [-Wsizeof-array-div]
Change-Id: I99ab0f318b1c43b89888fffd160b5cb83031ceb3
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
(cherry picked from commit 34c21bfe83a513a739365b02937ba6ad03b82d4e)
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
uniform_p.h:171:25: warning: loop variable 'm' of type 'const QMatrix4x4' creates a copy from type 'const QMatrix4x4' [-Wrange-loop- construct]
Task-number: QTBUG-83666
Change-Id: I99ab0f318b1c43b89888fffd160b494c6749bd41
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 0653789506f7043d0154bc97b24944766bd44098)
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Use QMultiHash instead.
renderviewbuilder.cpp:442:56: warning: 'unite' is deprecated: Use QMultiHash for hashes storing multiple values with the same key. [-Wdeprecated-declarations]
Change-Id: I99ab0f318b1c43b89888fffd160b5c89f9c3f9d4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 9838d91e2d433f13c57bdae48e31ba0b909988aa)
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
We were only releasing them at runtime if they changed, but we should
also clean them up before we are destroyed.
Change-Id: Ibc3f37fba92e8be8381fd869af7f5747da87038a
Task-number: QTBUG-84204
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit cfd8c4d06bc81028b055e6c3343d0d4b50793219)
|
|\
| |
| |
| | |
Change-Id: I1cf01e05694ba93326f2e549ca16cbf5a273c01a
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This graph failed to generate statements with enabledLayers = {"0"}:
_edge0i__ function0 __edge0o__
/ \
input output
\_edge1i__ function1 __edge1o__/
with function0 and edge0o on layer "0" only
and function1 and edge1o on layer "1" only
and all other nodes and edges on all layers.
The issue was that when only layer "0" is enabled, edge1i didn't get
properly discarded and Kahn's algorithm didn't ever schedule input.
Task-number: QTBUG-83766
Change-Id: Idb8705d487c3748153e0c4b3330b9589e827139e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Those jobs are usually the most expensive to run. It therefore makes
sense we leverage parallelism as much as possible and not discard
threads we could be using.
In that sense, the minimum amount of elements to process per job is reduced
from 100 to 10 which means that we will spawn threads if they can contain
at least 10 element to process (instead of 100 previously).
This now allows to benefit from more parallelism on smaller scenes (that have
less than 100 entities) while still scaling similarly as previously on
larger scenes.
Change-Id: I91e97fc23185d02c2727d87bb7a4ea4991f5ff14
Reviewed-by: Mike Krus <mike.krus@kdab.com>
(cherry picked from commit 37735f11f9437b916b194cfd48c452c7c70682f8)
|
| |
| |
| |
| |
| | |
Change-Id: I2cfed2e2645a0b6ed0a7ba9362873436c7a66980
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This prevents a crash when an event filter was used and the render
aspect was being deleted but the event filters were being accessed still
later on.
Change-Id: I56586061d85f569f0cc9ffd5ec6b83a5455dd207
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |\
| | |
| | |
| | | |
Change-Id: I5f7f6acf2ab3215e3c964a0d49ce7a680228df42
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: I7eabf19598b9f23919ee803c2e784fcf653eb741
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ia94fe9c20ed883e26e5c7ce368d7c3a675873777
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I72d346eec4cc6287dd49e8b3816c83ecadb9a67e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Those jobs are usually the most expensive to run. It therefore makes
sense we leverage parallelism as much as possible and not discard
threads we could be using.
In that sense, the minimum amount of elements to process per job is reduced
from 100 to 10 which means that we will spawn threads if they can contain
at least 10 element to process (instead of 100 previously).
This now allows to benefit from more parallelism on smaller scenes (that have
less than 100 entities) while still scaling similarly as previously on
larger scenes.
Change-Id: I91e97fc23185d02c2727d87bb7a4ea4991f5ff14
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It will otherwise depending on your configuration result in the vulkan
feature being undefined and that will break compilation
Change-Id: I9ab5af09ffd59569253e9909b5a56cf3ed4d9b8a
Reviewed-by: Jean-Michaël Celerier <jean-michael.celerier@kdab.com>
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I764930b7a59a8e016d451964c14733a966a00ca7
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I1dc305b727b148773f1d7dafa3ba8e2b74366aec
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ic69192398efc06e418f9d768a61a55e037041611
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I54ebfa265bad8cd12681bc23ddf6e08696f620e1
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I129e28130037f5640ae7982f2cd846ea7cf22ab1
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I924cec511487f4d91ecd33821d8da593e730742d
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I80cee658da336566088a0b93c2953181424a4f0e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ic9bb79e780006e49d1baa13fd15f52344b81c86b
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Id0e7d343083afcefd93f9d581917e14baa994b7f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |/
|/|
| |
| |
| | |
Change-Id: Iba20f047404b20c1e5b9bdcef917b3c2a1000d59
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: I705843bbb1f6928c2e36b327469882e11fb9613e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp
src/plugins/renderers/opengl/graphicshelpers/submissioncontext_p.h
src/plugins/renderers/opengl/renderer/renderer.cpp
src/render/backend/attachmentpack_p.h
src/render/frontend/qrenderaspect.cpp
src/render/picking/qabstractraycaster.cpp
tests/manual/manual.pro
Change-Id: I617b7e34bf7e11b2921bfc15e1b99c3e81891ec7
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: I141c31bbfbec3fec1e639cc1fe62b85adadbc1b7
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
+ 650d065d3b03825ff97600902c164d447cbb771a Fix potential crash when logic aspect exits
+ 32755ab5cca668c82b43bbe8b2e907e4f7dd7720 Fix stale Entity caches
+ d33c1630b09fcdad83f69bfd2530354584b2f42b Bump version
+ 648b7459e8a6ce8ce1f115a14da63d546b743439 Allow for when a Scene3D item switches screens
+ 547b0b00244f1535eab4456a02b75b46776eae51 Check we remove a valid node when removing from node properties
+ d046e7cc3e362e6cb45afd5ecae464d796c21079 QMetalRoughMaterial: only remove parameters if added
+ 294894610b02a2cd4682fafe139a60b2b96f3289 Destroy FBOs when RenderTarget node is destroyed
+ 42c0dbc377af4d307747a32ca1c1fd267ce4337f Add in a call to applyAspects() that accidently got missed
+ e52382023b85c435e9c1e3a37eeac65178ee54e0 Fix and improve FBO handling
+ 05cb6bb5f354ffd1094da4a45b315f955d7fd16f qgltf: Fix MSVC warning about narrowing conversion
+ ecca6d21fbb4a07dcfe6144cc5a4f20981491bd1 Revert "Add in a call to applyAspects() that accidently got missed"
+ c6fecd32f8dfe4d72a7f059f83d69e61d5ded64d Revert "Allow for when a Scene3D item switches screens"
+ b769deaf57645f533cccb352722ea7b79475a2ea Fix OnDemand rendering crash when using QQuickWidget
+ 597c9df33c2c8a9e91e3ad1de48b1200ebca6586 No need to register input aspect in basicshapes-cpp example
Change-Id: Id6a03d886dabe073361317beb85dfd78ff92ee33
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-83336
Change-Id: I295036a932eba64479b4b1a7e03e676d56cae92f
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This reverts commit e1d1a59eb04f8b17582571275073a6cfa10e9e32.
This change could lead to an explosion in job dependencies, and wasn't
necessary, since only null jobs were cleared each frame.
Change-Id: I2a4963f7edc9d3ad22531978c664fc05943b6483
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As it leads to a runtime assert based on the fact that the sorting
predicate might return true for (a, b) and (b, a)
This disables that part until it is rewritten properly.
Change-Id: I0e90d02583d402599e7a38bf0c5cca6f2460a9a8
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I0446aefe54acd42a01974873d974f57ec48fb49e
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Looks like it actually never worked.
Task-number: QTBUG-75219
Change-Id: I54e7c58be57c41461c95c48ec3e76aa45bf340a1
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a Scene3D item switches screens then it will need to be
reinitalized so that the supporting contexts, offscreen surfaces are
set to use the same screen and not the original one. This ensures that
the item is still rendered correctly on the new screen.
This includes a manual test using QQuickWidget in separate windows that
enables it going from one screen to the other.
This is a fresh version after the previous version was found to have a
bug shown in the scene3d-loader test which has now been resolved.
Change-Id: I3c711e894018db52ec00a8a5d2e0fb0128743ab1
Done-with: Antti Kokko <antti.kokko@qt.io>
Fixes: QTBUG-79192
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Sometimes there seem to be null Geometry pointers that are somehow
related to quickly swapping QGeometry. This can be worked around by
skipping those null pointers.
Change-Id: Id2ffbd0eb08f205a7739825932b6d3f0afeab4af
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|