summaryrefslogtreecommitdiffstats
path: root/src/core/delegated_frame_node.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Do not reuse render passes when we have dynamic 3D layersAllan Sandfeld Jensen2018-03-221-3/+9
| | | | | | | | | They can be clipped and culled based on visibility which is a property we do want to support changing. Task-number: QTBUG-67232 Change-Id: I6b670fd84d1e5c18283ea8f4ee1d8e81b94dcd57 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Basic adaptations for 65-basedAllan Sandfeld Jensen2018-03-151-5/+5
| | | | | Change-Id: I121b14d6a44e80f5eea4b159c58f7010d472926e Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* YUV colorspace adaptationsAllan Sandfeld Jensen2018-03-151-19/+5
| | | | | | | | Switch to using Chromium's Colorspace class and its generated shader code instead of our own enums. Change-Id: I89ee96adf68e2421efa2350cb0b78ce0fea7221f Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Adaptations for Chromium 63Allan Sandfeld Jensen2018-01-251-60/+60
| | | | | Change-Id: I551c7091bbc0463bed94180313eb2bfe92f0ad84 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 62Allan Sandfeld Jensen2018-01-251-17/+17
| | | | | Change-Id: I49cd3c419d4dd1180144c3c07bdd9a628ab73caa Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Merge remote-tracking branch 'origin/5.9' into 5.10Allan Sandfeld Jensen2018-01-081-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/core/api/qwebengineurlrequestjob.cpp src/core/browser_context_adapter.cpp src/core/renderer/user_resource_controller.cpp src/core/web_engine_context.cpp src/webenginewidgets/api/qwebenginepage.cpp Change-Id: I5278e5e22e1776d42975fc94d70ff8ca4f81fb9a
| * Fix QSGSoftwareLayer renderingJüri Valdmann2017-12-131-1/+1
| | | | | | | | | | | | | | | | Software layers (added in qtdeclarative 5.8) also need updating. Task-number: QTBUG-62867 Change-Id: If7a941d7e360871822e1776cde3845abcb1f7efa Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Stop creating image nodes without texturesJüri Valdmann2017-11-271-19/+7
| | | | | | | | | | | | | | | | | | Triggers segfault when using software backend. Task-number: QTBUG-64562 Change-Id: Ib7c55c8480cbccd5a546813d84021b57bb02d067 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Reduce the amount of thread switches needed for fetching texturesAllan Sandfeld Jensen2017-11-261-7/+42
| | | | | | | | | | | | | | | | | | Combine multiple texture fetches into a single sync call on another thread. Change-Id: Id372d5a11290105b36b34a4fc56bff9929304c20 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge branch '5.9' into 5.10Allan Sandfeld Jensen2017-11-011-11/+34
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/core/core_module.pro src/core/delegated_frame_node.cpp src/core/surface_factory_qt.cpp src/webenginewidgets/api/qwebengineprofile.cpp tests/auto/widgets/widgets.pro Change-Id: I92f3ef4eee779afef6c5381a7aa8b551417c1b17
| * Fix overeager freeing of resources in DelegatedFrameNodeJüri Valdmann2017-10-261-2/+20
| | | | | | | | | | | | | | | | | | | | | | After every run of DelegatedFrameNode::commit we take all the resources we didn't need and queue them for freeing. Problems appear however with the recent change that introduced clipping of invisible render passes and draw quads as we may now decide to release resources too early and eventually crash. Task-number: QTBUG-64032 Change-Id: I95138bc4c1caf8c191bfc801264309c5b03ef0f3 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
| * Fix viewport resizing bug in rendererJüri Valdmann2017-09-221-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | After the recent fix for rendering intersecting quads, DelegatedFrameNode no longer builds scene graph nodes for DrawQuads that are outside the visible area. This means that the structure of the scene graph now depends on the size of the visible area, however the logic for deciding whether to update or rebuild the scene graph was not updated to reflect this fact. As a result we may try to update e.g. a QSGImageNode as if it were a QSGRectangleNode leading to a crash. Task-number: QTBUG-62112 Change-Id: I6e2e9dee4238d208fc2be98669281c2d4d4962d7 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Adaptations to 61-basedAllan Sandfeld Jensen2017-10-251-3/+3
| | | | | | | | | | Change-Id: I5cb198445f283c6cea8187a1a2883896df0ee918 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Allan Sandfeld Jensen2017-09-291-141/+262
|\| | | | | | | Change-Id: I7094e85a7770303a2ae30baccbc484c04f33600e
| * Fix rendering of intersecting quadsJüri Valdmann2017-09-191-7/+129
| | | | | | | | | | | | | | | | | | | | | | Split intersecting quads using a BSP tree in the same manner as Chromium's rendering algorithm. Note that these split quads still will not be correctly rendered in software mode as Qt Quick's software renderer is not at all aware of non-rectangular QSGClipNodes. Task-number: QTBUG-62112 Change-Id: Ibfb72b9220817baebf828bc6183af7bd9c25d050 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Extract DrawQuad handling from DelegatedFrameNode::commitJüri Valdmann2017-09-181-135/+134
| | | | | | | | | | | | | | | | Refactoring only, no algorithmic changes. Task-number: QTBUG-62112 Change-Id: I871105ea48cd513e03b957d7daa9fe095c952a52 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Adaptations for Chromium 60Alexandru Croitor2017-09-111-6/+11
| | | | | | | | | | | | Change-Id: I536258e22c2ec143f2fd3f1cbda229e0611b6af4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | Adaptations for Chromium 59Allan Sandfeld Jensen2017-09-111-2/+2
| | | | | | | | | | Change-Id: I472053e316bfa782d0a6fb8903f4901be12247ae Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge branch '5.9' into 5.10Allan Sandfeld Jensen2017-09-061-0/+1
|\| | | | | | | Change-Id: I9fe9946ba47f9ef509a861963c83e275a25fffd0
| * Fix upside down rendering of render-passes in software modeAllan Sandfeld Jensen2017-08-281-0/+1
| | | | | | | | | | | | | | | | | | The software backend version of QSGLayer defaults to not mirroring vertically, where the OpenGL does, and we rely on that. Task-number: QTBUG-62112 Change-Id: Id5368728fd7046d2e4dc35bd4b2b61f2db35dac6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Remove support for building with Qt versions < 5.8.0Allan Sandfeld Jensen2017-08-041-14/+0
| | | | | | | | | | Change-Id: I2f2ba754111e198298b7d1a595343fcd773e05e5 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Graphics adaptations for Chromium 58Allan Sandfeld Jensen2017-06-141-17/+5
| | | | | | | | | | Change-Id: I66262ce7943bd5ba98defff5e4a33063b2ed0353 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Adaptations for Chromium 57Allan Sandfeld Jensen2017-06-141-11/+12
|/ | | | | Change-Id: Ia2756c1e9b13839c2330bd98cf953d47cbdac0dd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix backwards compatibilityAllan Sandfeld Jensen2017-05-101-0/+9
| | | | | | | | | | QtWebEngine supports building with last stable and last LTS Qt releases. Guard some 5.7-5.9 API from being used when not available, and reinstate the default features for 5.6 LTS builds. Change-Id: Ia288a49109d011a2bee883d4a2d38d994b497d59 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix undeclared use of QSGFlatColorMaterial when QT_NO_OPENGL is definedJüri Valdmann2017-04-261-4/+4
| | | | | | | | | | | QtWebEngine fails to build with -no-opengl due to src/core/delegated_frame_node.cpp trying to use QSGFlatColorMaterial without including the header. Change-Id: I98c12d3c482f7cacb2f61dd13ae32ee0a5740ae2 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Standardize override declarationAllan Sandfeld Jensen2017-04-211-20/+21
| | | | | | | | Update our overrides to Qt coding standard getting rid of Q_DECL_OVERRIDE and redundant virtual declarations. Change-Id: Id8b0750eb05c51fc8f50cac4000a811eebcbf918 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Handle texture nodes alternative source rectAllan Sandfeld Jensen2017-03-221-8/+18
| | | | | | | | | | Texture nodes has an alternative and rarely used way of setting source rect using uv_top_left and uv_bottom_right. This patch adds support for it. Task-number: QTBUG-59407 Change-Id: Ic14c3dbdede6ece07eb3cda2dcfea8e860654ef2 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Simple adaptations to Chromium 55Allan Sandfeld Jensen2017-03-011-4/+7
| | | | | | | The simplest adaptations to API and build changes in Chromium 55 Change-Id: I923fa188690a04902492317807f72f006bcab9c6 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix crashes in removeFromCanvasMichael Brüning2017-02-151-7/+19
| | | | | | | | | | | | | After reparenting the view, the compositor data may still be the same, but the node might be a different one. Check if the list of scene graph nodes is empty when making the decision on whether to build a new node tree or not. Also advance the node iterator for missing render passes. Task-number: QTBUG-58472 Change-Id: I28dfb40bda89470c7cdaec0aef8a976e307f5b6a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.8' into 5.9Allan Sandfeld Jensen2017-02-081-1/+1
|\ | | | | | | Change-Id: I0c3654ad097809fe10bcc6a15827a0af3006c4e6
| * Avoid crash in desktop linux with --disable-gpuAllan Sandfeld Jensen2017-02-011-1/+1
| | | | | | | | | | | | | | Don't try to access null OpenGL contexts. Change-Id: I7d0e607e8d29d3cfba8d6e98cd142b951c960281 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Optimize scene graph rendering by reusing old nodes if possibleMichael Brüning2017-01-111-98/+434
|/ | | | | | | | | | | | | | | | | | | | | | | Previously, Qt WebEngine always dropped all existing scene graph nodes that were created for previous frames and built up a whole new tree. The main reason for this was that the render pass structure is not guaranteed to remain the same across two frames. This resulted in a full repaint of every new frame, even if only a small area had changed. We now check first if the structure of the frame data has changed across two sequential frames. We only discard the old nodes if there actually has been a change. Otherwise, we reuse the scene graph nodes and only update the nodes that have changed. A general exception to this at the moment is video. In case any streaming video or yuv video nodes are found in the render pass, all nodes get recreated. Task-number: QTBUG-57720 Change-Id: I8998577af48a163d54144f205c316ee427ed0307 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Build with Qt 5.6Allan Sandfeld Jensen2016-11-171-1/+5
| | | | | | | Make minimal changes so QtWebEngineCore 5.8 still builds with Qt LTR. Change-Id: Iae3ae606b3457a6ca311ae174b3d2a331e9b20bc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix building when QT_NO_OPENGL is definedAndy Nichols2016-10-021-13/+46
| | | | | | | Task-number: QTBUG-54327 Change-Id: I759598d56aa0a74b64092365b422a743fb508ac6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-211-20/+63
|\ | | | | | | | | | | | | | | | | Conflicts: src/3rdparty src/core/delegated_frame_node.h src/webengine/api/qquickwebenginecontextmenudata.cpp Change-Id: I163488d0d32cd981351608b2886f12e547e24672
| * Merge remote-tracking branch 'origin/5.6' into 5.7Michal Klocek2016-08-311-20/+63
| |\ | | | | | | | | | Change-Id: Ic739ab9db0851cc13467168840ea2549996432f8
| | * Fix textures memory leak on second X11 screenMichal Klocek2016-08-241-20/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for QTBUG-48969 was only half-baked patch and introduced massive memory leak on fbo and texture alloctaions. Delete fbo and extra allocated textures. Task-number: QTBUG-52575 Task-number: QTBUG-48969 Change-Id: I2148f37cd27dab9e40ab72caeb6857752b69379f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Adaptations to Chromium 53Allan Sandfeld Jensen2016-09-141-14/+14
| | | | | | | | | | | | | | | Change-Id: I15053486edfd42ee607250b4f14fb6eaa325c959 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Adaptations to Chromium 52Allan Sandfeld Jensen2016-09-141-19/+6
| | | | | | | | | | | | | | | Change-Id: Idf8a511ba26d263fd9d014d87d5e1101d706da71 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-161-1/+1
|\| | | | | | | | | | | Change-Id: Id5f97771be23a4393e8d3be98903c321377ae809
| * | Check if gpu fence is supported in pullTextureMichal Klocek2016-08-091-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-53972 Change-Id: Ie722e40e4763c5a78ce566d03fec6877d64b2023 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Switch away from deprecated QSG*Node classesAllan Sandfeld Jensen2016-07-141-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | Use the new public QSG classes meant to replace QSGSimpleRectNode and QSGSimpleTextureNode. Change-Id: Icdfc3b4ba13dd28258defa955d050927abbae95b Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Fix build with newer qtdeclarativeAllan Sandfeld Jensen2016-06-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | What was previous called QSGImageNode is now QSGInternalImageNode Task-number: QTBUG-54312 Change-Id: Iec286765bea5598d86932c81bfd122461a2e9884 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Handle new resource offset and multiplier in YUV video nodesAllan Sandfeld Jensen2016-06-011-2/+4
|/ / | | | | | | | | | | | | | | Handles new properties added to YUV nodes to handle 9- and 10-bit per color channel videos. Change-Id: If96660995650d3deeda7601714146fafeef57176 Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* | Update GL mailbox synchronization to Chromium 49v5.7.0-alpha1Allan Sandfeld Jensen2016-03-071-112/+119
| | | | | | | | | | | | | | | | | | | | | | Chromium 49 switched to using SyncToken, making our old model based on sync-points obsolete. This patch rewrites our syncing to instead take advantage of new Chromium API for waiting on sync tokens. It also moves the creation of the GLFences we use out of Chromium. Task-number: QTBUG-51173 Change-Id: I04d726d4bc81bf6b7fe39bb2b5507e84a0b6991e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Allan Sandfeld Jensen2016-02-201-6/+65
|\| | | | | | | Change-Id: If884b8b8bc087a6a726476b49cdb48a0efaa173e
| * Do slow copy of mailbox textures when contexts are not sharedMichal Klocek2016-02-161-6/+65
| | | | | | | | | | | | | | | | | | | | In case of two individual screens on X11 qt global shared context is not shared. Copy the textures between contexts using FBO and system memory. Task-number: QTBUG-48969 Change-Id: I07d9d5e27917fd63064215b4eb1d0b134065bd43 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Unify license header usage.Jani Heikkinen2016-02-011-11/+14
| | | | | | | | | | | | | | | | | | Update files using old header.LGPL3 to use header.LGPL Update files using old header.FLD to use new header.FDL Update files using old header.BSD to use new header.BSD Change-Id: I36a67aaa8c3ca6c7946308defc9c03c3571a7d23 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Merge branch '5.6' into devAllan Sandfeld Jensen2015-11-201-3/+24
|\| | | | | | | Change-Id: I05fe27b8321944cf68cc96dfa9dfcaeb54c8c8cd
| * Replace QList with QVectorKai Koehne2015-11-061-1/+1
| | | | | | | | | | | | | | | | Replace QList with QVector in all places where the type isn't a pointer, and is not already (indirectly) exposed through public API. Change-Id: I90e3db56bf9ebda6b3cb8fb4396d2ae283159727 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>