| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a node is added to the scene it is scheduled for a post-creation
initialization. However, if the node is destroyed before this
post-creation queue has been processed we will crash.
This commit ensures that the node being deleted is removed from the
post-creation queue. Usually the queue will be empty and so this should
not add a performance penalty.
Pick-to: 5.15
Change-Id: Ibe4289e1e54cdb145f8588f15dc4ad894e427582
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Idd052f6c24665a1accd2cd681c80fe74846e5c39
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: Ifffbfd80a3d99b43e348e12bea62e3c90eed80c4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
Previous fix for compile issue forgot to account for the fact that
the data changes after being registered with the class.
Change-Id: Ice5238221f190f758ec3f25d883c56877c185e1c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Ideally should support generic containers but clang seems to fail to
generate the symbol on the mac.
Change-Id: Ic1d6d815ab9aff60a97b3b0047228f55d7efe158
Pick-to: 5.15
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: Ie7272b6d18b0da535b657041bbde81b1e4e6334a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
This will make it more convenient to insert conditional code
based on whether a layer is defined or not.
Change-Id: Ia72b569f022dd2ee723bf2493710eab709042639
Pick-to: 5.15
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-86410
Change-Id: I26427d65de72c86f952b076259979f90eaef87f4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
| |
Adds the ability to disable bounding volume updates from the core
aspect.
Change-Id: I6d8a4c6f8fd880c9fca015cd40eaf7316747a2c6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I33afeae789f774d07de157d59c96c9e878f5c0bc
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Ib625369054f1a185f28f45ac7ed9c4faef34b4f5
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
This reduces duplication and will make it easier in the long run to maintain
both backends since what these jobs are doing are doesn't really on the
rendering backend in use.
Change-Id: I9e51f964880874de52a2fa55c7753a1a5633d023
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I4fbded297c1988b3ace17f6675527a0a00db8973
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
| |
It's only used internally anyway.
Also fix couple warnings.
Change-Id: Ibe44fbcede0676b3822c5003ed447430ae93d2dc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
This cannot be handled with RHI and in practice nobody ever used that
feature.
[ChangeLog] QRenderTargetSelector remove outputs/drawBuffers property
Change-Id: I6b02718733e5c05cee9074b0078ba2a544de95d6
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I568ba2d39179f9b5b35190cf86c316788f903d6c
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of creating a RenderTarget when we create a pipeline, we now
create RenderTargets any time a frontend defines one.
This allows to align with the other type of resources that we create
before pipelines.
Add a dirty flag on QRenderTarget so that backend can easily check if a
frontend RenderTarget has changed.
Also remove the handling of QRenderTargetSelector::outputs which allows
to specify a subset of draw buffers for a given FBO. This cannot be
handled with RHI and in a more general way, removing that altogether
might simplify the API. If you share the attachments, nothing stops
you from creating several FBO to handle that case.
Fix coding style and update the unit tests.
Change-Id: I9f3623e9d7ab9d508db207f2c43cc6c1eedb4f01
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Up until now, we would expect Parameters to be a single value mapping
to one of the UBO's member
This patch adds handling for the following cases:
- A parameter can now reference a UBO Buffer
This allows filling all the members of a UBO block at once
Note: Since we internally create a single UBO for all commands sharing
the same pipeline, we will copy the content of the user provided UBO at
the proper position inside the larger single UBO.
- A parameter can now reference a ShaderData
This allows to fill a struct member of a UBO block
- SSBOs are now handled when creating the ShaderResourceBindinds
We don't do any magic with these, a RHI SSBO maps to a Qt3D Buffer
Change-Id: I68f9e527a0b0137f460cb3a99c469318f2ee5d98
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This ensures that header snippets that depend on one another are forced
to be emitted in the correct order, assuming the nodes also depend on
one another.
This has the side effect of dropping header snippets from nodes which
are not connected to any output node or with any unbound input.
Also removed a few lines of unused code.
Pick-to: 5.15
Change-Id: I5e544470aea1d34467f8165fb49e48d38931e0bc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Introduce new geometry view class for each.
Change-Id: I8e9a8f3a078d4cc63f9656ae8142e39f05d755c7
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
World space and screen space raycasters gain method to do a pick
query synchronously, returning the list of hits.
Change-Id: I41cc3940b8d97c3619456d76127841907a9170cb
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Depending on whether we are using RHI or GL we need to either trigger
the rendering after the beforeRendering or beforeRenderPassRecording
have been fired
-> beforeRendering
The RHI command buffer is set up but nothing has been
recorded yet. This is what we want for the RHI backend
but we will need to make sure we don't call begin/endFrame
nor use swap chains other than the one QtQuick is using.
This means RenderSurfaceSelector won't be possible.
-> beforeRenderPassRecording
The RHI command for buffer uploads have been uploaded but the
actual RenderPass draw calls have yet to be made. The screen
has been cleared already, so this is the best place for the
GL backend which expects the screen to have been cleared.
- The GL backend can use a QOpenGLFrameBufferObject but that is not
possible with the RHI backend.
- The RHI backend uses a custom QRhiRenderTarget that takes care of
blitting its color attachment into a QRhiTexture which is then
bound to a QSGTexture
The overall Scene3DItem/Scene3DRender architecture remains the same:
- processChange
- Render Qt3D content into Texture
- Set texture on a custom QSGNode quad
Change-Id: Id6c317342d0a227d5295cbfefefc3ed12da160d7
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Ib480a8eef157102df8f89a75983cd4d8d46a9388
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
QRegularExpression::match takes a QString and not a QByteArray, so
QRegularExpressionMatch::capturedStart is not reliable to locate bytes
in a QByteArray which might contain Unicode data.
This fixes the issue by explicitly working on QStrings.
Pick-to: 5.15
Change-Id: Ia32ee169718d98e7197d7bfa19ca23e6e243dc25
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
- Allows to create less pipelines
- PipelineUBO: use aligned offsets
- RenderCommand store ShaderResourceBindings (avoids creatings a new one
every frame) and store last used bindings to see if rebuild is required.
Change-Id: I3a44d340a92f5c48f150896b9aa9912527b3b1ea
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
| |
Also start adding tests
Change-Id: Ia9d7fb9beaf8623c47bfafd6f5f0751c6571f82f
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Fix some const correctness.
Use list-initialization.
Task-number: QTBUG-84469
Change-Id: I48e643bd20e21bee031555af598ad95d9873de12
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
|
|
|
| |
All the renderer plugins are doing differently really is the submission
part and the way commands are built which we can hide entirely in the
RenderView/RenderCommands
Change-Id: If4d6a472f1ce1b36ffa5b4ca75e3420e42a165f5
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
Fix some const correctness.
Use list-initialization.
Task-number: QTBUG-84469
Change-Id: I378397aaeb7151b8a083ea62155dc4a38ec302a8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-84469
Change-Id: Ic726ce85e01190dbc64426388fd454c54ae3c3e3
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I4e6e48abdd79b59fe98a916c7f2da6ba92e8ff82
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: If680702aed4544395866a7b376db920561bf16cc
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
| |
It is now template based, header only
Change-Id: I130ad84adce0638329f9d9fd7cfbf1608a7627f4
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
- MaterialParameterGatherer is common to both
- FilterCompatibleTechniqueJob is common to both
- RenderViewJobUtils refactor to only contain code common to both
- UniformBlockValueBuilder moved to dedicated file, shared with both
Change-Id: I634e6d60eb9a213dd6a0d5abd8ac53710bff1417
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I49ab3985ee01e40950bcd981dc77139a28f8db6a
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Iad29450706dacef966e749ff964172a19d54dcfb
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I8be6695e0c52dfbe353cd381d94548aba1c7da82
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: Ied22ef9dea4cd3043f9f3d5ec69d7628e60b7dd1
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I1314bd4d37ad17442ebd6287f571e41bc5d25490
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-85071
Change-Id: I6ac655d42961186f1ec0737d3cdd14bde553b688
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than accumulating events during a frame, they are now directly
delivered to the device handlers synchronously.
This removes the need to use jobs for updating the nodes.
Updating axis and logical devices remains done using jobs at every
frame.
Change-Id: I2853a72cfe68201d8a6eb44d37bc64c9f50efd4f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
- Add shaders that were removed
- Use qrc: prefix on mesh source
Change-Id: I2293a17572f7a5ff323beece0a860b7762265dbc
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: I99a55a52da55b9b8c32e0db8e47932a4eb2820fa
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Events now delivered directly to the input aspect which dispatches
them appropriately. The picking job still accumulates events within
a frame.
However, this opens the door to synchronous picking and event
propagation control later on.
Change-Id: Ic525bdce4e3d30455558fce9e385331364e49026
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I91dd69fc205401b12f333a9a0534d9612c8e24f8
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
| |
Change-Id: I206fc781de5e4f281c9850c7d9f89c2ef3e588a0
Pick-to: 5.15
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
| |
Change-Id: I7f2ea8e4e474daaeff132427ff90089984b2d471
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
Set the QRenderAspect to the manual SubmissionType to avoid the application
rendering atuomatically and eventually deadlocking
Change-Id: Idd38948af5c2ebd792b61c5ce5177138469295a0
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Many got missed by script it seems. Cleaned all those in render to use
the shared cmake config script. Also added benchmark build, in release
only (not tried to run them).
Change-Id: I63bbdddedd50a51ea5ac585419527b461380d9cc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
This is required to remove the ; from the macro with Qt 6.
Task-number: QTBUG-82978
Change-Id: I2e126d0be8efa0aa89c4a91a681b549f38c8cec4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|