| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: Id7e59c8258165ebca9bcb552d5a4e9872d872232
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is no reason to keep eglConfig value as a member variable. Even
this can result in creating wrong surface from the current surface.
And it makes no sense to change alpha bits of the surface format by
supporting decorations.
Task-number: QTBUG-97916
Change-Id: Iaa395d36e83373ea197dc5e14424fcb62cd2cd8b
(cherry picked from commit af884d4aac18e5155649f8a916ea272c11542b7e)
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Seokha Ko <seokha.ko@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|\ \
| |/
| |
| |
| |
| | |
tqtc/lts-5.15-opensource
Change-Id: I9c249bfb8ad3764931b1c468f5cb927b784a2135
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
|
|
| |
This reverts commit 6bb05fed8fdb564f3ff0136bbdaf4efd6088797d.
Revert of commercial license headers is required for Qt 5.15.3
opensource release.
Task-number: QTBUG-91108
Change-Id: Ia867596ca140b1c37717baafe07cbcddd2a9b1fd
Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| | |
Change-Id: I7341fbfbe7c3eeae44a7fea0bf534fda1180ac51
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| | |
Change-Id: I82c07ab72138774a0809bf60f0f3251d32923847
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| | |
Change-Id: I4e205974d29aef0443ad7aecdb43d5ab3ee1ec64
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| | |
Change-Id: I1f9418f4f5783291286417f6faf6277e0679007c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| |
| |
| |
| | |
Conflicts:
src/compositor/configure.json
Change-Id: Id608424a63a4bcef4adb3f66d55a3cc32c86f2a2
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
|
| |
[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>
|
|
|
|
|
| |
Change-Id: I5ad3663b3710b939f08798abad3bc985ab460e88
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I489267d8378cbcaf7ae7cd8eee48d4e2a71ca91a
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylandinputdevice.cpp
Change-Id: I20fb102162351b714855258175ed00437e55f072
|
| |
| |
| |
| |
| | |
Change-Id: I0a193ceaa1549c08acad02b59db62ae313d6b334
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\ \
| |/
| |
| | |
Change-Id: Ia74c2459057ef681b59a3201cab34168016e78d0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Designated initializers (a C99 feature) made it into C++20, but the
current code, which, presumably, was using a GCC extension, ran afoul
of the rule that either all initializers must be designated ones, or
none.
Fix by naming the .plane member, too.
Change-Id: Id302787331cfe0f2976250ec2c6b86a6946c8016
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Use the QVkConvenience library instead.
Fixes: QTBUG-75108
Change-Id: I9687aec3e7b697b04e9cfa5638055132c617ad9a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylanddisplay_p.h
src/client/qwaylandwindow.cpp
Change-Id: I50eb5c83a8b81e4bdb032b68d41f429b17d0a74d
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/client/qwaylandwindow_p.h
Change-Id: Ic4104c48267d1682bb58d6b38afc833c39515eae
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The Wayland plugin now takes full control over delivering update request and
implement frame callbacks for both egl and shm.
[ChangeLog][QPA plugin] The non-blocking version of eglSwapBuffers is now used, if
supported. This fixed a bug where minimized windows would block the event loop.
[ChangeLog][QPA plugin] Windows that don't get frame callbacks from the
compositor within 100 ms are now set as not exposed. This should stop most
clients from rendering unnecessary frames to minimized or hidden windows.
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.
QtQuick and other applications often depend on blocking swapBuffers to throttle
animations. If the context's surface format has a non-zero swapInterval, try to
emulate a blocking swap.
Fixes: QTBUG-69077
Change-Id: I3c6964f31a16e9aff70b8ec3c5340e640a30fef2
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes
Project ERROR: Library 'wayland-egl' is not defined.
in linux-dmabuf-unstable-v1.pri
Change-Id: I8a618c7cfb61340ea21535757daacb9141863f72
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5.cpp
Done-with: Johan Klokkhammer Helsing <johan.helsing@qt.io>
Change-Id: Ia6fa28454f681b4965b5e18f635cb8c40da316f3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows to drop all the StateGuard code, reduce OpenGL state changes
when blitting and to also support windows that requested an OpenGL Core
context.
Change-Id: Ie507a14a04b3d26cdf31f68973057553fa8493bf
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: I735eb66a8469216029a1225080f49bfdcd3f0732
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I146dd41d54889af694b829bf1e6d47e03e892b27
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds a higher level protocol on top of the server buffer extension,
providing an easy way for Qt Quick applications to use the shared
textures.
[ChangeLog] Added protocol and Qt Quick image provider for sharing
textures in graphics memory between compositor and multiple clients.
Task-number: QTBUG-73822
Change-Id: Idc41b3479d6ca37be35d9ccd7b89e9994ff17f8f
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Duplicate file descriptor before calling glImportMemoryFdEXT()
on the server side. The Khronos specification says that "performing
any operation on <fd> in the application after an import results in
undefined behavior".
Change-Id: I6a800171450578b1dabba7efc624623388acf3a1
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows the compositor to use the textures shared through the
vulkan server buffer extension in its own UI.
Adds a new virtual function ServerBuffer::releaseOpenGlTexture().
Change-Id: I48a8dfd020832fe55cfd5594a3274ba285a7cf09
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adding new virtual function createServerBufferFromData() to the
ServerBufferIntegration class.
Change-Id: I6009fd5aec07f1794431bd52ccd56cfae9d0f77b
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: I3dc204fcaa71c01a80b0c622443012eb07964431
|