summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/renderviews
Commit message (Collapse)AuthorAgeFilesLines
* Make the OpenGL renderer a pluginPaul Lemire2020-02-052-564/+0
| | | | | | | | 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>
* Introduce a GLShader classPaul Lemire2020-02-031-27/+84
| | | | | | | | | | | | | | | | 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>
* QSortPolicy: add Uniform sorting modePaul Lemire2019-12-201-0/+1
| | | | | | | | | | | | 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>
* PackUniformHash to QVectorPaul Lemire2019-11-141-9/+4
| | | | | | | | | | | | | | | | | | | Surprisingly it's hard to notice its effect in the speed of execution, frame preparation looks to be more or less the same with the profiler. However with vtune, the profiling traces show a huge difference with QHash, mainly in time spent allocating memory. It shows a noticeable reduction in CPU usage. On bigscene-cpp with 600 entities QHash -> On a 158s run, CPU time is 112s (70%) free accounts for 26s (23%), malloc 24s (21%) QVector -> On a 190s run, CPU time is 110s (58%) free accounts for 5s (4.5%), malloc 4.7s (4.2%) Change-Id: I880d44b1acf7f051e479ed356864c3caf407f23f Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Split RenderCommand generation and uniform updatePaul Lemire2019-10-211-65/+61
| | | | | | | | | | | | | | | | 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>
* Update QMemoryBarrier to use direct syncPaul Lemire2019-09-201-1/+1
| | | | | Change-Id: I9d7a6b7484acaeff18feae492b3e4c456066e7b4 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Set renderer dirty flags in initialize from peerPaul Lemire2019-08-292-0/+4
| | | | | Change-Id: I90ae642d49af5f08fb828950bbdff8a30bc111b9 Reviewed-by: Mike Krus <mike.krus@kdab.com>
* QSortPolicy: add sorting by TexturePaul Lemire2019-03-061-0/+79
| | | | | | | | | | | It can be more efficient to render a scene by sorting drawing commands based on the textures they are requiring. In conjunction with Material sorting, this can reduce the amount of GL calls being sent to the driver. [ChangeLog][Qt3DRender] QSortPolicy can now sort by Texture Change-Id: Ibc013e9d506ea3061b19a56c548e8184f2b981cc Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Fix RenderView uniform minificationPaul Lemire2018-02-281-5/+86
| | | | | | | | | In the case where we had two or more groups of RenderCommands where each group shares a common shader, uniform minification wouldn't be applied to the second command of each groups after the first one. Change-Id: Ie73f559e3f44f0f22ddd79017fd413262cae6ab4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Merge remote-tracking branch 'origin/5.10' into 5.11Sean Harmer2018-02-151-17/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/animation/doc/src/qt3danimation-module.qdoc src/render/backend/abstractrenderer_p.h src/render/backend/buffervisitor_p.h src/render/backend/renderer.cpp src/render/backend/renderer_p.h src/render/backend/triangleboundingvolume_p.h src/render/backend/trianglesextractor_p.h src/render/frontend/sphere_p.h src/render/jobs/calcboundingvolumejob.cpp src/render/jobs/job_common_p.h src/render/jobs/pickboundingvolumejob.cpp src/render/jobs/pickboundingvolumejob_p.h src/render/jobs/pickboundingvolumeutils.cpp src/render/jobs/renderviewjobutils_p.h tests/auto/render/boundingsphere/tst_boundingsphere.cpp tests/auto/render/commons/testrenderer.h tests/auto/render/raycasting/tst_raycasting.cpp tests/auto/render/render.pro tests/auto/render/renderer/tst_renderer.cpp Change-Id: I76633bc5a5a065e5f9ea62cc16563377e5c693a3
| * Render: Use SIMD Vectors and Matrices in the backendPaul Lemire2018-02-021-17/+0
| | | | | | | | | | Change-Id: I19b3b2f8fcb06eb2bc600ebe370465dd15a8eabc Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Add support for FrontToBack sortingLaszlo Agocs2017-09-041-0/+29
|/ | | | | | | | | A typical renderer with opaque-transparent passes will often want to use FrontToBack in the opaque pass (even though this is usually not strictly required). Change-Id: I071b62424a5446c86d76c6045c126a599534bf80 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix RenderCommand sortingPaul Lemire2017-08-021-2/+186
| | | | | | | | | | | | - Remove type punning mechanism that was used to filter previously (could lead to undefined behavior) - Properly filter based on shader and material - Add unit tests Change-Id: I8d0fd4a49d586e6ec26515e2cafe1ea94d38f8f1 Task-number: QTBUG-60183 Reviewed-by: Oleg Evseev <ev.mipt@gmail.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* QMemoryBarrier cleanupPaul Lemire2017-02-161-5/+5
| | | | | | | | | | | -rename barriertypes to waitOperation -in QML introduce a waitFor property -remove the Barrier suffix for the enum values -rename BarrierType to Operation Task-number: QTBUG-58878 Change-Id: Idc65f44b09e632509cd74286de26fea02e6b6dee Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* RenderView: store memoryBarrier flagPaul Lemire2017-01-232-5/+77
| | | | | Change-Id: Icbf1a42e1efce8c33b02487fc3dfed7dc79ab876 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Split RenderViewJobsPaul Lemire2016-07-031-1/+2
| | | | | Change-Id: I6c4f8970b14e39085480c029b8acdfcdbfc6fa8d Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Unify license header usageAntti Kokko2016-01-261-17/+9
| | | | | | | | Updated license headers to use new GPL-EXCEPT header instead of LGPL3 one (in those files which will be under GPL 3 with exceptions) Change-Id: I930c6234bfe720d38c596bbc3d1f39be75a7328b Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Increase frame allocator max object size a littleSean Harmer2016-01-171-3/+3
| | | | | | | | Adding the surface pointer to the RenderView pushed us over the old limit. Change-Id: Ibc28ffc2d56e6f768294dad971c00822e6aaffb6 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Make QFrameAllocator privateKevin Ottens2015-12-081-0/+1
| | | | | Change-Id: Id69a161da691322184d8ec5ed7a1b375cf2038ed Reviewed-by: Sean Harmer <sean.harmer@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-1/+1
| | | | | | | Update other aspects, tests and examples accordingly. Change-Id: Ib1bcf0bdf4f5aec4422dc0c80bfc32b27fb1a317 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* Move Render aspect into the Qt3DRender namespaceSean Harmer2015-10-131-3/+3
| | | | | | | Updated examples and tests accordingly. Change-Id: I8848a88472de2302aa072fa11f21ea934672b7e6 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
* tst_renderviews: add a new simple testPaul Lemire2015-07-061-0/+17
| | | | | Change-Id: I58fb1ddd3256b1ec3ed5e341000d983098b3090c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Units test for RenderViewUtils and RenderViewPaul Lemire2015-03-092-0/+72
Mostly focused on ShaderData for now, RenderView unit tests will be completed over time. Change-Id: I279a49a294ff83d5ab5ec06c48e14796cf00b7b0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>