summaryrefslogtreecommitdiff
path: root/src/hardwareintegration
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/tqtc/lts-5.15.9' into ↵v5.15.9-lts-lgpl5.15Tarja Sundqvist2023-03-238-25/+18
|\ | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: Id7e59c8258165ebca9bcb552d5a4e9872d872232
| * Don't keep eglConfig in hardwareintegrationInho Lee2022-02-118-25/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.6' into ↵v5.15.6-lts-lgplTarja Sundqvist2022-08-162-69/+61
|\ \ | |/ | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I9c249bfb8ad3764931b1c468f5cb927b784a2135
| * linux-dmabuf-unstable-v1: Fix importing dmabuf buffers with modifiersAlexandros Frantzis2021-06-291-68/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * client: Gracefully handle shutdown and window hidingEskil Abrahamsen Blomfeldt2021-06-041-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Revert "Update commercial license headers"v5.15.3-lts-lgplTarja Sundqvist2021-03-2275-1199/+1199
|/ | | | | | | | | | | 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>
* Update commercial license headersTarja Sundqvist2021-01-2775-1199/+1199
| | | | | | | | | | | | | | | 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>
* Fix memory leak in QWaylandGLContextEskil Abrahamsen Blomfeldt2021-01-261-0/+2
| | | | | | | | | | | | | | 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>
* Do not try to eglMakeCurrent for unintended caseJaehak Lee2020-11-182-0/+7
| | | | | | | | | | | | | | | | 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>
* 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. 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>
* 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 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>
* 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 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>
* 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.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.25.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>
* | 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>
* | 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 '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>
* 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>
* 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/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>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-07-091-1/+1
|\ \ | |/ | | | | Change-Id: Ia74c2459057ef681b59a3201cab34168016e78d0
| * Fix compilation with C++20Marc Mutz2019-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Remove Apache licensed Vulkan helper functionJohan Klokkhammer Helsing2019-05-102-5/+5
| | | | | | | | | | | | | | | | Use the QVkConvenience library instead. Fixes: QTBUG-75108 Change-Id: I9687aec3e7b697b04e9cfa5638055132c617ad9a Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devJohan Klokkhammer Helsing2019-05-074-17/+14
|\ \ | |/ | | | | | | | | | | | | Conflicts: src/client/qwaylanddisplay_p.h src/client/qwaylandwindow.cpp Change-Id: I50eb5c83a8b81e4bdb032b68d41f429b17d0a74d
| * Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-05-023-16/+13
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/client/qwaylandwindow_p.h Change-Id: Ic4104c48267d1682bb58d6b38afc833c39515eae
| | * Client: Full implementation for frame callbacks (second try)Johan Klokkhammer Helsing2019-04-243-16/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Remove wayland-egl as dependency of linux-dmabuf-unstable-v1Kai Koehne2019-04-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-04-102-148/+59
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | 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
| * | Use a dedicated EGLContext for the decorations blitterGiulio Camuffo2019-04-052-148/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-292-2/+3
|\ \ \ | |/ / | | | | | | Change-Id: I735eb66a8469216029a1225080f49bfdcd3f0732
| * | BRCM: fix namespace confusionGeorg Leugner2019-03-222-2/+3
| | | | | | | | | | | | | | | Change-Id: I146dd41d54889af694b829bf1e6d47e03e892b27 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | New texture sharing protocol and infrastructurePaul Olav Tvete2019-03-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Vulkan server buffer integration crash fixPaul Olav Tvete2019-03-271-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Implement server-side toOpenGlTexture for VulkanPaul Olav Tvete2019-03-252-41/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Compressed texture support for vulkan server buffersPaul Olav Tvete2019-03-255-18/+68
| | | | | | | | | | | | | | | | | | | | | | | | Adding new virtual function createServerBufferFromData() to the ServerBufferIntegration class. Change-Id: I6009fd5aec07f1794431bd52ccd56cfae9d0f77b Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | | Merge remote-tracking branch 'qt/5.13' into devPaul Olav Tvete2019-03-212-0/+9
|\ \ \ | |/ / | | | | | | Change-Id: I3dc204fcaa71c01a80b0c622443012eb07964431