summaryrefslogtreecommitdiffstats
path: root/src/render/renderers/opengl/jobs/renderviewcommandupdaterjob.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Make the OpenGL renderer a pluginPaul Lemire2019-12-191-82/+0
| | | | | | | By default the QRenderAspect will try to load this plugin Change-Id: Ie55e207fb8e6d0b64f717bbb99699eb669eaa3f2 Task-number: QTBUG-61151
* Merge branch '5.14' into 5.15Paul Lemire2019-12-181-2/+2
|\ | | | | | | Change-Id: Iee3ca407250b942208f3beaf21d0e58a632f1095
| * RenderViewBuilder: fix leak with EntityRenderCommandDataPaul Lemire2019-12-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | EntityRenderCommandData would only be released in a separate job than the one it was allocated in. However this would only happen if there was at least a single renderable objects after filtering. In case there was no renderable following filtering, the EntityRenderCommandData was leaked. To fix the issue and make it less error prone, we now switch to using shared pointers to avoid having to handle all possible leak cases with raw pointers. Change-Id: I842d50d2b35ebba8303f6d6c4e72a2427ce31da3 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* | Make tracing a runtime optionMike Krus2019-12-131-1/+1
|/ | | | | | | | | | | - 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>
* Adequately split work among RenderViewCommandBuilderPaul Lemire2019-12-031-0/+3
| | | | | | | | | Try to give at least 100 entities per worker. Ideally we'd find a way to only add the required number of jobs but ThreadPooler doesn't easily allow that. Change-Id: Ieaf21b66eefd6c3e3b85b949917ea93b73834838 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderViewCommandUpdaterJob: stop copying renderables dataPaul Lemire2019-12-021-5/+3
| | | | | | | | This makes the post command update synchronization job a lot faster. Change-Id: I845c39cd4e2c0e56e8eefa05bbdd20d0bc3d2454 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Convert EntityRenderCommandData to struct of vectorsPaul Lemire2019-10-291-5/+1
| | | | | Change-Id: Ib290491476b083e6aa4cff5c112a802c4e198987 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Split RenderCommand generation and uniform updatePaul Lemire2019-10-211-0/+85
In most cases, we can generate the RenderCommands once and reuse them in subsequent frames only updating the uniforms. We still have to copy the RenderCommands as the renderer renders while we start preparing the next frame. This is still faster than regenerating them entirely. Regenerating the entire commands will happen only when FrameGraph or Scene structure changes. That should rarely be happening on a per frame basis. Next step could be to look at how to only update commands for Entity with Parameters that have changed. Change-Id: I202870850a46fcd3946f81bffddb7027d192f374 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>