| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A cases reported that client windows try to make decorations
when their shell surfaces are null.
Since the surfaces' requests for decorations should be applied,
those case will be failed to create decorations.
This patch was modified by Paul Tvete's advice.
(paul.tvete@qt.io)
Task-number: QTBUG-97608
Change-Id: I2563dbd73b730f81cc411857af07da99ceb2d063
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 246f0c0bc01dd059bf8165e81f7b49efa36e4d95)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Correctly check for the flags in the modifiers map when we get it from
the compositor, instead of modifying the map in the for loop conditional.
[ChangeLog][QWaylandInputContext] Fix modifiers map decoding
logic when receiving the map from the compositor.
Fixes: QTBUG-97094
Change-Id: Idad19f7b1f4560d40abbb5b31032360cfe915261
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit baa7ef511bf40280448e5f0e721ddd6da3301f3b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
| |
Fixes: QTBUG-87624
Change-Id: I1b9443df091878abcd4fbe9c55927cb819aebd59
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit c64c5d3849b40617e1de0295f8690f354cab2b3a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
| |
Change-Id: I4a6354892203b37f341fb89069ebc2b572595373
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the code path which uses QWaylandBufferMaterial, the buffer
could potentially be deleted before the material had been
updated, which could cause issues if the render thread was
currently using the textures.
In the default code path this was handled by keeping a reference
to the buffer in the texture provider, but in the alternative YUV
format code path, we did not increase the reference count of the
buffer, so it would be deleted immediately when it was replaced
rather than wait for the sync with the render thread.
Task-number: QTBUG-95715
Change-Id: Ic6038ea8281e2a2e292d12150d1fffedb5c3b76e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 6b9a27d77e226a3d0ce9fa9b4974f70c9ef4a30e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some EGL image formats (the YUV formats specifically) cannot
be handled by the built-in node types in the Qt Quick scene
graph and use a custom material and geometry setup.
In this setup, the wp_viewporter source rectangle was ignored
and the entire texture was always sampled. This caused problems
e.g. for video frames supplied by GStreamer.
[ChangeLog][Extensions] Support for wp_viewporter extended to
cover less common buffer formats.
Pick-to: 5.15 6.1 6.2
Task-number: QTBUG-95464
Change-Id: I2504c6cd7d82e17d28e930a59d9ec71b25779acb
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 060024e2fc9335d4fc999253c9d6ed560c7ffb0c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The documentation for viewporter says: "if the source
rectangle is partially or completely outside of the
non-NULL wl_buffer, then the out_of_buffer protocol error
is raised when the surface state is applied. A NULL
wl_buffer does not raise the out_of_buffer error."
The intention here is that the viewport can be
initialized before the buffer is actually attached to
the surface, and the parameters will be kept for
later.
We simply skip the error condition when there is no
buffer.
[ChangeLog][QtWaylandCompositor] Fixed an issue in the
wp_viewporter extension, where it would emit a protocol
error if the viewport was configured before attaching
a buffer to the surface.
Pick-to: 5.15 6.1 6.2
Fixes: QTBUG-95464
Change-Id: I71d09974dfe5e0f39ed79e7718e1e0d402547583
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 639bd92682f5f61f15f97f78ccd9791bec852b6c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When showing a surface with a subsurface in a QML based compositor, the
subsurface QQuickitems are now destroyed when when main surface QQuickItem
is destroyed and not just when the surface is destroyed.
This prevents subsurface QQuickItems piling up when showing and hiding
the client surfaces e.g. inside a StackView.
Fixes: QTBUG-94602
Change-Id: I006a6a763d4daf560ba2a7b6f83e1de3e3c48906
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 5463a04097ee7824b2032fb058e289cf62bfd315)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
mMask serves as a cache to remember what we've sent, the source of truth
for the value is window()->mask().
No need to store values that we are going to discard, because it will
confuse the state of newly created windows.
Change-Id: I6aa3da82c7f09c7ef90d0f7060f292fb042730f0
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 962f87190c682562b369c5ebd93dc9ce0915ed7a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Depending on the used modifiers, there are cases where dmabuf buffers
may be transported as multiple dmabuf planes, although they are
conceptually single plane buffers. An example of a modifier that works
like this is I915_FORMAT_MOD_Y_TILED_CCS. In such cases we need to
create a single EGLImage by merging all the dmabuf planes.
Almost all of the currently supported DRM formats are conceptually
single plane, so they require such merging of the dmabuf planes. The
only formats that need to be mapped to multiple EGLImages are some YUV
based ones, which we are already importing in a different way
(see initYuvTexture).
In addition, ensure that we don't pass to EGL a modifier value of
DRM_FORMAT_MOD_INVALID, since this is not an acceptable value.
To indicate a lack of modifiers skip the relevant
EGL_DMA_BUF_*_MODIFIER_* attributes altogether.
Sponsored-by: LG Electronics Inc.
Change-Id: I32a717f3be20927f2f3f4aa0fc6c4f7a5250db33
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 8163327dcb3d37e9f3011bd9bec88848b2ce3b6c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
BlankCursor => "blank"
Change-Id: I9337f0615f84bb82bc722d24416e97799309b3e5
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit 94e68d506ab9b94ec11786553a220abe4b52503e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a window is hidden or destroyed, the render thread may already
be rendering. We need to properly read-lock the surface pointer
when it is in use and exit when it becomes null.
Note that there is also a potential crash in the Mesa GL driver
where it keeps a proxy to the wl_surface, so if we delete this
while we are still rendering, it can crash inside the driver.
This is not addressed by this patch, and has not been reproduced
on any other drivers so far.
[ChangeLog][Client] Fixed a crash that could happen when hiding
or closing windows while Qt Quick was actively rendering on
a different thread.
Fixes: QTBUG-91264
Fixes: QTBUG-90037
Task-number: QTBUG-92249
Change-Id: I029b123b83c58740321e8b90a463ced748d8bcf4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit b19b0fbaf775e8b8eda1e03c265a5393d618c6c0)
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
| |
Change-Id: I7f046c2006d68b1d129a569f380f8847f389477d
|
|
|
|
|
|
|
|
|
|
| |
Document what the corresponding C++ class for any given QML item is,
like it's done in Qt Declarative.
Change-Id: I015565f88cb457f1e73dd7c2c54edff3505db395
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit a04decb6a85ef254ec48842e7551a2920de6a714)
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: Iced32a31a63cec71008549c1e0961d59ffc45a37
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
(cherry picked from commit e9522eda46028f351d87311d898ab985856970b0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
Ammend cca1b94190a094b5d1d7ce492b6533e2d330c5e8 to use m_composeState
only if xcbcommon is available.
Change-Id: I48332b15def3282c5bda3e1c7c393ea7e9849cbe
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
(cherry picked from commit 05658e127dedfff65789860415537c6920ec574d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Wayland protocol gives no guarantees about which events are part of
a frame, so handle the case where we receive wl_touch.down and
wl_touch.up within the same frame.
Fixes: QTBUG-89680
Change-Id: Ie0b9d2fb950fb0d9a6af8dd8ad2fa55a5efa71e6
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit da31aa6544f38c063de93326f958e8cbb02004af)
Reviewed-by: Hyunkook Khang <hyunkook.khang@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the moment, we are forcing user to choose to either compose or use
the text-input channel. This patch brings some of the QComposeInputContext
functionality in order to let applications understand dead key
combinations like they are supposed to.
Having it in QWaylandInputContext rather than in QWaylandInputDevice
should solve the problems 3aedd01271dc4f4a13103d632df224971ab2b6df had
with 57c4af2b18c0fb1d266b245a107fa6cb876b9d9e, because we are doing it
in the input context rather than before. This way, if the user is
overriding the input method (e.g. by setting QT_IM_MODULE), all the key
strokes will still be properly forwarded to the module to use.
This in turn allows us to solve https://bugs.kde.org/show_bug.cgi?id=411729
and https://bugs.kde.org/show_bug.cgi?id=405388 since we don't need to
choose anymore between physical and virual keyboards anymore.
Change-Id: I8601f5d7ae21edf4b3a1191fa75877286e505588
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit cca1b94190a094b5d1d7ce492b6533e2d330c5e8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
| |
This type of error is likely to happen upon system logout. qFatal would
trigger sigabrt and leave unnecessary coredump on the system. Using
qWarning here would make it consistent with xcb's io error.
Change-Id: I571ba007bf2453486b81837cccdbefa5f181b63d
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 91625c591c9854c7b6934c12a83df6cbcfcbfbd4)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extensions are registered by initialize(), which is called as
a polish event later. Therefore the following race can happen:
1. Application #1 requests a text-input object. The compositor
sees that the seat has no such object and creates a new one.
2. Polish event is posted.
3. Application #2 requests a text-input object. Since the
polish event is not yet processed, it also creates a new one.
4. Second polish event posted.
5. Both polish events processed.
We end up with two competing text-input objects, one per client.
This in turn leads to enter/leave events not being sent correctly,
and the client may therefore end up not updating the keyboard
hints.
The result was arbitrary behavior: Sometimes the keyboard
would not open at all, whereas other times it would open with
the current input method hints, even if these do not match the
hints of the editor.
[ChangeLog][Input] Fixed a problem where a virtual keyboard
would not be updated correctly if two clients were started
at almost the same time.
Fixes: QTBUG-91096
Change-Id: I262a5c15f87ba13d750425c259583919cd947ea4
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit e08b25efe4a7bec1004696bd23d9f8959158bd60)
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The xdgshell protocol allows us to tell the output to fill. This makes
it possible to use fullscreen confidently on systems with multiple
screens knowing that our windows won't be overlapping one another by
calling setScreen accordingly before QWindow::showFullScreen.
Change-Id: I757854c3698639472f3a25ef298ddcca031e1ed5
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit f915e53eaa596654ee1b9726a4767a1cba11336f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
| |
Change-Id: I1d5ca219c9300047704f484ced7ae39222760941
|
|
|
|
|
|
|
|
|
|
|
| |
Size we use to calculate margins region already contains size including
margins. This resulted into bigger region and not properly damaging
region we need to update.
Change-Id: Id1b7f4cd2a7b894b82db09c5af2b2d1f1f43fa2a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 1631315387faff3b4ae5c5ff1afb95e42f986e4c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a subsurface is moved, we need the parent window to commit to apply
that move. Ideally we want this in sync with any potential rendering on
the parent window.
Currently the code calls requestUpdate() which acts more like a frame
callback; it will only do something if the main QWindow considers itself
dirty.
We want to force a repaint, which is semantically more similar to an
ExposeEvent.
Fixes: QTBUG-86177
Change-Id: I30bdfa357beee860ce2b00a256eaea6d040dd55c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit b36a345d727eab37ee4ec4c2dc4674d5971c81d8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
| |
The opaque area doesn't take window decorations into account, which may
result into possible graphical artefacts.
Change-Id: I1606e8256e7e204dad927931eb1221b576e227fd
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 3aed1fe7132c00cc7ce9b0fe8fc9e8ccdc771d38)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The geometry only makes sense when a buffer exists, our currently send
value is somewhat meaningless, but till now harmless.
A specification clarification implies that it is an error if the
calculated effective window geometry is null, rather than just checking
the sent value. This is the case if set_window_geometry is sent before a
buffer is attached.
On our first configure call we enter resizeFromApplyConfigure which will
hit this path and send the initial state.
Change-Id: Ib57ebe8b64210eae86e79dfdd6b5cb8a986b020b
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 2555663c9f59b93f5fcc5d3ead233bee280e36f8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updated header.COMM to the files in tqtc-qtwayland. Examples,
tests and documentation files are not updated.
The commercial license header may contain some
additional lines so that its line count equals
with the earlier license header. Reason for this is
that some autotests use hard coded line numbers
and a change in the line count causes failures in tests.
Task-number: QTQAINFRA-4214
Change-Id: Ib716dd7c17587d0155b6903f5cf62be3f99384bf
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were leaking an EGL context with every GL context created,
which lead to rapid OOM errors in stress tests.
[ChangeLog][Qt Wayland Client] Fixed a memory leak when creating
QOpenGLContexts on Wayland and using the wayland-egl backend.
Fixes: QTBUG-85608
Change-Id: I8426b5df36ec7ab9e66ce15f9e02edad3aca60b9
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit bd1713ef820a3d56fc19df46059fde3372092f9b)
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Whenever a subsurface was added we would create a QWaylandQuickItem,
but this was never deleted. It is one-to-one with the surface, so it
should be deleted at the same time.
[ChangeLog][QtWaylandCompositor] Fixed a memory leak when creating
subsurfaces.
Task-number: QTBUG-88782
Change-Id: If4b3f15200ce3bd123ff73847d3593d174a39229
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 38fc568b30bf916165324c2cd2db127d2a9aa68c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For multi-display rendering on EGL, it is mandatory that the grabbing of
the surface happens in the same EGL context as the surface belongs to.
By adding the grabbing to the rendering stage of the image, this
relation is forced.
Task-number: QTBUG-87597
Change-Id: I50f40df1215aa771d714065e942c5a738ba6269f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit ab3a1a07f3d1e0d5a9e9d97b6b3b587180e2f4c8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QWindow geometry accessors return geometry in device
independent pixels. Normally this coordinate system
is equivalent to the Wayland native coordinate system,
but this is not the case when QT_SCALE_FACTOR is set.
Replace QWindow geometry calls with the helpers from
QPlatformWindow which return geometry in the native
coordinate system:
QWindow::geometry() -> QPlatformWindow::windowGeometry()
QWindow::frameGeometry() -> QPlatformWindow::windowFrameGeometry()
Task-number: QTBUG-87762
Fixes: QTBUG-88064
(cherry-picked from commit 8cb1b07aea12d50b4fecc45c903705dfd368022a)
Change-Id: I6e2029bc6210f12441ae7c9d8b678271e9922dde
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QSGThreadedRenderLoop::hide can be called at twice,
when the QWindowPrivate::setVisible(false) is called.
The eglSurface is EGL_NO_SURFACE when the second QSGThreadedRenderLoop::hide is
called. And if EGL_KHR_surfaceless_context is supported, the eglMakeCurrent
don't return the false.
But this case is not intended. So, add the defence code for above case.
Fixes: QTBUG-88277
Change-Id: Ia9e5990303e98f0eedc48531e5af62ff9961f419
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Follow-up to 8cb1b07aea12d50b4fecc45c903705dfd368022a,
fixes one additional case (Use of minimum/maximum size).
Fixes: QTBUG-87762
Change-Id: I73e0df2529b0cadf25ad50ea7459cdbb92caf424
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 6ed363e3665f17d935f8636d9c958154c898f5c5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Usually, the object associated with the resource gets destroyed in the
destroy_resource() function.
Therefore, we need to double-check that the object is still alive before
trying to reset its m_resource.
Change-Id: I26408228f58919db17eb29584a1cbd4a9427d25c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 735164b5c2a2637a8d53a8803a2401e4ef477ff0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ 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
Change-Id: I9158c0bb827a54421b205abc6c637e6cdfc5cebd
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 3cc17177b1b03053276eb6236fda137c588261a7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
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: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Change-Id: I6b2c26a9fea447f1de1d768a72aba72055a13cb7
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|