summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update dependencies on 'dev' in qt/qtwaylandv6.0.0-beta3Qt Submodule Update Bot2020-11-021-2/+2
| | | | | Change-Id: I65c2c15f6a7c55192f9e6caaddf520811172ae8b Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-11-011-2/+2
| | | | | Change-Id: Ic2a11b16dfbeab60d022839b9149270de9cd5e35 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-311-2/+2
| | | | | Change-Id: I9e77f82f60a3a800a6b13299736a118025cf1f35 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-311-2/+2
| | | | | Change-Id: Ie64024ef27c985f9e1f1d78dfa162031195e9c5c Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Stop depending on private API in user-facing cmake codeEskil Abrahamsen Blomfeldt2020-10-302-2/+10
| | | | | | | | | | | | | | | The qt_parse_all_arguments() macro is not available as part of the public API, but it was used to generate code for extensions, which users need to be able to do. The result was that top-level builds would work because they could access the functions, but when our examples were built as stand-alone, it failed to find the function. The fix is just to copy-paste the contents of the macro. Fixes: QTBUG-87445 Fixes: QTBUG-87446 Change-Id: Id5a583358be4163d3cdab72d7c23804f66f45500 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-291-2/+2
| | | | | Change-Id: I5d676969e0f2728a5c2af28f9dd062ab7a5c2da7 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Doc: List correct license information for the modulePaul Wicking2020-10-281-3/+7
| | | | | | | | Fixes: QTBUG-87959 Pick-to: 5.15 Change-Id: I1c5cd15e0dd6f81e87690e54cd4e526ce668a8aa Reviewed-by: Tino Pyssysalo <tino.pyssysalo@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Replace remaining LGPLv3 headers in QtWaylandCompositor with GPLv3Kai Koehne2020-10-2719-323/+190
| | | | | | | | | | | | Use same header as for the rest of the module. This was forgotten in commit bb1b46a4862e0a5 Pick-to: 5.15 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>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-271-2/+2
| | | | | Change-Id: Idd3bf907b532b8da093d4007205ce923cade029e Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* CMake: Regenerate examples to set the WIN32_EXECUTABLE propertyAlexandru Croitor2020-10-2618-0/+72
| | | | | | | | As well as the MACOSX_BUNDLE properties as necessary. Task-number: QTBUG-87664 Change-Id: I2e238dff7bdda6c47dfbe28e2a560ee4c25f3d02 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Add versionless function namesAlexandru Croitor2020-10-262-0/+10
| | | | | | Task-number: QTBUG-86827 Change-Id: I4b1931ca63c3d589c8167d04a1cd3712f8ba30d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Make qtwaylandscanner depend on QtCore onlyAlexandru Croitor2020-10-263-4/+1
| | | | | | | | | | It doesn't use any Gui classes at the moment. It also ensures a target dependency cycle is not created on the default_qpa_plugins custom target when the QT_QPA_DEFAULT_PLATFORM cache var is set to 'wayland'. Change-Id: I8958e5b993ad40294abf49f633d1ef31b6c633bb Reviewed-by: David Edmundson <davidedmundson@kde.org>
* 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>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-221-2/+2
| | | | | Change-Id: Ifb06103c0137c3c65bb11552bb098f7b38084acf Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandv6.0.0-beta2Qt Submodule Update Bot2020-10-211-2/+2
| | | | | Change-Id: Ib6a10e04f109dbecbad874bb4948d9a33ca27f79 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix loading EGLStream client buffer integration in static buildEskil Abrahamsen Blomfeldt2020-10-201-1/+1
| | | | | | | | | The plugin name in the .pro file was not matching the one in the code, so we would get missing symbols when trying to link a static build against the plugin. Change-Id: Iecc491a62f20b09ee4dfecd42a5f8d1a57211fa3 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Issue set_opaque_region on opaque surfacesAleix Pol2020-10-202-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. Pick-to: 5.15 Change-Id: I4f7562467449eac7931f3011d4b835934212adad Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Address WlCompositor::compositor_create_region in testsAleix Pol2020-10-201-3/+2
| | | | | | | | It was not properly marked as override and would not get called. Pick-to: 5.15 Change-Id: Ib80c916c65534ddff918ac06bbe52d88e19d9ff4 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-201-2/+2
| | | | | Change-Id: I31627eafbf3ca7f7f26dc9f2a57a63e34ccfdf39 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* CMake: Regenerate examples to use qt_add_executableAlexandru Croitor2020-10-2018-18/+18
| | | | | | Task-number: QTBUG-87661 Change-Id: I640a3c4281040309a6feb3585c4134190627d17d Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-201-2/+2
| | | | | Change-Id: If6b7b623e3d0876515aeaa71986b895373e1503c Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_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 Pick-to: 5.15 Change-Id: Ia09c0cbc1f0997552bd253e79d6715ebcafee0a1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-191-2/+2
| | | | | Change-Id: Ia8b39f784d4f98e7a78208967ceda340cea0240b Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandv6.0.0-beta1Qt Submodule Update Bot2020-10-161-2/+2
| | | | | Change-Id: I913ceddb3d1944ebfc579c53daa84393bcc2b1b7 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Implement CoreProtocol::compositor_create_regionAleix Pol2020-10-151-0/+21
| | | | | | | | Otherwise tests using it crash. Pick-to: 5.15 Change-Id: Id2ce98ed7c975144728be7566e20b6ea08fa9150 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-151-2/+2
| | | | | Change-Id: I20de5328f5d9e3f1feeb86133648a81a32eecd8a Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-151-2/+2
| | | | | Change-Id: I238fc579acf11d4d4980381d836db59abc712338 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-131-2/+2
| | | | | Change-Id: Ibfc493e74c56a7e1bd327a2afbf18efe3613f48a Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-131-2/+2
| | | | | Change-Id: I49b12dd178666124c08e08f008d0139dc7d5e279 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_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. Pick-to: 5.15 Change-Id: I0532f783ae53cc7861e0f08433dc2407aa9c7953 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* 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. Pick-to: 5.15 Change-Id: I82dab3b7eae8c282fdbad689af49622350b6c867 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-121-2/+2
| | | | | Change-Id: Iba5c8dc8da48d3c1205994656585250b837a32b9 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Adapt to platform API renameTor Arne Vestbø2020-10-123-4/+4
| | | | | | Fixes: QTBUG-87313 Change-Id: I99c0b08d908cffe271b555e0696af5fba3fb8780 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Implement MockRegionAleix Pol2020-10-0913-3/+144
| | | | | | | | | | If we don't mock regions, we get a crash every time that a client calls createRegion. So far regions are untested. Pick-to: 5.15 Change-Id: I83f20b879ece5cefcf2039d369034516df6a6a62 Reviewed-by: David Edmundson <davidedmundson@kde.org>
* Fix race condition on frame callbackPaul Olav Tvete2020-10-075-28/+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 Pick-to: 5.15 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>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-10-051-2/+2
| | | | | Change-Id: I55c3e9898d8e10d931c767c34b4cc13ac4e9855c Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix examples to include IviApplication importEskil Abrahamsen Blomfeldt2020-10-053-0/+3
| | | | | | | | | | | In 3a8449ff0a821ab072f66ea43fed6925090fc4d8, we added support for IviShell in the compositor examples, but the change hadn't been updated after the types were moved into a separate import, so all examples fail on start-up. Change-Id: I08a88b775338471457060c8e45718c8da3f1e9ab Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Change WaylandResource -> waylandresourceEskil Abrahamsen Blomfeldt2020-10-051-1/+1
| | | | | | | | | | | | | This is an uncreatable type which is used for parameters to signals. Since it is a value-type, it should be lowercase by convention, and the QML engine recently began enforcing this. [ChangeLog][QtWaylandCompositor] Changed the name of WaylandResource to waylandresource as per QML convention. Change-Id: I342ca70192d6276a6d8ac72b8e9f7e46af41ca2c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Build with -no-openglEskil Abrahamsen Blomfeldt2020-10-027-52/+30
| | | | | | | | | | | | | | | | | | | | | 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 Pick-to: 5.15 Change-Id: I671b6345cbc7138309e20fe62e09513f191cd3fe Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* Re-enable tst_nooutputv6.0.0-alpha1Eskil Abrahamsen Blomfeldt2020-10-011-1/+0
| | | | | | | | | The dependencies update has gone through, so the test should now pass again. Fixes: QTBUG-86698 Change-Id: I23babc4a5c3cae0bff5ba371e9703c976536f4ec Reviewed-by: David Edmundson <davidedmundson@kde.org>
* CMake: Disable usage of CMake API compatibility wrappersAlexandru Croitor2020-10-011-0/+3
| | | | | | | | | Setting the QT_NO_INTERNAL_COMPATIBILITY_FUNCTIONS variable in the project ensures we ported away from old API calls. Task-number: QTBUG-86815 Change-Id: I1c11a0b2c46eb1967419233ed579fb58f1781cea Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Regenerate projects to use new qt_internal_ APIAlexandru Croitor2020-10-0156-96/+96
| | | | | | | | Modify special case locations to use the new API as well. Task-number: QTBUG-86815 Change-Id: I2ba7753b64f3d88332e919dc90c98e252e20dd98 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Update dependencies on 'dev' in qt/qtwaylandQt Submodule Update Bot2020-09-301-2/+2
| | | | | Change-Id: Icd0a87ea48356dcc9148c5c1b03eb7eeacbbd91b Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Fix compilation after mime data API changesEskil Abrahamsen Blomfeldt2020-09-302-2/+2
| | | | | | | | | Follows 848927b688d4709d0b71590518e2c32fe7866147 in qtbase, where the signature of retrieveData_sys() was changed. Fixes: QTBUG-87003 Change-Id: I8b88c8f9547e599328f40345a9fbf57c07ec31a4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Doc: Add Qt 6 changes filePaul Wicking2020-09-242-0/+47
| | | | | | Task-number: QTBUG-84051 Change-Id: Ia7b75e75498722c251e1a712143daa71044e7f71 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* fix libdrm related configure test failurePeter Seiderer2020-09-242-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>
* Add iviShell support to example compositorsPaul Olav Tvete2020-09-233-0/+11
| | | | | | | | | | Now that XdgShellV6 is removed, some older Wayland applications (such as weston-terminal and weston-simple-egl in Ubuntu 18.04) would assert when run against our example compositors. Adding IviApplications let them run (although with reduced functionality). Change-Id: If28513f23d4cb362608119db8233eb2e47f794bb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* CMake: Regenerate projects before API changeAlexandru Croitor2020-09-232-72/+57
| | | | | | | | | | Also adjust some incosistency introduced by c8ec83b2851526530937ff1189575ad7b339d903 Task-number: QTBUG-86815 Change-Id: I87a52b34c8dad5af2258bf923ff4db99d64110ed Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Re-visit the xkbcommon dependencyJoerg Bornemann2020-09-226-6/+28
| | | | | | | | | | | | | | | | | | QtGui doesn't expose xkbcommon as public dependency anymore. QtGuiPrivate, however does now, but only in the CMake build. Fix the qmake build by adding an explicit xkbcommon dependency to client.pro, like it's done for the compositor. Commented out the explicit xkbcommon dependencies in the CMakeLists.txt files of client and compositor. Mark the XKB packages as optional, such that qtwayland can actually be built if the feature xkbcommon is OFF and no libxkbcommon-dev package is installed. Change-Id: Ia1c7a8333dc8a93b4924e03f7f2284a709a9d65b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Record QtWaylandScannerTools as a tools package dependencyAlexandru Croitor2020-09-172-2/+2
| | | | | | | | | | | | | | | The change uses new API introduced in qtbase, to register QtWaylandScannerTools as a tools package dependency, ensuring that the proper host prefix manipulation is done to find the host package. This fixes the QEMU CI standalone test building by using the host qtwaylandscanner. Task-number: QTBUG-83968 Change-Id: I67facb32e1a1e33197090fde324755c0fc880684 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io>