summaryrefslogtreecommitdiffstats
path: root/src/core/compositor
Commit message (Collapse)AuthorAgeFilesLines
* FIXUP: Fix swap condition in DisplayGLOutputSurface::updatePaintNodeKirill Burtsev2020-09-183-1/+4
| | | | | | | | | | | | | Amends commit 99a668c324. Task 'swapBuffersOnVizThread' is supposed to be scheduled only when m_middleBuffer is ready after swap on gpu thread. Checking for m_taskRunner is not enough to verify this. Call to updatePaintNode may come from SG backend on expose event, thus breaking expected sequence of buffers swaps. Task-number: QTBUG-85817 Fixes: QTBUG-86599 Change-Id: Ia97a7a24b5672a2979b514d3cb4879e7630941eb Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Adaptations for Chromium 83Allan Sandfeld Jensen2020-09-092-11/+11
| | | | | Change-Id: I63ed851426b18623d549ceaf87f1b6eeec527966 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Chromium 81-based adaptationsAllan Sandfeld Jensen2020-09-092-2/+7
| | | | | Change-Id: Ie422b327025da084bc8038c7a0aadee2db801f29 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Delete old compositor and remove --disable-viz-display-compositorJüri Valdmann2020-09-0914-2956/+0
| | | | | | | Change-Id: I1b056a61e2b56b19441f559e97f785c87df61a0c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit b00af13974b2c72ae4d397fbdf5925181e7cc1bf) Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Fix swap condition in DisplayGLOutputSurface::updatePaintNodeJüri Valdmann2020-08-141-1/+1
| | | | | | | | | | | | | | | | | | | The buffer pointers m_middleBuffer and m_frontBuffer are swapped in updatePaintNode on the condition that m_middleBuffer is non-null and it's serviceId non-zero. But neither m_middleBuffer nor it's serviceId is immediately cleared, leaving the possibility that a subsequent call to updatePaintNode could swap the buffer pointers again if this call occurs before m_middleBuffer is cleared in swapBuffersOnVizThread. The m_taskRunner pointer is however cleared immediately and therefore the subsequent call to updatePaintNode will trigger a segmentation fault. Since m_taskRunner precisely tracks the condition when we should or should not swap, change the swap condition to simply require that m_taskRunner is non-null. Fixes: QTBUG-85817 Change-Id: Iad89bb0f4de7c0c151d5c5bd63ac74ab6cdd9087 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix not working egl sync in compositor resource fenceMichal Klocek2020-07-092-6/+8
| | | | | | | | It seems this does not work already for a while. Add missing headers. Change-Id: I158519f69e2ce87fe6c84c03a6ac2ce178c20206 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove QNX dead-codeAllan Sandfeld Jensen2020-05-153-48/+1
| | | | | | | Hasn't compiled in many years Change-Id: I754fc5fee5c2fff51fb3b701fa81afbed7f60b8b Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Switch away from QT_NO_OPENGLAllan Sandfeld Jensen2020-05-111-22/+22
| | | | | Change-Id: I310265dacc9b1c8d391e82b6adf52b70c037d9b9 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix upside-down render passes with software scenegraph (again)Jüri Valdmann2020-05-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Originally, in 2017, this same issue was fixed by vertically mirroring the texture used for the render pass (a311b7bc9d). At this time we were using QSGSoftwareInternalImageNode for the scenegraph node and QSGSoftwareLayer for the layer texture. Then, in 2018, the implementation of QSGSoftwareInternalImageNode was changed to automatically mirror its texture IF the texture is a QSGSoftwareLayer. This was not a problem because the layer was also changed to mirror its contents, i.e. the meaning QSGSoftwareLayer::setMirrorVertical was inverted. See 10c56615d in qtdeclarative. Finally, in 2019, we switched to using QSGSoftwareImageNode for the scenegraph node of a render pass. This caused the bug to return, since this node does not automatically mirror QSGSoftwareLayer textures. Fix it again by setting setMirrorVertical(false) on the layer. The default scenegraph is not affected by this change because the default image node uses the layer's normalizedTextureSubRect to automatically undo the effect of mirroring, i.e. mirroring the default layer has no effect on output. Fixes: QTBUG-83785 Change-Id: I3594c0c7f5364799af1f543d1e4e3de52a25cd2b Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix crash on fence create after failure to make context currentKirill Burtsev2020-04-091-1/+4
| | | | | | | | | | | | GLFence::Create requires valid current gl context, which is not the case if InProcCommandBuffer::MakeCurrent fails: driver and api structures will be null after context loss (for examples on os resume with desktop gl), that triggers access violation. Fixes: QTBUG-82656 Change-Id: If46a252147d1d3a0be7d2b19f7bbc36ac1dd338a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Fix DisplaySoftwareOutputSurface swap with transparent backgroundJüri Valdmann2020-04-091-1/+3
| | | | | | | | | Change QPainter's compositing mode from the default SourceOver (alpha-blending) to Source (copy). Fixes: QTBUG-81250 Change-Id: I670772b77cdd89ec42de96808608693ad50f726a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix CSS backdrop-filterPeter Varga2020-04-031-1/+1
| | | | | | Task-number: QTBUG-82842 Change-Id: I79394cf726d9c5d16881fa8c07b43d28fa43e026 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Adaptations for Chromium 79Allan Sandfeld Jensen2020-02-281-4/+2
| | | | | | | | Fixes: QTBUG-80737 Fixes: QTBUG-81556 Fixes: QTBUG-81614 Change-Id: Ie6a69cdbf46d0508bff226f1b8fed28a618e1949 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Adaptations for Chromium 78Allan Sandfeld Jensen2020-02-282-3/+3
| | | | | | | | | | Including removal of renderer service. [ChangeLog][QWebEngineSetting] XSS Auditing has been removed, and XSSAuditingEnabled no longer has any effect. Change-Id: I0835e2a76551057f3eea30a343e0373b642192f0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Build fix for when configuring with -no-openglAndy Shaw2020-01-181-0/+5
| | | | | Change-Id: Ifb5f7c866c26746f989ab4e8c49c48bcbdb50077 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix all GCC and Clang warningsJüri Valdmann2019-10-302-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix all warnings save for -Wdeprecated-declarations in tests. Warnings from GCC 9.2.0: src/core/renderer/extensions/resource_request_policy_qt.cpp:157:23: warning: variable 'resource_root_relative_path' set but not used [-Wunused-but-set-variable] src/core/chromium_overrides.cpp:121:21: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move] src/core/render_widget_host_view_qt.cpp:540:12: warning: enumeration value 'kNull' not handled in switch [-Wswitch] warning: enumeration value 'kMiddlePanningVertical' not handled in switch [-Wswitch] warning: enumeration value 'kMiddlePanningHorizontal' not handled in switch [-Wswitch] warning: enumeration value 'kDndNone' not handled in switch [-Wswitch] warning: enumeration value 'kDndMove' not handled in switch [-Wswitch] warning: enumeration value 'kDndCopy' not handled in switch [-Wswitch] warning: enumeration value 'kDndLink' not handled in switch [-Wswitch] warning: enumeration value 'kMaxValue' not handled in switch [-Wswitch] src/core/type_conversion.cpp:57:12: warning: enumeration value ‘kRGBA_F16Norm_SkColorType’ not handled in switch [-Wswitch] src/core/api/qtbug-60565.cpp:83:6: warning: 'void __ShimCppDeleteArrayNoThrow(void*, const std::nothrow_t&)' alias between functions of incompatible types 'void(void*, const std::nothrow_t&) noexcept' and 'void(void*)' [-Wattribute-alias=] src/core/api/qtbug-60565.cpp:79:6: warning: 'void __ShimCppDeleteNoThrow(void*, const std::nothrow_t&)' alias between functions of incompatible types 'void(void*, const std::nothrow_t&) noexcept' and 'void(void*)' [-Wattribute-alias=] src/core/api/qtbug-60565.cpp:75:6: warning: 'void __ShimCppNewArrayNoThrow(size_t, const std::nothrow_t&)' alias between functions of incompatible types 'void(size_t, const std::nothrow_t&) noexcept' {aka 'void(long unsigned int, const std::nothrow_t&) noexcept'} and 'void*(size_t)' {aka 'void*(long unsigned int)'} [-Wattribute-alias=] src/core/api/qtbug-60565.cpp:71:6: warning: 'void __ShimCppNewNoThrow(size_t, const std::nothrow_t&)' alias between functions of incompatible types 'void(size_t, const std::nothrow_t&) noexcept' {aka 'void(long unsigned int, const std::nothrow_t&) noexcept'} and 'void*(size_t)' {aka 'void*(long unsigned int)'} [-Wattribute-alias=] Warnings from Clang 9.0.1: src/core/renderer/extensions/renderer_permissions_policy_delegate_qt.h:61:29: warning: private field 'm_dispatcher' is not used [-Wunused-private-field] src/core/web_event_factory.cpp:1296:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] src/core/compositor/compositor_resource_fence.h:55:81: warning: extra ';' after member function definition [-Wextra-semi] src/core/renderer/render_frame_observer_qt.h:81:10: warning: 'ReadyToCommitNavigation' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] src/core/extensions/mime_handler_view_guest_delegate_qt.h:69:27: warning: private field 'guest_' is not used [-Wunused-private-field] src/core/chromium_overrides.cpp:121:12: warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move] src/core/chromium_overrides.cpp:145:64: warning: missing field 'set_up_command_line' initializer [-Wmissing-field-initializers] src/core/chromium_overrides.cpp:146:55: warning: missing field 'set_up_command_line' initializer [-Wmissing-field-initializers] src/core/render_widget_host_view_qt.cpp:540:13: warning: 7 enumeration values not handled in switch: 'kNull', 'kMiddlePanningVertical', 'kMiddlePanningHorizontal'... [-Wswitch] src/core/compositor/stream_video_node.cpp:50:18: warning: 'updateState' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] src/core/compositor/stream_video_node.cpp:103:18: warning: 'initialize' overrides a member function but is not marked 'override' [-Winconsistent-missing-override] src/core/type_conversion.cpp:57:13: warning: enumeration value 'kRGBA_F16Norm_SkColorType' not handled in switch [-Wswitch] src/core/renderer_host/web_channel_ipc_transport_host.cpp:59:60: warning: extra ';' outside of a function is incompatible with C++98 [-Wc++98-compat-extra-semi] tests/auto/widgets/loadsignals/tst_loadsignals.cpp:237:10: warning: lambda capture 'this' is not used [-Wunused-lambda-capture] tests/auto/widgets/qwebenginedownloaditem/tst_qwebenginedownloaditem.cpp:1112:62: warning: lambda capture 'item' is not used [-Wunused-lambda-capture] tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp:1534:55: warning: lambda capture 'this' is not used [-Wunused-lambda-capture] Change-Id: I374be0d4e58accc0a00a2596a560dd6103a98994 Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Adapt to change in DrawQuad::ShouldDrawWithBlendingAllan Sandfeld Jensen2019-10-231-7/+7
| | | | | | | | Now we need to pass 'true' as argument to get our special behavior. Change-Id: Ifdf5eb71083441350d5ca4c3971d8930cb724d7c Fixes: QTBUG-78762 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Adaptations for Chromium 77Allan Sandfeld Jensen2019-10-117-37/+44
| | | | | | Fixes: QTBUG-77267 Change-Id: I181e24cf80ebee6991b95dde6c636f0d169b40a4 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Adaptations for Chromium 76Allan Sandfeld Jensen2019-10-111-11/+11
| | | | | Change-Id: Id6d18a3854b572334dc1d65f1916b8991a740cd2 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Use ui::CompositorJüri Valdmann2019-08-2212-5/+1229
| | | | | | | | Needs corresponding 3rdparty change. Fixes: QTBUG-71885 Change-Id: I791bc3da5a7a66e03470e9e05bf25a997101b018 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove usage of QSGInternalImageNodeAlexandru Croitor2019-07-231-11/+6
| | | | | | | | | | | | | Since 1f01b44d20471a7f4a5029a4c0049e8296749fef landed in qtdeclarative, the internal API createInternalImageNode() takes one required argument. However due to the following commit in qtdeclarative cf24651b550752fbf9bd3afb02aee5d722164658 we no longer need to use internal image nodes. Remove their usage, and use the regular image nodes instead. Change-Id: Ie0cc2a2c1e365bb7fae564ad3c9d880c3a0bf0d9 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.13' into dev"Allan Sandfeld Jensen2019-07-141-1/+2
|\
| * Null check result of consuming mailbox textureJüri Valdmann2019-07-091-1/+2
| | | | | | | | | | | | Fixes: QTBUG-76913 Change-Id: Ib036121f366d037d507f59bf31c3ab9c79bfea5e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Adaptations for Chromium 75Allan Sandfeld Jensen2019-07-101-1/+1
| | | | | | | | | | Change-Id: Idad08244e0c749a9f70f5eb9f8cd236039b941b3 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Adaptations for Chromium 74Allan Sandfeld Jensen2019-07-101-3/+4
|/ | | | | Change-Id: Icdefa05eec39c632328dfc40862e5b734170bf3f Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Avoid context-switches when not switching thread contextsAllan Sandfeld Jensen2019-04-121-0/+6
| | | | | | | | | When UI and GPU threads are the same we not need to do async scheduling or calls between them, and doing so comes at a much higher cost than in a multithreaded environment. Change-Id: Icddee1a78d87ce08362882da5740471dfef1224a Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Set correct priorities on tasks and threadsAllan Sandfeld Jensen2019-04-102-2/+2
| | | | | Change-Id: I1dc8b466d0b45f9e1d6c973f1ad3c62033bf4409 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Fix -no-opengl buildPeter Varga2019-03-291-0/+5
| | | | | Change-Id: I472ff20de710b1300c1f5209f3100b5280356f45 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Adaptations for Chromium 73Allan Sandfeld Jensen2019-03-231-4/+3
| | | | | Change-Id: I565d1e327852110a5abebed3388d7cd6986bef06 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Adaptations for Chromium 72Allan Sandfeld Jensen2019-03-232-6/+10
| | | | | Change-Id: Ic355257066c7c1433862cb41e6f2bfa831147e0d Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Simplify visual properties handling in RenderWidgetHostViewQtJüri Valdmann2019-02-131-1/+1
| | | | | | | | | Replace separate notifications from delegate with one combined notification and change detection. Store view rect, window rect and screen info in RWHVQ to ensure the properties are in a consistent state. Change-Id: Icef8a17e72882f56db249f5553b6cf554e1f91dc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Quiet -Wmismatched-tag warningv5.13.0-alpha1Allan Sandfeld Jensen2019-02-081-1/+2
| | | | | | | Change CompositorResource to class to match forward declaration. Change-Id: I603038b99e567a8da2096e48b5b33ec8874594ad Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Adaptations for Chromium 71Allan Sandfeld Jensen2019-01-286-19/+20
| | | | | | | Change-Id: Ib650113b05dfd4771240804f94e33c07aa317bf2 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Adaptations for Chromium 70Allan Sandfeld Jensen2019-01-286-10/+31
| | | | | | | Change-Id: I8bb77784dbc8a0b9debd96a4c49421bd34e6a0df Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Merge remote-tracking branch 'origin/5.12' into devAllan Sandfeld Jensen2019-01-241-0/+6
| | | | Change-Id: I040db21f90766827c84c48dc0ed2d2d623dc011a
* Fix build with only OpenGL/ES2Samuli Piippo2019-01-212-4/+4
| | | | | | | | Define the needed extension when not available at compile time, move the define after usage was changed in commit 24e878d35. Change-Id: I6ce3c87832b91fb2ac5edf5c4c47bb8e8f935b0a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.12' into devMichael Brüning2018-12-181-1/+18
| | | | | | | | | | | Conflicts: src/core/compositor/delegated_frame_node.cpp src/core/profile_adapter.cpp src/core/profile_io_data_qt.cpp src/webengine/api/qquickwebengineprofile.cpp src/webenginewidgets/api/qwebengineprofile.cpp Change-Id: I35ec8480e758bbcb6c5942a5401cb1b6dbdcc428
* Implement ContentGpuClient for WebEngineAllan Sandfeld Jensen2018-11-245-19/+130
| | | | | | | | | This is the way we are supposed to share a sync point manager with the content layer. Change-Id: I595caa863f8b9c8b4f4bc17df76211416a027a12 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Remove incorrect DCHECK in CompositorResourceTracker::commitResourcesJüri Valdmann2018-11-231-1/+5
| | | | | | | Fixes: QTBUG-71869 Change-Id: I3e2d39eb6c3559f2a31c6b98f5f950183f2381d3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Merge branch '5.12' into devAllan Sandfeld Jensen2018-11-162-5/+10
| | | | | | | | Conflicts: src/core/compositor/compositor.cpp src/core/compositor/compositor.h Change-Id: I8a4d73d728d93d95e499849f8778cc88dda2105e
* Move compositor and scene-graph integration to its own dirAllan Sandfeld Jensen2018-11-0715-0/+3175
Change-Id: Ib552dc30db5ee886631a108b4ccd866459c432e2 Reviewed-by: Michal Klocek <michal.klocek@qt.io>