| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
[ChangeLog][QPA plugin] Fixed a bug where window decorations were to small for
for the content when QT_SCALE_FACTOR was set.
Fixes: QTBUG-72993
Change-Id: I1ed26e038c27f7c4454a6bcc04f0849e4af789e7
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Compositor] Add deprecated support for the deprecated wl_scaler.
Some clients are stuck on the unofficial Weston protocol wl_scaler instead of
the standardized and stable wp_viewporter. This implements optional support for
wl_scaler.
This patch has been written to be easily removable in Qt 6, and touches a
minimal amount of other code.
The implementation can be tested using the new manual test compositor:
tests/manual/wlscaler.
Weston 1.11.1 has a demo client named weston-resizor, which can be used to
test. Note that although newer versions of Weston also have weston-resizor,
those versions use wp_viewporter instead of wl_scaler, so you really need
1.11.1 or earlier to test.
Fixes: QTBUG-69635
Change-Id: Id572e28044cd764eaf63b1259a92bc589711c39d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The plugins subdir which includes the platform plugins was not built without
the feature wayland-server. Moves the checks inside the plugins folder to make
it build.
Also disables some tests that won't pass without the compositor API.
Fixes: QTBUG-73169
Change-Id: Ie68badd2ff62ee544c31edaff7c732082e0a4115
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/3rdparty/protocol/qt_attribution.json
src/client/qwaylandintegration.cpp
Change-Id: I475889f2817c7094b68a2948fdd34ddf8b0c486f
|
| |\
| | |
| | |
| | | |
Change-Id: I6ca92b605c55b0c8941d42e40fad624f00a65cd3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QWaylandGlContext::makeCurrent() tries to be smart and only call
eglMakeCurrent() if really needed. This causes problems on NVIDIA where
the call is always needed.
Change-Id: I08d881d69f79a0fd4ea83a65780052e269a566be
Task-number: QTBUG-71697
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When using the threaded render loop rendering the texture we acquired
from the eglstream is done in a different thread. This rendering needs
to be finished before the next acquire call for the eglstream is done
otherwise we might end up rendering a broken (black) frame and see
the client flicker.
To fix this, make sure to send the frame callbacks after the rendering
was completed and not before the rendering starts.
Change-Id: I5a75914d14d2df7fa8b6bbd526f87e3ef6208cd6
Task-number: QTBUG-71697
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This caused regressions because QtQuick depends on swapBuffers for throttling
animations. We probably need to emulate a blocking swapBuffers and continue
after a timeout, but until we have a patch for this, revert this to avoid
releasing a regression.
This brings back the bug with a frozen event loop when a surface is waiting for
a frame callback, but this is preferable to a regression.
This reverts commit 1dc85b95ab0adc1e805d059e2c35c671ef790011.
Fixes: QTBUG-72578
Change-Id: If6435a947aae5e9fd775404649a392bfafe9130a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds a new client buffer integration: wayland-eglstream-controller,
which contains the EGLStream logic from wayland-egl, and additionally
uses NVIDIA's wayland-eglstream-controller protocol to avoid the issue
where the stream is not ready at the time of first buffer attach.
This is not enabled by default. Can be used like this:
QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=wayland-eglstream-controller ./pure-qml
Fixes: QTBUG-71697
Change-Id: I73bb2a8fe9852afe1b5807cbb8c35dc4c7624dad
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I1a23d6ab5a455603990db269446c15a012c0f879
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |/
| |
| |
| |
| |
| |
| |
| | |
Seems like it was just a left behind by mistake in fffa0f76 back in 2011.
Fixes: QTBUG-73070
Change-Id: I3055d2c72cd6752de9917d765684ff049c0dbc6c
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now that we've stopped including the system libwayland protocol headers, i.e.
wayland-client.h and wayland-server.h, it should be safe to update the protocol
definitions to the latest version.
Note that this just updates the protocol definition, the implementations for
the various interfaces are still using the old versions.
Change-Id: I961e762553756e11e4c5b33c74101f0c16661232
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
From the protocol: "When the xdg_positioner object is used to position a child
surface, the rectangle may not extend outside the window geometry of the
child's parent surface."
Adds a warning for both v6 and stable when clients do this.
Change-Id: I575a89785f45c080d488be748ec099569b38ea9b
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I9ae028cda8f8a874eb8379f16a9ef7facf0ed85d
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Adds handler for the new name event and updates tests accordingly.
This means QScreen::name() will now typically return strings like: "VGA-1",
"WL-1", "DP-2", "HDMI-A-1" instead of "Screen25", "Screen26", "Screen27" etc.
Change-Id: I3d5748a2fd0d772e2344ac53f0ed808790a84ba5
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ignore more files resulting from the build process.
Glob all scanner generated files, and add exceptions for pregenerated files.
Change-Id: Ica60951356bdc145ebd66f5e6fc6bf4e23f2aa72
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes warnings like:
QQmlExpression: Expression qrc:/Chrome.qml:13:5 depends on non-NOTIFYable properties:
Chrome_QMLTYPE_28::compositor
[ChangeLog][Compositor] Added a missing change signal for
WaylandQuickItem.compositor.
Change-Id: I9f372c46778d0851a82a8dcbb0751a0e12f825b1
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| | |
Where it makes sense, default init variables to sensible values
Change-Id: Ie2aa6ab79a6a3c8322bb0ff804f340f7ffd1c1d1
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Send window geometry every time the window is resized.
[ChangeLog][QPA plugin] Send window geometry every time the
window is resized.
Change-Id: I8f3824c31455345be2b582e7d3a55077b47851b6
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Send minimum and maximum size hints to compositors.
[ChangeLog][QPA plugin] Implement minimum and maximum size in
the xdg-shell and xdg-shell-v6 shell integrations.
Change-Id: I631c3348c8333d7a246b21228a92c436f5adb5dc
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] A window menu is now shown when the window decorations
are right-clicked (if supported by the compositor).
Change-Id: I13bf0c8cd91a6e5a3b44e47114dfdc2ff0e97f3a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylandinputdevice.cpp
Change-Id: I4f985d6e47b4199a940ff1cd40e65165c28e49b2
|
| |
| |
| |
| |
| |
| | |
Fixes: QTBUG-72751
Change-Id: I6018a34d4a4cfcbdef5d6cd05d2d4ef12846efea
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] Fixed a bug where surface damage for window decorations
was outside the surface.
Fixes: QTBUG-72818
Change-Id: I32d00174f1c308952a98bdb55731eb77be54f331
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some compositors fail to send wl_pointer.enter events before button and axis
events. This led to nullptr dereference crashes.
[ChangeLog][QPA plugin] Fixed a crash caused by compositors sending incorrect
pointer events.
Fix it by adding nullptr checks before trying to access the pointer focus in
case the compositor didn't send enter, or if something deleted the surface
(it's a QPointer).
This means we are now silently ignoring events for misbehaving compositors
(which is probably not optimal), but I don't see how we can easily distinguish
between a missing enter and a deleted QWaylandSurface without adding more
bookkeeping overhead.
Ditto for wl_keyboard.
Fixes: QTBUG-72235
Change-Id: I4bfaa3da4ebae37b059e1e450975566559edf40b
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] Fixed a protocol error that used to happen when closing
a menu with an active tooltip.
Fixes: QTBUG-71734
Change-Id: I784fef08494fabaa4debea11f51116cf9de1f86e
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Compositor] Added support for the viewporter Wayland extension.
Change-Id: I1d33652fab6ff18da4ae1ae3497f0ca43517420a
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
README
src/hardwareintegration/client/xcomposite_share/xcomposite_share.pri
Change-Id: I7cbbf39916821f0f1749e3ccab3151f68f4aa1ac
|
| |
| |
| |
| |
| |
| |
| |
| | |
Adds a test for customSurface which crashed without the fix.
Fixes: QTBUG-72688
Change-Id: I30c50e474379c61b90b2dd294eae9a7c88c105a2
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Wayland plugin now takes full control over delivering update request and
implement frame callbacks for both egl and shm.
Fixes two bugs:
[ChangeLog][Client] The non-blocking version of eglSwapBuffers is now used.
This fixed a bug where minimized windows would block the event loop.
Also, when we relied on the QPA version of requestUpdate, we would sometimes
deliver one update request while we were waiting for a frame callback. When we
implement the fallback timer ourselves we can make sure we only deliver the
fallback if there are no pending frame callbacks.
Fixes: QTBUG-69077
Change-Id: I2d3a6896c32e63d8520b57448a3601a817816a91
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Fixing build issue now that XComposite no longer pulls in X11.
Change-Id: I4c5e77188cf167716aa64f2575d70ac2ca37608b
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some drivers may return wrong size from wl_egl_window_get_attached_size
and can therefore ignore wl_egl_window_resize calls. This patch
introduces a new env variable QT_WAYLAND_DISABLE_RESIZECHECK to skip
the size check and to force resizing of egl window on create and resize
events.
Task-number: QTBUG-70079
Change-Id: I9be97480088c63ae0a6dc3d1d1e026b0683a627e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| | |
Fixes: QTBUG-72288
Change-Id: I61fde92ea4275febbb4ec8c067280a4ca570d7c1
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The xkbcommon configure logic was refactored in
qtbase/c3a963da1f9e7b1d37e63eedded61da4fbdaaf9a.
For more details see the relevant commit.
Change-Id: Ic1aa26846ab8266c589f6e92dc8b81aba36df58a
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
The variable actually is used.
Change-Id: I758c35e49b5c9f861ae40c34dcd4fa60d85361ae
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Compositor] Added support for linux-dmabuf-unstable-v1.
Implement client side DMABUF buffer sharing support by supporting the
linux-dmabuf-unstable-v1 (version 3) protocol. For enabling DMABUF,
set the following environment variables for the compositor:
QT_QPA_PLATFORM=eglfs
QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=linux-dmabuf-unstable-v1
The current implementation supports the following DRM buffer formats:
- RGB and RGBA
- YUYV
This implementation requires Mesa with the following patch applied.
Otherwise, textures are not updated. The patch is contained in Mesa 18.1.5.
See https://patchwork.freedesktop.org/patch/238080/
Fixes: QTBUG-66288
Fixes: QTBUG-67845
Change-Id: Id4d90337dbe0be956b0f964426ebed3f281c6c30
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the previous wording it was a bit unclear whether this was a client
problem or not.
Also adds logging category.
Change-Id: I61084c0b2c7f17408575d1d4b6cc7809c4c6d99d
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/compositor/compositor_api/qwaylandquickitem.cpp
Change-Id: I5e01a0731e880e3eb8eab349043756a5993e3050
|
| |
| |
| |
| |
| |
| |
| |
| | |
QList is not included when built with QT_NO_QOBJECT defined.
Change-Id: Iaf8874583e81b08a49ec246a5de0b62803c8ed7e
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| |\
| | |
| | |
| | | |
Change-Id: Ica38060e6d624a7534660eabec604f6795970c95
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix regression introduced in 297bcd005c4205f69e1bf9e9dc565ab757cf0bac
Fixes: QTBUG-71643
Change-Id: I769518a9ca13fcd13ea277c7fa8ac1885ca123ba
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Avoids printing deprecation warnings for shells that are available by
default but not actually used. In particular, avoids warning about
wl-shell when using ivi-shell.
Change-Id: Id075e97572e6ec876ad24f369808c61a479e9b07
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before 88a0246a46c30e08e9730d16cf8739773447d058 we would always call
QWaylandWindow::applyConfigure which in turn sends an expose event.
Without that clients do not commit their initial buffer.
This adds back the expose event on the first received configure.
Fixes: QTBUG-71509
Change-Id: Ica39bb23245957948e1e1f75caf4f16f7b086ef7
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
GCC 4.8 doesn't like QPointers in signal connections.
Also, Default Member Initializers for aggregates
are C++14, so we need to write a constructor to make
a class with DMIs work in C++11.
Change-Id: I567c60a8081fa2f268517ec747bd6534674bcce5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I29192963efa6753a4cf222a3aec92ab400deb2f0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The QByteArray one seems like an actual bug.
Change-Id: I11de9c7a10cdd3e70f9f6af18bcce3bd3bf54320
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Build was failing on Archlinux
Change-Id: I3cf9a367a099cd365a2de6579c7ef5585cd9be56
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I224c25d20f58723d085e4ee340744d1c7af67933
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ibeacc5218acbd6003b85811a175ed00fd62a4b51
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We can't set the cursor role until we have gotten an enter event, so
wait with creating the surface until we want to set the role for the
first time.
Makes testing easier since we don't have to deal with role-less
surfaces that may or may not be the cursor surface.
Change-Id: I99803d9b0b5933a271b6b1d56f74d4ff79813e40
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|