summaryrefslogtreecommitdiffstats
path: root/src/hardwareintegration
Commit message (Collapse)AuthorAgeFilesLines
* Adapt to platform API renameTor Arne Vestbø2020-10-122-2/+2
| | | | | | Fixes: QTBUG-87313 Change-Id: I99c0b08d908cffe271b555e0696af5fba3fb8780 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* 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. Pick-to: 5.15 Fixes: QTBUG-86109 Change-Id: I14ad2e5d6a62f5f285d01a4fcd47a34bf9495cf9 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Support multiple buffer integrationsPaul Olav Tvete2020-08-2610-18/+27
| | | | | | | | | | | | | Allow compositors to support more than one type of hardware client buffer integration. [ChangeLog][QtWaylandCompositor] QtWaylandCompositor now supports multiple client buffer integrations. QT_WAYLAND_CLIENT_BUFFER_INTEGRATION will now accept a semicolon-separated list. Fixes: QTBUG-68846 Change-Id: Iff1fa0a45b01f6a45dd744c37a89bac7d5e70658 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Compile against latest qtbaseLars Knoll2020-08-244-0/+4
| | | | | Change-Id: I6111cd2e280a7cff610d3f89d51fb3964d61b51f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Update to match qtbase changes to platform headersTor Arne Vestbø2020-08-192-10/+22
| | | | | Change-Id: I8e39d87361728c81b526f1ad89b45136500c9913 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Make QWaylandGLContext a QEGLPlatformContextMichal Klocek2020-08-052-171/+47
| | | | | | | | | | | Since 6ff7947 we have a new way of querying for native context. Rewrite some methods to reuse base implementation. [ChangeLog][Client] Using EGL_KHR_surfaceless_context when querying the surface format, if not supported falling back to temporary wayland surface. Change-Id: I276e4b1108a703fb3cf1587db007537e3f36b2fe Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move window decoration check out of qwaylandglcontextMichal Klocek2020-08-053-7/+6
| | | | | | | | QWaylandGLContext is usead only by wayland-egl. Move window decoration check to client buffer platform integration. Change-Id: If26811cd017066afa2508e2f33b33a0fa0b690b3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Adapt to recent qtbase changes and update dependenciesFriedemann Kleint2020-07-2919-26/+15
| | | | | | | | | - moving linuxaccessibility/xkbcommon/eglsupport/glxsupport to QtGui - event refactoring Task-number: QTBUG-83255 Change-Id: Ic82ee6ef5652413781468edb58c601ee7dce2e3b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use QList instead of QVectorJarek Kobus2020-06-0815-37/+37
| | | | | | Task-number: QTBUG-84469 Change-Id: I4bc7b2eb2913fc828f09f96e21480b76cabf8656 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* 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 Pick-to: 5.15 Pick-to: 5.12 Change-Id: I92dc505d12daf4d78dc18e4f85f3a55ecdf109f3 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* 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 Pick-to: 5.15 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Adapt to removal of vulkan_support in qtbaseAlexandru Croitor2020-05-262-3/+2
| | | | | | | | | QtVulkanSupport module has been removed and its content was merged into QtGui and QtOpenGL in 7a1650e34331f87bab5a9372087d2a1135f9f63a in qtbase. Change-Id: I33b567208aebfeb15350ea088cb7fcd092e2a48a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Add missing overrideAlexander Volkov2020-05-211-1/+1
| | | | | Change-Id: Id8b900b9f7b9442423cc7dab60dced9290f207dd Reviewed-by: Johan Helsing <johanhelsing@gmail.com>
* Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-05-142-8/+0
|\ | | | | | | Change-Id: Ie2b6b40e3ad1e753f051a12c0296206cc884352b
| * Merge remote-tracking branch 'origin/5.15.0' into 5.15Qt Forward Merge Bot2020-05-142-8/+0
| |\ | | | | | | | | | Change-Id: I7341fbfbe7c3eeae44a7fea0bf534fda1180ac51
| | * Client: Reset wl_egl_window before wl_surfaceDavid Edmundson2020-04-232-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | 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>
* | Merge remote-tracking branch 'origin/5.15' into devLiang Qi2020-04-2915-92/+70
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/client/xdgoutput/tst_xdgoutput.cpp Regenerated CMake projects. Removed duplicate wayland source in tests/auto/client/xdgoutput/xdgoutput.pro. It's still referenced via the included shared.pri file. Regenerated the CMake project to adapt to that. Otherwise the CMake project fails to configure due to duplicate rules with a error like the one below CMake Error at src/compositor/Qt6WaylandCompositorMacros.cmake:13 (add_custom_command): Attempt to add a custom rule to output tests/auto/client/xdgoutput/wayland-xdg-output-unstable-v1-server-protocol.h.rule Also use a workaround fix for configuring CMake standalone tests due to regression introduced by dd7e40b1086020f6a054957f4972720cd684 in qtbase. Change-Id: Ib364b851a1fa828c153efbf8653c9e4ef5e618cd
| * Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-04-2112-89/+67
| |\ | | | | | | | | | Change-Id: I82c07ab72138774a0809bf60f0f3251d32923847
| | * Revert "Compositor: Warn and clean up when client hardware buffer ↵v5.14.2Jani Heikkinen2020-03-2412-89/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Test the EGL wayland platform extensions before using themSamuli Piippo2020-03-053-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The Khronos headers may be recent enough to have the ifdefs but implementation might still be missing on some platforms. Don't use the extensions unless the configure test passes. Change-Id: I23129115729567fa92bc23da099d27df598fc206 Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
* | | Replace QT_OPENGL_ES_2 with QT_CONFIGEskil Abrahamsen Blomfeldt2020-04-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | QT_CONFIG is the new and robust way of checking the build configuration of Qt. Task-number: QTBUG-83467 Change-Id: Ia58b308b9b8a242df479cbd01d088204eed73a75 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Merge remote-tracking branch 'origin/wip/cmake' into devAlexandru Croitor2020-04-012-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adjusted xcomposite-glx to link against X11. Added latest Coin instructions, plus some additional logic to skip some platforms where building wayland does not make sense. Otherwise Coin will fail on those platforms when trying to extract artifacts that don't exist. Conflicts: coin/module_config.yaml src/hardwareintegration/compositor/xcomposite-glx/xcomposite-glx.pri src/plugins/hardwareintegration/compositor/xcomposite-glx/CMakeLists.txt Change-Id: I2383b0826ece841f3862f396516f402390aa42be
| * \ \ Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2020-03-2624-28/+46
| |\ \ \ | |/ / / |/| | | | | | | Change-Id: Ia76896a4d06240ccc3d95ba478b6ce273c7a0be2
| * | | Merge remote-tracking branch 'origin/5.15' into wip/cmakeJohan Klokkhammer Helsing2019-11-0737-669/+336
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp Change-Id: I6c6e05f76abcea8a315fe3ba471c4aa2139127b5
| * | | | Configure: Remove libs.glxJohan Klokkhammer Helsing2019-09-252-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libs.glx just checks if we can can link against x11 and gl, this should already be covered by features.xlib and features.opengl. Also, it probably makes sense to not build these plugins if Qt is configured with no-feature-xlib. Task-number: QTBUG-78177 Change-Id: I56ccdc80a4601ccbf03cc5e65abe0adb3a579f99 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | | Fix build after QOpenGLShaderProgram library moveSimon Hausmann2020-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The class is now in QtOpenGL. Change-Id: Ifef8dfa753fb5d337d516a33fc49e610c7c8c6eb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | Fix build: Add dependency on OpenGL moduleJohan Klokkhammer Helsing2020-01-3017-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several of the QOpenGL* classes we depend on has moved to QtOpenGL, add the dependency and fix the include paths. Task-number: QTBUG-74409 Change-Id: Iab7949dd67befaa71cf2cfa041771e93f4e47160 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-01-251-0/+2
|\ \ \ \ \ | | |_|/ / | |/| | | | | | | | Change-Id: I62f1cbbf543021a9569e4d1e8c4f9e7c554e77f3
| * | | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-211-0/+2
| |\ \ \ \ | | | |_|/ | | |/| | | | | | | Change-Id: I4e205974d29aef0443ad7aecdb43d5ab3ee1ec64
| | * | | Avoid conflicting declaration for egl typedefsSamuli Piippo2020-01-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The EGL typedefs may have alternative declaration on some platforms, such as NVIDIA, which cause build errors. Add guards around the typedefs to avoid re-declaration. Task-number: QTBUG-79709 Change-Id: I14f09c94e159ef51dd858f0877fe610ce6f582d4 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-01-183-1/+13
|\| | | | | | | | | | | | | | | | | | | Change-Id: Ibd911372386f9f5fddb13afa05b84af6fe422fdd
| * | | | Enable QtWayland for QNXJames McDonnell2020-01-133-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make EGL 1.5 with EGL_PLATFORM_WAYLAND_EXT a requirement for QNX and add some EGL 1.5 code alternatives. Avoids the need to deal with incompatibility problems between the QNX native display/window type and Wayland display/window type. Change-Id: Ib26a020e1f8c7f570c6af08697d8c8153c887294 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Dan Cape <dcape@qnx.com>
* | | | | Merge remote-tracking branch 'qt/5.15' into devPaul Olav Tvete2020-01-099-9/+13
|\| | | | | | | | | | | | | | | | | | | Change-Id: Id0bb84667482232cb648f4984e9f9e2ea4c360c6
| * | | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-102-1/+5
| |\| | | | | | | | | | | | | | | | | | Change-Id: I1f9418f4f5783291286417f6faf6277e0679007c
| | * | | Client: really use OpenGL ES 2 API for decoration blitterPeter Seiderer2019-12-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Really use (as the comment states) the OpenGL ES 2 API for the decoration blitter. Task-number: QTBUG-80356 Change-Id: I4c923343e721a824521fb9b2b36be5d2de984325 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io>
| | * | | Fix compilation of linuxdmabuf compositor pluginJohan Klokkhammer Helsing2019-12-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mesa's eglext.h no longer includes eglmesaext.h, so copy over the typedefs we need. Fixes: QTBUG-79709 Change-Id: I3190ef56e0e162636efea440dff7e760cf11fcd0 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * | | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-032-2/+2
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compositor/configure.json Change-Id: Id608424a63a4bcef4adb3f66d55a3cc32c86f2a2
| | * | | Fix detection of linux-dmabufJohan Klokkhammer Helsing2019-11-262-2/+2
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On some systems drm_fourcc.h is not in /usr/include, but in /usr/include/libdrm, and that path can be found through pkg-config. This is already done with the drm lib in qtbase/src/configure.json so this just tells the test (and the plugins) to use the include paths for the existing "drm" lib. Fixes: QTBUG-80075 Change-Id: I84c8c1008724b49b6bedb4fc3ef398e292f1c6c7 Reviewed-by: Andreas Cord-Landwehr <cordlandwehr@kde.org> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * / | Client: Support running with no screensJohan Klokkhammer Helsing2019-11-125-6/+6
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QPA plugin] The QPA plugin now supports running with no screens attached. This is handled by adding a fake screen when the last screen is disconnected, similarly to what the other QPA plugins do. Fixes: QTBUG-79111 Change-Id: I4a0e023ae784217dd030f0c62f12487fdff4825c Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Merge remote-tracking branch 'origin/5.15' into devSimon Hausmann2019-10-3122-114/+151
|\| | | | | | | | | | | | | | | | | | | | Conflicts: src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp Change-Id: I42733f5ad9429a5d2ff6c804eb1f3f2d50f50811
| * | Compositor: Use logging category in egl client integrationJohan Klokkhammer Helsing2019-10-301-16/+29
| | | | | | | | | | | | | | | Change-Id: I5ad3663b3710b939f08798abad3bc985ab460e88 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * | Compositor: Warn and clean up when server buffer integrations failJohan Klokkhammer Helsing2019-10-2810-29/+34
| | | | | | | | | | | | | | | | | | | | | | | | Makes it consistent with how client buffer integrations work. Also doesn't leave partially initialized integration around for the compositor to use. Change-Id: I6ff898639b958f62330879a2eff1acbc7e5cdb1f Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * | Remove unused variable WaylandEglClientBufferIntegrationPrivate::validJohan Klokkhammer Helsing2019-10-281-2/+0
| | | | | | | | | | | | | | | Change-Id: I489267d8378cbcaf7ae7cd8eee48d4e2a71ca91a Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
| * | Compositor: Warn and clean up when client hardware buffer integrations failJohan Klokkhammer Helsing2019-10-2512-67/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've recently seen a number of performance issues on bugreports and on the mailing list. The problem in many of these cases, is that no client hardware buffer plugin is used. I.e. it's just due to our fallback to CPU buffers when the compositor is configured incorrectly or run in a setup where hardware buffers are not available. This patch detects when client hardware buffer plugins fail and prints a warning explaining the issue to the console. This will make it easier to differentiate between expected and unexpected drops in performance and will hopefully also guide users in the right direction to fix their setup (set the right environment variables and perhaps recompile Qt with a supported OpenGL version). QtWayland::ClientBufferIntegration now returns a bool indicating success or failure. The integration is now destroyed immediately if it failed, instead of leaving it lying around until the compositor shuts down. There has been some slight changes in the xcomposite plugins as well, turning some qFatals into qCWarnings and failing more softly (with the warning mentioned above). Task-number: QTBUG-78483 Change-Id: I55293dbb3cf72768f3982c075fcf63e79329ada1 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-10-2637-555/+185
|\| | | |/ |/| | | Change-Id: I25e65c392612cc1c379bd408adb60559b1d8a498
| * Update QtWaylandCompositor license headers to GPL 3v5.14.0-beta2Paul Olav Tvete2019-10-1637-555/+185
| | | | | | | | | | | | | | | | | | | | | | | | As announced on the mailing list, QtWaylandCompositor licensing is changing to GPLv3: https://lists.qt-project.org/pipermail/development/2019-October/037666.html Change-Id: I4bdc1aa5914e53ac760acc2b6453355af636baa9 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io> Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/dev' into wip/qt6Simon Hausmann2019-09-161-16/+19
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ifb5723b11bf5fe5bb3583018f496beba17c6bf40
| * Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-08-131-16/+19
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/client/qwaylandinputdevice.cpp Change-Id: I20fb102162351b714855258175ed00437e55f072
| | * Fix GCC 4.8 buildVille Voutilainen2019-08-091-16/+19
| | | | | | | | | | | | | | | Change-Id: I0a193ceaa1549c08acad02b59db62ae313d6b334 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>