| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I705843bbb1f6928c2e36b327469882e11fb9613e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Renderer currently creates a large number of jobs, most of them
doing nothing, this quickly adds up when we have lots of branches.
To keep those down, we adjust the number based as estimate of branches
that have work to do (no draw detection will fail if it's not the
leaf node).
Also make RenderViewCommandBuilder and MaterialParameterGathererJob
only run if necessary (and reset instance counter on each frame).
Finally, only create the right number of MaterialParameterGathererJobs
for the amount of updates required.
Change-Id: I2d38c72589a38445d0110fc22a472fb9482d1a03
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
When reaching a normalized time of 0 they would otherwise continue
to run
Change-Id: Idaea755d3a12f9c9da9c25732c2221e9b3f9f4c7
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Add button in overlay UI to dump:
- the details of technique and render pass filters in the render views
- the details of technique and render pass keys in the scene graph
This is useful to understand why some objects are not rendered.
Change-Id: I57a284081ec986e49e90c979042cc0c17ee0d1cf
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I3ed10747175a58513933b29eac66ddf92fe87d07
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: I98507808b43b116b1950fd60df54704562a234ce
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
| |
Change-Id: Id3ff72a2eaa7f85844a546ef55dc3e1b71a14659
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Avoid extra thread sync just for copying data around
Change-Id: Ib119115bbb3a7a8a2aa99a3e271595caecc371f7
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Should be done in aspect as it's independent of the backend.
Moved some tests to separate test using an empty renderer as
other backends are likely to have different jobs.
Change-Id: I2bec0939045acea7b91ecb1622ba18bf9f5db3c6
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
|
| |
Can be triggered from the overlay API and using sending a "dump jobs"
command to the aspect engine. Gets saved in the current working
directory.
Change-Id: I19fc94a1215187c1d7eb9d1f3b13b968939cc917
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
|
| |
It appears we never destroyed FBOs which lead to bugs
when destroying and recreating a RenderTarget
Change-Id: I507b045d9b9e1088ff49f719c8846cc43c4fc8f2
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Make sure that shaders marked for destruction are un marked from
destruction if recreated before having been destroyed.
- When loading shaders, make sure the shader wasn't already loaded
when loading it. This can happen is a shader is abandoned and then
re adopted.
Change-Id: I04597479d782bc6d31e4c7f78425c02c31217c7e
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|
|
|
|
| |
Change-Id: If450816fadce4adad4881938ecaea9c4000afe16
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\ |
|
| |\
| | |
| | |
| | | |
Change-Id: I76b7e29d240b89e27ef509b30cc3cd622f281fc9
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make sure we mark the internal state as dirty when
Entities get cleaned up. We could otherwise end up
with stale caches referencing Entity's that have
been cleaned up (referencing null bounding volumes ...)
Change-Id: Ia2d2c67f8635e28690f33c0a7d4c9ff1de0eb471
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I5006778b74fee6d030f65deaba86bb38a7a0a86b
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Many are moving to opengl module in qt6, will make merging
easier.
Change-Id: I0ad08510e6999a5d887d9197fe2cb0dc21919fb9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I5314da1df7fbfd1b6db4412e7bc71231525d9de2
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
By default the QRenderAspect will try to load this plugin
Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2
Task-number: QTBUG-61151
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| |
| |
| | |
This makes Scene2D work again. Tests restored as well.
Change-Id: I4082d362c999a674be2debc297d59075f4b7c9e9
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Can be either GLSL (default) or SPIRV at the moment. This variable will be
used by the rendering backend to know what type of shader code was provided
(e.g with Vulkan, the GLSL could be internally converted to SPIRV)
Change-Id: I1f9b734a675c581ef0721edc4464e466a18afbb0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
GLShader is renderer specific shader implementation for OpenGL.
Shader now contains only backend information for a QShaderProgram frontend
node.
- Similar to the GLTexture handling, a generic adopt/abandon manager for
shaders was introduced (regardless of the actually GraphicsAPIShader class).
- The renderer and renderviews were adapted to the new changes.
This was the last major thing preventing the modularisation of the
QRenderAspect and renderers
Change-Id: If671d60928b433977e9d6e5c58199827f9408a3f
Task-number: QTBUG-61151
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
That way NodeManagers only refers to managers holding nodes (so can be used by
aspect and all renderer) and GLResourceManagers refers to renderer specific
resources. Note: the Scene2D resourceaccessor was making direct access to GL
resource through the managers, this has been commented and will be restored
later.
Change-Id: Ic32784f60eac35aab8c066d1769f078639fa25b8
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: I7988ab2c918ecca694df996cc95cd9730d69a6cd
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: I79bfa9f14518427bc1211cc48f6561906b1653ce
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Deprecate functor based APIs for buffer generators, geometry factories,
texture data generators and mesh loaders
While these are useful for some of Qt3D's internal mechanisms, they
complicate some of the backend operations. Will delete some or make them
private in Qt6.
Change-Id: I64eaa338e0306647867d2084819ef8591e2c91c0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: Iaa26160736bc6b92ecf0be767cb289d776cf46ad
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The default behavior is to only update axes when one of the mouse buttons is
pressed. This property, when enabled, allows to record X/Y axes value changes
regardless of the state of the mouse buttons.
[ChangeLog] QMouseDevice add updateAxesContinuously property
Change-Id: Ib54a1e54c6c278ea08722760c2d317ec46437b2f
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Removed some old optional timing code.
- Separated jobsDone into 2 parts since, on single threaded rendering
mode (ie macOS), the render aspect blocks until the next vsync which
confuses tracing
Change-Id: Icb641e3f8079da2cb9af0416b0f7c4dc4dd36c3c
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* origin/5.14:
Fix usage of C++14 features
Use animation rather than event to drive simulation
Fix for incorrect QML property names in GeometryRenderer doc
Add viewAll support for orthographic projection mode
Change-Id: I397bdee907389a6f5cabb8390a805fa9a89ed4ca
|
| |
| |
| |
| |
| | |
Change-Id: Ibd460eceafdd29d7d88ac2418496dc7002de1095
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using events can be problematic as they contribute to flooding
of the event queue leading to issues with running animations.
So we now use an actual animation which runs in a loop and triggers
every 1ms (rendering still vsync locked though).
If animation have not been enabled for the qt build, we fall back
to using events as before.
Tests were changes since frame progress is no longer driven by
events, so processEvents does not trigger a frame update.
Change-Id: I89b11862ef432dffae0c3dfb140eedd61754697e
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: If981333f7a3d78028d4f08c59867453d4192b955
Task-number: QTBUG-81058
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ibe0b38df62700608135788331adfcb7fa28159a7
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We used to perform uniform minization between adjacent render commands all the time.
Since this can yield to a higher CPU usages (but more efficient rendering submission),
we now make this step optional.
[ChangeLog] QSortPolicy add Uniform mode (to control whether uniform minization
should be performed)
Change-Id: I5c0e0dba22400a9884ee1d75426fd76b073fdcb5
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Always compile in AspectCommandDebugger and CommandExecuter
- AspectCommandDebugger start when QT3D_COMMAND_SERVER_ENABLED is set
- System information service becomes entry point for commands
from the debugger
- Added commands to enable and disable tracing
Change-Id: Ic0d7fe72fa8a118a43ca348ca4284595a71827a4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Work was done in postFrame() in main thread anyway, so reduce
amount of jobs slightly
Change-Id: I8bbb3efcaf9246eb8df1033bde133bc16233f889
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\|
| |
| |
| | |
Change-Id: I5a5b1d497430afdd0fe11933832a2477a7efbe30
|
| |\
| | |
| | |
| | | |
Change-Id: Ibf5f508eec94be4bae2df3ce2e1511de696dcd72
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When using OnDemand rendering, Scene3D would lock if nothing in
the scene were to change. By being blocked, it would also not
process jobs for other aspects (input, logics). That would prevent
things like a CameraController from running, which in turn would
make it impossible to move the camera and trigger a change in the
scene to request rendering.
Additionally, Scene3D would ignore whether the Qt3D renderer actually
needed rendering or not as it was watching on its own the changeArbiter
for changes to decide whether rendering was required or not. This would
ignore the case where Qt3D needs multiple frames to render a correct frame
(e.g loading buffers, shaders at frame n, rebuilding commands at frame n+1)
Scene3D now asks the Qt3D renderer by calling the shouldRender() function
to decide whether rendering is needed or not, in addition to watching the
changeArbiter.
Regardless of whether rendering is needed, it now let each aspect process
jobs. This ensures things like FrameAction/Input are processed.
Then, Scene3D decides whether full rendering is required or whether
it only has to be called to allow the Qt3D simulation loop to proceed for the
next frame. If the latter, it does it so as not to have QtQuick trigger a
redraw.
Change-Id: I870f773c224286d6b7ec0f6045319e51e09cbf8e
Task-number: QTBUG-80521
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previous fix was not closing the loop on every primitive,
just the last one.
Task-number: QTBUG-71919
Change-Id: I22d52258477b0c4777118ee36a0b3868da982885
Reviewed-by: Volker Enderlein <volker.enderlein@ifm-chemnitz.de>
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The test is flaky on macOS 10.12 and 10.13. As it usually times out, a
blacklist entry won't help. Blacklisting merely ignores the result, but
doesn't prevent the test watchdog from killing the process.
Task-number: QTBUG-80660
Change-Id: I6aec979e7437700e4e6596241f135622d99fd3be
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-71919
Change-Id: If7923fab6c43f5d7139d1bbdceb73c17bf489099
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Removes the jobs who's only purpose was to send a message to the frontend.
Now added a jobsDone() call to render which is called from main thread
when jobs are completed, so it's safe to sync data to frontend.
Added a task trace for the backend to front end synching.
Change-Id: I587462bea353c5d5a0065b542adcacef4dedb05f
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I999dfbb5c139ff8af2b1de9255f76ac132ae2dc0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Moved most of the code QSystemInformationService (private class
for now)
- Tracing can be enabled by setting QT3D_TRACE_ENABLED or
calling QSystemInformationService::setTraceEnabled(bool)
- Introduced QTaskLogger class to easy logging (RAII)
Change-Id: I2a3e08e4371fcee3e9ef3cf575725f13f57d1a94
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Deprecates the message classes and the public APIs to send/receive them.
(deprecates the constructors as deprecating classes breaks syncqt)
Change-Id: I4908f15c3c5f1d63969a0f2e11f6ecb22e2e3748
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: I6682d27cc7c4f54158fa6813b1de6edce77bea33
|
| |/
| |
| |
| |
| |
| |
| |
| | |
Avoids having to check for each uniform (for each frame, each geometry)
whether it is a standard uniform or a user defined one.
Change-Id: I76cff7869aacc1343a9acf991f8035b8118581ed
Reviewed-by: Mike Krus <mike.krus@kdab.com>
|