diff options
author | Paul Olav Tvete <paul.tvete@qt.io> | 2019-01-07 15:01:20 +0100 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2019-01-08 11:57:40 +0000 |
commit | c584db87cf924f3a3d883288de8c2f4210186af6 (patch) | |
tree | 78b91ca235fa7f881786160949744c6db1071060 /src/3rdparty | |
parent | 024be9dcae26a0d88ffb76f9fca252f2135ad7c9 (diff) | |
download | qtwayland-c584db87cf924f3a3d883288de8c2f4210186af6.tar.gz |
wl_eglstream_controller implementation for NVIDIA
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>
Diffstat (limited to 'src/3rdparty')
-rw-r--r-- | src/3rdparty/protocol/qt_attribution.json | 17 | ||||
-rw-r--r-- | src/3rdparty/protocol/wl-eglstream-controller.xml | 37 |
2 files changed, 53 insertions, 1 deletions
diff --git a/src/3rdparty/protocol/qt_attribution.json b/src/3rdparty/protocol/qt_attribution.json index e5bf91e1..7881e6b0 100644 --- a/src/3rdparty/protocol/qt_attribution.json +++ b/src/3rdparty/protocol/qt_attribution.json @@ -103,5 +103,20 @@ Copyright © 2010-2013 Intel Corporation" "LicenseFile": "HPND_LICENSE.txt", "Copyright": "Copyright © 2012, 2013 Intel Corporation Copyright © 2015, 2016 Jan Arne Petersen" - } + }, + + { + "Id": "wayland-eglstream-controller", + "Name": "Wayland EGLStream Controller Protocol", + "QDocModule": "qtwaylandcompositor", + "QtUsage": "Used in the Qt Wayland Compositor", + "Files": "wayland-eglstream-controller.xml", + + "Description": "Allows clients to request that the compositor creates its EGLStream.", + "Homepage": "https://github.com/NVIDIA/egl-wayland", + "LicenseId": "MIT", + "License": "MIT License", + "LicenseFile": "MIT_LICENSE.txt", + "Copyright": "Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved." + } ] diff --git a/src/3rdparty/protocol/wl-eglstream-controller.xml b/src/3rdparty/protocol/wl-eglstream-controller.xml new file mode 100644 index 00000000..dea072e6 --- /dev/null +++ b/src/3rdparty/protocol/wl-eglstream-controller.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="wl_eglstream_controller"> + <copyright> + Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + <interface name="wl_eglstream_controller" version="1"> + <request name="attach_eglstream_consumer"> + <description summary="Create server stream and attach consumer"> + Creates the corresponding server side EGLStream from the given wl_buffer + and attaches a consumer to it. + </description> + <arg name="wl_surface" type="object" interface="wl_surface" + summary="wl_surface corresponds to the client surface associated with + newly created eglstream"/> + <arg name="wl_resource" type="object" interface="wl_buffer" + summary="wl_resource corresponding to an EGLStream"/> + </request> + </interface> +</protocol> |