summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add changes file for Qt 5.15.2v5.15.25.15.2Antti Kokko2020-11-051-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | + 7d7ac7f0a4bd6a7956448ddb0ba44c12755dca2e Client: Send subsurface expose event when toplevel is configured + 18ab3edaf2a4cdd1e9df6e166cf51a69a9785ecd Client: Initialize mScale on creation instead of on show + b1564c87e3fd1271575122c6b932c5e9324f07a7 Client: Fix scroll direction with touchpads - bd48b6b341482720652dd02866690f937e25619d Add changes file for Qt 5.15.1 + 96cfbda63a249385eef02e7996098079569a13b8 Fix brcm-egl wayland integration + 6a7c6eedbaf00b1f2102247810987b6d9246f34e Bump version + 9c8e59a7a6b0cfaa7caf899bdb577270c83b9a12 Build with -no-opengl + 1344ca6b5a8fbc1b28727feea6d856af8bf3bc93 fix libdrm related configure test failure + 65922085c3ba302b9049e62c1e132236b726adf9 Implement MockRegion + 407c240bf52f0c5d23cd87be48ced51a58562f19 Scanner: Generate code that cleans up m_resource + 45a3a3208a4243d9b0a6500e3dcd0fcfed2dfcea Scanner: Generate code that destroys inert resources + 707b23cf11586304912b3ea87099cf46a0aac912 Implement CoreProtocol::compositor_create_region + 2a77384a4f2485364cefeb825eea63daf13dd3b1 Fix race condition on frame callback + 51f0466e01df52eb07e589006744f405dfd40bdd Client: Advertise all supported mime types + f637fcdbbabeb060cdd223d8bc6662d5cace6b90 Address WlCompositor::compositor_create_region in tests + cc779e0ed47ec4759dc3c23953dd02cfacc6885c Issue set_opaque_region on opaque surfaces + 8824452f5b259ab1f295f1237789b2693ae8f232 Add changes file for Qt 5.12.10 Pick-to: dev 5.15 Change-Id: I9158c0bb827a54421b205abc6c637e6cdfc5cebd Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Doc: List correct license information for the modulePaul Wicking2020-10-281-3/+7
| | | | | | | | | Fixes: QTBUG-87959 Change-Id: I1c5cd15e0dd6f81e87690e54cd4e526ce668a8aa Reviewed-by: Tino Pyssysalo <tino.pyssysalo@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io> (cherry picked from commit 7cadb86e5b151459bd06f46a90f28bd157078df7) Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Replace remaining LGPLv3 headers in QtWaylandCompositor with GPLv3Kai Koehne2020-10-2819-323/+190
| | | | | | | | | | | | | | Use same header as for the rest of the module. This was forgotten in commit bb1b46a4862e0a5 Change-Id: I7e61b43f0387a9affa9488566cb5aaca51b3bc0b Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 2bf41c736719654d0d6b15eec280a4667ebc28c5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit f9d5fc2e94c2116130456f4b4f8bd2f3a0c88d20)
* Add changes file for Qt 5.12.10Antti Kokko2020-10-221-0/+37
| | | | | | | Change-Id: I191975d084a55a4b7b53975e03b03925ed66d1db Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 971ed94adbf538af5a09e4136921fc0e8cee9815) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Issue set_opaque_region on opaque surfacesAleix Pol2020-10-222-0/+29
| | | | | | | | | | | | The application will tell Qt whether the background is transparent through either Qt::WA_TranslucentBackground or QQuickWindow::setColor. These will set a QSurfaceFormat. This change checks the QSurfaceFormat and issues the opacity information so we can properly implement culling optimizations in the compositor. Change-Id: I4f7562467449eac7931f3011d4b835934212adad Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 0db685834f8377e41b147d3367b8ec514841eff5)
* Address WlCompositor::compositor_create_region in testsAleix Pol2020-10-201-3/+2
| | | | | | | | | It was not properly marked as override and would not get called. Change-Id: Ib80c916c65534ddff918ac06bbe52d88e19d9ff4 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit f814591155d80489973ae0da05fddeadc8cc27aa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Client: Advertise all supported mime typesDavid Edmundson2020-10-191-1/+1
| | | | | | | | | | | | | | | | | | | | Qt has some internal mime types that can be translated to known types. For example the mime type application/x-qt-image Qt can convert to any supported image format. The data_source_send method already converts (via QWaylandMimeHelper::getByteArray) However we previously only advertised the list of mimetypes explicitly set by the application. This brings us in line with the X11 QPA. Fixes: QTBUG-87657 Change-Id: Ia09c0cbc1f0997552bd253e79d6715ebcafee0a1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 6c534941a3015ba529dd4a5c153cffa0e94af11a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix race condition on frame callbackPaul Olav Tvete2020-10-164-26/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the frame listener callback is moved to a different queue while the frame event is being processed, the event will not get delivered. (It will not even show up in the WAYLAND_DEBUG output.) This will cause waitForFrameSync() to hang until it times out. To avoid this, perform the move just after the callback has been created. This exposed an issue with single-threaded rendering, where a new update would be started from inside the callback, resetting mWaitingForFrameCallback before waitForFrameSync could react to it. This caused all rendering to freeze. To avoid that problem, do not deliver update requests directly from the frame callback. With the callback always on a separate queue, we then have to make sure that queue is also dispatched during the main event loop, otherwise the events may not be processed. To do this, we need a mutex lock. But it turns out that we no longer need a global mutex lock as long as the frame events are being dispatched on their own queues, but can manage with per-window locks instead. A final thing needed is to make sure the frame callback does not request additional updates while we are already waiting for the main thread to process the last one. This is to avoid flooding the main event loop with events, when the main thread is processing them at a slower pace than the frame rate. Fixes: QTBUG-83263 Done-with: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Change-Id: I0db9da64fc8ced147177391c2a7999c4cc7a0d58 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 98aea22d839000a377d0fc646133f76e08b44f6e)
* Implement CoreProtocol::compositor_create_regionAleix Pol2020-10-151-0/+21
| | | | | | | | | Otherwise tests using it crash. Change-Id: Id2ce98ed7c975144728be7566e20b6ea08fa9150 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 519ca669b08f0bce45d645d271bd1236bdb3970a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Scanner: Generate code that destroys inert resourcesVlad Zahorodnii2020-10-121-5/+15
| | | | | | | | | | | | | | | | | | | In rare cases, the compositor may need to destroy its private data associated with a wl_resource object. For example, one such case may arise when an output has been disconnected and the corresponding QWaylandXdgOutputV1 object needs to be destroyed. Another case is where some resource has become inert. If the QWaylandXdgOutputV1 object has been destroyed and there are still wl_resource objects associated with it, the compositor will crash due to a segfault when somebody calls xdg_output::destroy(). With this change, qtwaylandscanner will generate code that handles destruction of inert resources behind the scenes. Change-Id: I0532f783ae53cc7861e0f08433dc2407aa9c7953 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 4a4c35a856cf64f0e165cc3cfaeb1a3bbbf471f6)
* Scanner: Generate code that cleans up m_resourceVlad Zahorodnii2020-10-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | The object that owns the resource will not be necessarily destroyed in the destroy_resource() function. One such case may arise if the compositor wants to animate the disappearing of a window, in that case we want to keep client buffer data around even after the wl_buffer resource has been destroyed. If the compositor accidentally accesses the destroyed resource, it'll most likely crash because of SIGSEGV. Speaking from my experience, such crashes are far from being fun to debug. With this change, qtwaylandscanner will generate code that cleans up m_resource when the associated resource has been destroyed. It can be useful for the purpose of preventing accessing already destroyed data. Note that we want m_resource to be valid when the destroy_resource() func is called because the compositor may need it in order to properly perform cleanup, for example send a wl_pointer::leave() event, etc. Change-Id: I82dab3b7eae8c282fdbad689af49622350b6c867 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit c594b7622f52dea291d33757b74971b3902b5d37) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Implement MockRegionAleix Pol2020-10-095-3/+137
| | | | | | | | | | If we don't mock regions, we get a crash every time that a client calls createRegion. So far regions are untested. Change-Id: I83f20b879ece5cefcf2039d369034516df6a6a62 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 2cb631894332eff4604cbb031d77a4fedd461148)
* fix libdrm related configure test failurePeter Seiderer2020-10-062-3/+6
| | | | | | | | | | | | | | | Fixes: Project ERROR: Test config.qtwayland_client.tests.dmabuf-server-buffer tries to use undeclared library 'drm' Project ERROR: Test config.qtwayland_compositor.tests.dmabuf-server-buffer tries to use undeclared library 'drm' Project ERROR: Test config.qtwayland_compositor.tests.dmabuf-client-buffer tries to use undeclared library 'drm' Task-number: QTBUG-83303 Change-Id: I3970f4e3855fcfa760493631a14adb6a16950aa9 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Heikki Halmet <heikki.halmet@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit ca63fe81df8ac910f43539719566ed6745700c2b)
* Build with -no-openglEskil Abrahamsen Blomfeldt2020-10-055-16/+23
| | | | | | | | | | | | | | | | | | | | | | Fix build when Qt is built with -no-opengl: 1. Certain includes have to be conditional on QT_CONFIG(opengl), just like the code that uses them. 2. After 585f20dce37c398d8b2e6367008e3329dac79e24, the ClientBufferIntegration is used even with a software-raster compositor, so we need to include this class in the build. 3. The wayland-scanner-generated header files are unconditionally installed through sync.profile and there is no way to exclude it there based on Qt configuration, which causes errors when doing make install. The easy fix for this is to generate the headers even though they will not be used anywhere. Fixes: QTBUG-86291 Change-Id: I671b6345cbc7138309e20fe62e09513f191cd3fe Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io> (cherry picked from commit cab51443ed9246c14255dcb295764f4d15cffaa1) Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Bump versionJani Heikkinen2020-09-281-1/+1
| | | | Change-Id: Id6c96ceb30db5c18b67f9255b5a6e2dbce4b3857
* Fix brcm-egl wayland integrationAaron Dewes2020-09-074-4/+7
| | | | | | | | | | | This amends d58008c431 which changed the number of arguments QWindow takes. The brcm-egl integration was not updated for these changes. Fixes: QTBUG-86109 Change-Id: I14ad2e5d6a62f5f285d01a4fcd47a34bf9495cf9 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 7d1debe004cbf3e0a1561dd234fbedab9b2ab3f9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add changes file for Qt 5.15.1Antti Kokko2020-09-031-0/+36
| | | | | | | | | | | | | | | | | | | + 4cf1769a6b5820f0fb3131ce25af240ee3ff70ae Fix warning about deprecated non-namespaced "hex" + 1a5b7938c1384381a482448cf079bc682395b54b Blacklist animatedCursor in SLES + e18cfb5a129afb3e5e2f429436277ae4dc565e6e Client: Don't send fake SurfaceCreated/Destroyed events + b9c33b13a0cda7c23b4cb129125cef09db5e0c82 Fix warning that the QQmlListProperty constructor is deprecated + 7a74426e10d209f716114c14d658cc6086f9023a Suppress warning about sizeChanged() being deprecated + 5cba07a66225d6ecedb1d9e952d272e236f30aa8 Use WaylandCursorItem over clients, window system cursor otherwise + f5a84adfe9d7a57de31813167acea55adb7f309d brcm-egl: needs wayland-scanner-client-wayland-protocol-include + eaeb21284ab7a3714c735ee8d7c348aa3bc3a07a Add means for forcing non-blocking buffer swap support + ef0eeff3783ff81ed4146a58597beaa9199ea323 Add spaces around '+' + 9380c33a718d475007d3f2955349d336267f274e Bump version + b7b0602d8b17aa7cf6de543a2e872c8edd6bcf18 Fix qt_attribution.json files by replacing newlines with \n escapes Change-Id: Ie86901c27f5d4caf010ada1c4340bcd949ad26de Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit c25f8b8fa4dc6d096382d34849b997ab7fe69c5c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Client: Fix scroll direction with touchpadsDavid Edmundson2020-08-282-4/+37
| | | | | | | | | | | | | | Wayland axis events and QWheelEvents are opposite way rounds. This was handled for the case of discrete events, but not continuous events. This leads to touchpads moving the wrong way round compared to other clients. Change-Id: Iee4f5c620940a491949d4039cb3ac70649d83a2b Task-number: QTBUG-85767 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit e20e1d506d627a53d9d7bf7794b93bf9e8b9bedb) Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Client: Initialize mScale on creation instead of on showDavid Edmundson2020-08-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | At the time of creating a QPlatformWindow we will have a QScreen assigned. It may not be the right one until we get a screen_entered event, pointing instead to the primary screen. When we get the screen_entered event we get the correct scale and call handleWindowScreenChanged. However if it's the same screen as before QWindowPrivate::setTopLevelScreen will no-op because from it's POV the screen hasn't changed at all. This leaves the window having the scale change without any notification. This is notable with QQuickWidget which creates an FBO very early on before the window is shown. This would then use the devicePixelRatio of 1 as it is currently unset and then not get any change notification. Change-Id: Ia7e4072e0bd900abc558bf8930fef4e1e7d2c553 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 5ecf5215737ba3343a10310c0dff08763af737bc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Client: Send subsurface expose event when toplevel is configuredDavid Edmundson2020-08-212-1/+14
| | | | | | | | | | | | | | | | | | If a subsurface is set to be visible on the cilent side before the top level is configured it will do not create an exposeEvent and map a buffer as we fail the check in isExposed() where we check the parent. This is correct behavior. However, when the toplevel receives an applyConfigure from the shell client we need subsurfaces to update accordingly. This fixes a race where subsurfaces are not shown with slow compositors. Change-Id: Icd156e7655d5b25535acc4d2fe77c31e19ebfa32 Fixes: QTBUG-86176 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit e20e1d506d627a53d9d7bf7794b93bf9e8b9bedb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix qt_attribution.json files by replacing newlines with \n escapesSamuel Gaist2020-08-171-19/+6
| | | | | | | | | | | | | | | In their current state theses files contains invalid json. While they are parsed successfully by qtattributionsscanner, they cannot be loaded by libraries such as Python's json module. This patch fixes this. The output generated by qtattributionsscanner stays the same. Change-Id: I661d9b6f8a956a33b301fe58add5910d6de293f1 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 396444d657e44cc9fae03b1dc053d521501cda00) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Bump versionAlexandru Croitor2020-07-301-1/+1
| | | | Change-Id: I8c19c1c44470adeef79b6440a56b8fdd80b518ee
* Add spaces around '+'Jide Zhang2020-06-291-2/+2
| | | | | | | | | | Like most other Qt coding styles, the necessary spaces should be added to the sides of the '+' Change-Id: I6fdbc6b24861e7a75633354a0ded636b1a38cd21 Reviewed-by: Liang Qi <liang.qi@qt.io> (cherry picked from commit 0c72854929aacc82330365d4be00a034197abfc5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add means for forcing non-blocking buffer swap supportOtto Ryynänen2020-06-042-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | In case of a driver that does not properly indicate its capability of supporting non-blocking eglSwapBuffers() call, the need arises to be able to manually force the resolution of that check. New environment variable QT_WAYLAND_FORCE_NONBLOCKING_SWAP_SUPPORT added. If it is defined to 0 (i.e. false), the non-blocking swap support is forced to behave as if the driver had been detected not to be supported. Equally setting it to 1 causes the non-blocking swap support resolution to remain true (default) even if driver reports it does not support it. [ChangeLog][Client] Added support for environment variable QT_WAYLAND_FORCE_NONBLOCKING_SWAP_SUPPORT, which can be used to force the resolution of detecting if EGL driver supports non-blocking eglSwapBuffers call. If you encounter application freezing while waiting indefinitely for a buffer swap, then try setting variable to 0. Task-number: QTBUG-84226 Change-Id: I92dc505d12daf4d78dc18e4f85f3a55ecdf109f3 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 765ad803579c09ea5e827c60efbc89c5ac4fcd42) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* brcm-egl: needs wayland-scanner-client-wayland-protocol-includePeter Seiderer2020-06-031-1/+1
| | | | | | | | | | | | | | | | Fixes: wayland-brcm-client-protocol.h: In function ‘wl_buffer* qt_brcm_create_buffer(qt_brcm*, int32_t, int32_t, wl_array*)’: wayland-brcm-client-protocol.h:115:29: error: ‘wl_buffer_interface’ was not declared in this scope; did you mean ‘qt_brcm_interface’? 115 | QT_BRCM_CREATE_BUFFER, &wl_buffer_interface, NULL, width, height, data); | ^~~~~~~~~~~~~~~~~~~ | qt_brcm_interface Task-number: QTBUG-83305 Change-Id: I16789c5df73e8f17ad98d91cadf2478d39dcba9e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit c65e013527e144028d2d7c03fe1b503fb21aa89d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use WaylandCursorItem over clients, window system cursor otherwiseShawn Rutledge2020-05-294-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pre-existing binding visible: cursorItem.surface != null implied that the surface would often be null; but in practice it was only null at startup. After entering a client window, whatever cursor it set would be retained when the mouse left the window. With client- side decorations, this could go unnoticed, because often the mouse would go across the titlebar or edge decorations on exit, and those would set the cursor back to a standard arrow. But in compositors that implement a lot of Qt Quick content of their own (server-side decorations and/or built-in features such as menus, docks etc.), that content cannot change the cursor that the WaylandCursorItem shows. Instead, we need the underlying window system cursor to be shown whenever the mouse is not hovering over a client window. As a drive-by, remove the inputEventsEnabled: false declarations from the examples, because WaylandCursorItem already does that internally. The pure-qml example is not fixed; it shows the window system cursor only when the compositor is a nested compositor. When it's not nested, you just have to move the mouse slowly enough to avoid "jumping over" the window edges. Or run clients that don't change the cursor. Fixes: QTBUG-84391 Change-Id: I3e677f3e4314d01e5d27d8eea49b4cb315c29d03 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io> (cherry picked from commit 0b253e8c595b596f44959d21124887545ab0b021) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Suppress warning about sizeChanged() being deprecatedThiago Macieira2020-05-271-0/+3
| | | | | | Change-Id: I99ab0f318b1c43b89888fffd160b5ed8661a7a56 (adapted from commit 45ae0527aed387ddc6c6e2af400006ae0a8ea2ec) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix warning that the QQmlListProperty constructor is deprecatedThiago Macieira2020-05-201-2/+2
| | | | | | | | | | | | Use the one that isn't deprecated. qwltexturesharingextension_p.h:145:78: warning: 'QQmlListProperty' is deprecated: Use constructor taking QList pointer, and gain improved performance [-Wdeprecated-declarations] Change-Id: I99ab0f318b1c43b89888fffd160b5b4521f09ca9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit bbf7fb0cf9f6553d17399d91560bdc559799c35b) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Client: Don't send fake SurfaceCreated/Destroyed eventsDavid Edmundson2020-05-183-11/+8
| | | | | | | | | | | | | | | | | | | | | | QPlatformSurface relates to the platform window, not the wl_surface. The events are already emitted by QPlatformWindow on create/destroy. To preserve compatibility for a previous KDE version it was faked to emit the events when the wl_surface is created/hidden to keep behavior. This is no longer necessary, and it has caused multiple errors, the latest being a crash when switching between sub-menus with the Sway compositor. [ChangeLog][QPA plugin] QWaylandWindow no longer sends fake SurfaceCreated/Destroyed events. Use expose events to be notified when a Wayland surface appears. Task-number: QTBUG-76324 Fixes: QTBUG-81952 Change-Id: I2f003bc9da85f032a0053677fd281152099fc9eb Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit cd21404f99b486ff62225699e1a4bdc0d5b3d5c1) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Merge remote-tracking branch 'origin/5.15.0' into 5.15Qt Forward Merge Bot2020-05-146-44/+83
|\ | | | | | | Change-Id: I7341fbfbe7c3eeae44a7fea0bf534fda1180ac51
| * Client: Make frame back callback timeout configurablev5.15.0-rc2v5.15.0-rc1v5.15.05.15.0Eskil Abrahamsen Blomfeldt2020-04-282-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To avoid rendering when windows are minimized, we try to detect this case by checking if 100 ms passes after an update before any frame callback arrives. Wayland expects to drive the rendering through frame callbacks, while Qt expects to be informed when a window is no longer visible and will run a tight, vsynced render loop until it gets the appropriate event. This mismatch causes issues, and the timeout is an attempt to avoid actively rendering to a hidden surface by detecting the missing callbacks. It causes problems on embedded, though, when a device is so busy that the timeout happens even when the window is visible. So we introduce a way to configure the timeout. Either increase its duration if you can guarantee a certain minimum time between events even with high load, or set it to 0 to disable it completely. (at the expense of drawing to invisible windows). Note that this is required for fixing a critical memory leak that happens when using Wayland on embedded. This was mistakenly pushed to 5.12 branch, so it will not be automatically merged upstream. Therefore we have to cherry-pick it. [ChangeLog][Client] Added support for QT_WAYLAND_FRAME_CALLBACK_TIMEOUT environment variable, which can be used to disable or change the internal frame callback timeout. If you see windows that stop rendering or minimize on heavy load, then try setting the variable to 0. Task-number: QTBUG-82914 Reviewed-by: David Edmundson <davidedmundson@kde.org> (cherry picked from commit 0a0e0eb8dca699858435dec5194b0b8b6ebd3cf8) Change-Id: I2aeeecb0fab8f7be9b838e477c88eae22b322d75 Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
| * Fix leaking of callback timersJanne Koskinen2020-04-282-28/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use two timers to create timeout trigger for framecallback. Removes multiple timers approach that is subject to race conditions. This was mistakenly pushed to 5.12 branch which will not be automatically merged upstream, so it has to be cherry-picked. Fixes: QTBUG-82914 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit d18c29931b0bc889fff66bdbde89133544ba0529) Change-Id: I258c0c08f0ac5803192fc0024e40ba72e72c37a8 Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
| * Add changes file for Qt 5.15.0Paul Olav Tvete2020-04-271-0/+48
| | | | | | | | | | | | Change-Id: Iaff95aaf0345067cf8d6dd6592d712062026f4cd Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * Client: Reset wl_egl_window before wl_surfaceDavid Edmundson2020-04-233-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Semantically we want things in this order as wl_egl_window_create takes a reference to the wl_surface. Teardown typically is the opposite of construction. This brings us in line with GTK which also tears down in this order. This fixes a repeatable crash when using Nvidia's EGLStreams and closing a window. Change-Id: I356dfbba9a7315717c8ecdc7023ca7b047622697 Reviewed-by: Frederik Gladhorn <gladhorn@kde.org> Reviewed-by: Johan Helsing <johanhelsing@gmail.com>
| * Merge remote-tracking branch 'origin/5.15' into 5.15.0Qt Forward Merge Bot2020-04-2323-138/+126
| |\ | | | | | | | | | Change-Id: I09245b4d620fdf75cbee512d6c95aab1b1d54f99
| * | Don't force gamma-correction offAllan Sandfeld Jensen2020-04-211-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The freetype backend can now do selective gamma-correcting, but need to have a useful gamma-value. Fixes: QTBUG-83636 Change-Id: I89e99d0a63b75d15d70763ee0c2459caa761beee Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Blacklist animatedCursor in SLESTony Sarajärvi2020-05-111-0/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-78317 Change-Id: Ic2fdbf98dc744c659091f46b33de8e8a34ed8cb1 Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
* | | Fix warning about deprecated non-namespaced "hex"Thiago Macieira2020-05-078-23/+23
| |/ |/| | | | | | | | | | | | | waylandeglstreamintegration.cpp:248:121: warning: 'hex' is deprecated: Use Qt::hex [-Wdeprecated-declarations] Change-Id: I99ab0f318b1c43b89888fffd160b5b6abebe48f2 (effective cherry-pick of 671f73bb1f26cf1d8daa1d33f01fc15fd1e9f62e) Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix build error for -no-openglInho Lee2020-04-232-2/+6
| | | | | | | | | | | | Task-number: QTBUG-83653 Change-Id: I604562fdc96c250eabba08d7fa8a9ec8f21cbbd1 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | Fix GCC 9 warning about redundant std::move useThiago Macieira2020-04-221-1/+1
| | | | | | | | | | | | | | qwaylandcursor.cpp:254:21: warning: redundant move in return statement [-Wredundant-move] Change-Id: I9709abb1c3734e10a7defffd1607e1b3ed279d32 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-04-2115-113/+94
|\ \ | | | | | | | | | Change-Id: I82c07ab72138774a0809bf60f0f3251d32923847
| * \ Merge remote-tracking branch 'origin/5.14.2' into 5.145.14Qt Forward Merge Bot2020-04-2115-113/+94
| |\ \ | | | | | | | | | | | | Change-Id: Id1726d5c5392a6b41ff052f1c82ece2a346d24fa
| | * | Revert "Compositor: Warn and clean up when client hardware buffer ↵v5.14.25.14.2Jani Heikkinen2020-03-2414-113/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | integrations fail" This reverts commit 137966a6293b50f6b248d130a2e36e67df49335e. Reason for revert: QTBUG-82948 Conflicts: src/compositor/compositor_api/qwaylandcompositor.cpp src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp Change-Id: I77e3265c336fbcdf47eb1aa5dc07f31ec41006b5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * | Add changes file for Qt 5.14.2Antti Kokko2020-03-101-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + 67d56a5cba4fdac8205a84bc4e3ca74d5efbb64c Avoid conflicting declaration for egl typedefs + e4e03650dbbc1f98ba90d15364d9c951a7e7506b Bump version Change-Id: I89f3c1477b1d2cea950d2e879d6966d7f337f0bb Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | | Update connects to QSocketNotifier::activatedMårten Nordheim2020-04-215-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The int-overload will in some cases truncate the descriptor. So it's being replaced. On Linux it won't truncate, so the slot can stay as int, but we still update which signal to connect to. Task-number: QTBUG-70441 Change-Id: I516a453c381e8d29464febabfd69c788e58db5fe Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | | Client: Remove recursion in data offer retrievalDavid Edmundson2020-04-161-17/+20
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | A loop functions just as well is more readable and uses less stack memory. Change-Id: I6f6c6b7b8047c42080fb8b9e0bc3eae96f8872ab Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Johan Helsing <johan.helsing@qt.io> (cherry picked from commit 80bf946e78b5b5b4276668249eb1fab769259426) Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Stop using deprecated TouchPoint accessorsShawn Rutledge2020-04-151-2/+2
| | | | | | | | | | | | | | | | | | | | | rect() has been deprecated since 5.6. Change-Id: I7f05ead7d396bb3be222161241fd90684544dd94 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* | | Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta4Qt Forward Merge Bot2020-04-071-0/+4
|\ \ \ | |/ / | | | | | | Change-Id: Ia3e6dc7da90203e9c23cdbe877a7f9d6c68389d3
| * | examples: fix wayland/texture-sharing/custom-compositorPeter Seiderer2020-04-061-0/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: main.cpp:83:33: error: ‘GL_RGBA8’ was not declared in this scope; did you mean ‘GL_RGBA4’? 83 | *glInternalFormat = GL_RGBA8; | ^~~~~~~~ | GL_RGBA4 main.cpp:120:33: error: ‘GL_RGBA8’ was not declared in this scope; did you mean ‘GL_RGBA4’? 120 | *glInternalFormat = GL_RGBA8; | ^~~~~~~~ | GL_RGBA4 Task-number: QTBUG-83304 Change-Id: I0515f3303b08c405d162986e280e9a7bd35e28f7 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Fix invalid json in qt_attribution.jsonv5.15.0-beta3Kai Koehne2020-03-191-1/+1
| | | | | | | | | | | | | | Amends 222455cd643c128 Change-Id: Ifec3dc5d8698229cc0c2f375eebd5a4ebfd62d35 Reviewed-by: Johan Helsing <johanhelsing@gmail.com>