summaryrefslogtreecommitdiffstats
path: root/src/render/framegraph/framegraphvisitor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix deprecated API usage and compile warningsMike Krus2020-11-201-1/+1
| | | | | | | | | - 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>
* Use QList instead of QVector in renderJarek Kobus2020-07-091-1/+1
| | | | | | | | | Use list-initialization. Task-number: QTBUG-84469 Change-Id: I826450646fc3c7118cae49c22a28058f47770e13 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Renderer: move QVector to std::vector changesPaul Lemire2020-07-011-3/+3
| | | | | Change-Id: I99a55a52da55b9b8c32e0db8e47932a4eb2820fa Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Make the OpenGL renderer a pluginPaul Lemire2020-02-051-1/+1
| | | | | | | | 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>
* Support transient enablement in QSubtreeEnablerMichael Brasser2019-09-241-2/+17
| | | | | Change-Id: I422cf0fb0991319b0f54e5a26b9b3694cb093454 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Add SubtreeEnabler frame graph nodeMichael Brasser2019-08-141-4/+2
| | | | | | | | | | | SubtreeEnabler allows easy enabling and disabling of frame graph subtrees. [ChangeLog] Added SubtreeEnabler to allow easing enabling and disabling of frame graph subtrees. Change-Id: Ibd4dd305c41b2985225311a0cc49675e60a3727f Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Render: make FrameGraphVisitor return a vector of FG nodesPaul Lemire2017-04-271-18/+8
| | | | | | | | Adjust the Renderer to be the one creating the RenderViewBuilder jobs. This removes a bit of coupling that will be needed to later only execute some jobs on demand. Change-Id: Ia5f1c6e6d40ee39595c661e177a08054ebc92a18 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* FrameGraphVisitor: use RenderViewBuilderPaul Lemire2016-11-251-285/+3
| | | | | Change-Id: Iff44ed6c22af1cd2b1f9cc3e4aabf3ebeb149f4d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* FrameGraphVisitor: removed useless checkPaul Lemire2016-11-231-3/+1
| | | | | | Change-Id: Ie50a820718a5eba1be0743bc0b428256e4a39b54 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Renderer: use the UpdateMeshTriangleList jobPaul Lemire2016-10-131-0/+1
| | | | | Change-Id: Ic8d7831a63a77f3d8b03f28819095cb6071953b1 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* SyncRenderViewCommandBuildingJob improvementsPaul Lemire2016-10-101-10/+22
| | | | | | | | Modified the filtering algorithm to become linear. On bigscene-cpp this steps used to take 2.2ms, now about 0.5ms Change-Id: Id567c7a9f71494c2b9901ae1bff49871c8bb38ea Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* FrameGraphVisitor: add types to lambda jobs for toolingPaul Lemire2016-10-071-5/+5
| | | | | Change-Id: I8c3d27ace141db480d54b35ff60210de38ce682f Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* LayerFiltering: move enabled filtering into job directlyPaul Lemire2016-07-181-15/+3
| | | | | Change-Id: I243cf9ff05086dc097545b62b02a4bd4deab1ef3 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* ClearsBuffers: make the RenderViews store clearbuffers valuesPaul Lemire2016-07-041-0/+13
| | | | | | | | | | This then allows to only do value lookup at submission time rather than accessing the backend node. This will be a great help when submission and frame processing are later on parallelized. Change-Id: I0d34251d67f8329f486626642d7d2eccef9ddf18 Task-number: QTBUG-54423 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* LayerFiltering: only filter using enabled layersPaul Lemire2016-07-041-1/+15
| | | | | Change-Id: Ia0831387e01527c15ebef6c734367f42debbd5df Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Further job improvementsPaul Lemire2016-07-041-4/+21
| | | | | | | | | | | | | | The RenderViewInitialization job used to have to wait for the world transform job to be completed because it was used to set the viewProjectionMatrix. This patch adjust dependencies and adds a new job that sets the viewProjectionMatrix once the transform update job is complete. This allows to start most of the processing earlier and better use the available cpu cores. Change-Id: I77d751e0b20639934cc00be0cd9888f41f684f89 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Use UpdateWorldTransformJobPaul Lemire2016-07-041-2/+3
| | | | | | | | | | | | - remove now unneedded code from UpdateWorldTransformJob - add UpdateWorldTransformJob instance in the renderer - Adjust dependencies in the FrameGraph/Command building jobs - Most of the processing can now start earlier Rough gain is 1.5ms on the CarDemo and 3ms on bigscene Change-Id: Ibc7de563f6477c5f8519357ee050b1044e18ed15 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename UpdateBoundingVolumeJob -> ExpandBoundingVolumeJobPaul Lemire2016-07-041-1/+1
| | | | | | | | | As this is what it really does. The update bounding part is actually done by the UpdateWorldTransformJob at the moment. This will be split and should allow much better parallelizing of the tasks. Change-Id: Iac31cc3a1029a50fae777f3edd3dc1667eb60b8e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* FrameGraphVisitor: try to build at most optimal threads parallel jobsPaul Lemire2016-07-031-18/+28
| | | | | | | | There's no point in creating 32 jobs when you only have 4 threads available (assuming these jobs are run at the same point). Change-Id: I3454d9ceb27962076317f76ce1a5e88bbbf00aad Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Move jobs into RendererPaul Lemire2016-07-031-0/+2
| | | | | | | | Will make it easier to set dependencies between all the jobs in a RenderView since they have been split up in several. Change-Id: I88db66998eb359768e251596828057c40deba88f Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Renderer: remove createRenderViewJob functionPaul Lemire2016-07-031-2/+7
| | | | | Change-Id: I27736ec32d27054dd21062df42ca625952b9684d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Split RenderCommand building into more jobsPaul Lemire2016-07-031-8/+65
| | | | | | | Leads a 200% gain on bigscene with 12 threads. Change-Id: If6ba7b875fb7a8fa2b81e89fb8ad8d08a11ee683 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Use the LightGathering jobPaul Lemire2016-07-031-2/+10
| | | | | Change-Id: I2f7b15a656268ea4dd6895613033dc62d42b1f0a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Use more instances of MaterialParameter when necessaryPaul Lemire2016-07-031-9/+30
| | | | | Change-Id: I08f98b77d9a0e7f74a1093748e7b32e27e1f88c5 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Split RenderViewJobsPaul Lemire2016-07-031-2/+140
| | | | | Change-Id: I6c4f8970b14e39085480c029b8acdfcdbfc6fa8d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Renderer: createRenderViewJob returning RenderViewInitializerJobPaul Lemire2016-07-031-1/+1
| | | | | Change-Id: Ieae0fd081d317a76bfa42348657040c010891dcf Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QFrameGraphVisitor: avoid allocations of FrameGraphNode->children()Paul Lemire2016-06-271-8/+11
| | | | | Change-Id: I221b30a5790ffd2d45ad8a145ceac7873a4735da Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Q_NULLPTR -> nullptrSean Harmer2016-05-011-3/+3
| | | | | | Task-number: QTBUG-52736 Change-Id: I58f9cbcdf018e7b672d33dd865067485412b79fe Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* render/framegraph: eradicate Q_FOREACH loops [low-risk]Marc Mutz2016-03-041-1/+2
| | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. To avoid detaches of these mutable Qt containers, wrap the container in qAsConst(), where needed. This is the batch with low-risk changes. They operate on local containers or the loop body clearly does not cause the container to change. Saves 900B in text size on optimized GCC 5.3 Linux AMD64 builds. Change-Id: I186b2aaf0662bbbc802d103794df608bb7b940a4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Unify license header usageAntti Kokko2016-01-261-11/+14
| | | | | | | Update old header.LGPL3 to header.LGPL Change-Id: I8eac0cd6bbc276a56df487249cc459c0d4fab165 Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* Port FrameGraphManager away from QResourceManagerTobias Koenig2016-01-201-1/+1
| | | | | Change-Id: I7399008adb0f612c78738f58f168fa38cf6ae845 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Rename Renderer -> Render throughoutSean Harmer2015-10-191-1/+1
| | | | | | | | This is for consistency between the C++ namespaces and QML imports and with the other aspects. Change-Id: I73392f138b4e519b12888f52530123e3d0ba445e Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move Qt3DCore into Qt3DCore namespaceSean Harmer2015-10-131-2/+2
| | | | | | | Update other aspects, tests and examples accordingly. Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Final batch of file moves for nowSean Harmer2015-10-131-0/+99
Change-Id: I0c9e83e3142e6b083feb2cbcabcc4279de64b95b Reviewed-by: Paul Lemire <paul.lemire@kdab.com>