summaryrefslogtreecommitdiff
path: root/gui-libs/egl-wayland
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-06-29 12:04:12 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-06-29 12:04:12 +0100
commit0f558761aa2dee1017b4751e4017205e015a9560 (patch)
tree037df795519468a25d9362b4e95cdaeb84eb1cf9 /gui-libs/egl-wayland
parent752d6256e5204b958b0ef7905675a940b5e9172f (diff)
gentoo resync : 29.12.2022
Diffstat (limited to 'gui-libs/egl-wayland')
-rw-r--r--gui-libs/egl-wayland/Manifest4
-rw-r--r--gui-libs/egl-wayland/egl-wayland-1.1.10-r1.ebuild44
-rw-r--r--gui-libs/egl-wayland/egl-wayland-1.1.10.ebuild43
-rw-r--r--gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch96
4 files changed, 187 insertions, 0 deletions
diff --git a/gui-libs/egl-wayland/Manifest b/gui-libs/egl-wayland/Manifest
index 90bbce5747f6..66806e2600f7 100644
--- a/gui-libs/egl-wayland/Manifest
+++ b/gui-libs/egl-wayland/Manifest
@@ -1,7 +1,11 @@
AUX 10_nvidia_wayland.json 115 BLAKE2B b10206c742e8966d1192b9b0604137e6b296d2be74a437841c63844c0716343578b11565a34fb4c534d5908c0b5775305581b68039a6ff9ed7421c9d385a2b7a SHA512 1a611ac0fc2762d94661efc28fa58d57a821185afa7589158d1b8d503bd7361ba1b5029302550134ed1787c2bf90e2ea8afbf3bdefbfe268d8cf13d2f340fb47
+AUX egl-wayland-1.1.10-revert-defer-resizes.patch 3050 BLAKE2B 5efb52754bffb5d1498cb193fedc41d452c3ac01ff8fb07eb0b368f579d52b0e4fc8bb2a290d1e3a87baaa90bbadecbf4ece40a5fc7110d670fc8d68032f3595 SHA512 58fdfca16e2acc535ba2c16c5a04b72111db339ee15879b7780eb79a2b29d36a3808754c92b290fe50930fcf3b55526d1317f071d28721db86d2a5a4847c6fe4
AUX egl-wayland-1.1.6-remove-werror.patch 251 BLAKE2B 12a14b185f9b1cb3a42226708642f5b57c2b0eb64d81c96438ee24ac45b950ba588591194648fc8e64e3aa8d2fda9ba2dba63a2f78fc22c00a14d56403bf6839 SHA512 c6c3c4d4f776f44d642d51ab2eed44a0388558b43f2c4c894b6d19bdef40b8a646be43b6b356a3ffa0297e36a48122ef057265db68a8717020abe30906bc8f28
+DIST egl-wayland-1.1.10.tar.gz 60058 BLAKE2B c24cc0d6e45e43868140d4e16ad5092a951bebb71fa0d65e11ef8d4273d85589a435e6d29b73b665630b5a7e28fdbd8e1e02e5eb43eed7d06862caabae7146e9 SHA512 163ee1ae1e629c5d32ffdf335b35ba309d35c009f93a8391e78dcb710a86f64e017a37c1e77325c6f4782c8a5fe048ae44ad1456bd3a20ea651b4192c9102e3c
DIST egl-wayland-1.1.7.tar.gz 48681 BLAKE2B eebbd0e36045c50b39ef70292156f5cd137a51af2169b56a35d318d90ade3d4a5b94206d86246d52fda0c6c093ff25e389b1a3ccbe60595dc9661d199e30f33b SHA512 edc81d9f2c617587044d5f9d35b3e355db8544e8fa1d861c1b92a5a11bc1af7d994ca8abd49ce6f462a1971f20296b4c757bdf1df0d2bfc981cdafaa839f12af
DIST egl-wayland-1.1.9_p20211123.tar.gz 58900 BLAKE2B a5a08df06e302b573f1036264495e7b29ec4d3def9be0e9b8037206a42aab5c18d78b79cc3f3ffeede9708916e644f8090fadf34318429cf0040c3623da28ce1 SHA512 8de18c8c0c38ca672688a5197be20534cc90b0fecae9ea2f3d3bc851d5b50d3f148a4ce97b835a9576251c8273ea21f82f2c9694cf2b7bba28fa3b53850c43b2
+EBUILD egl-wayland-1.1.10-r1.ebuild 1091 BLAKE2B 54979a22bd5605c8ac937b8a02a7d8db474790d33ba46072212532b83e84203f50d2d83ff2a8e88ef0f299ea973efd308b7fd7396578528531ebe30f0343067f SHA512 6e94d4f34073a8f5429205cbd8843b6d6af755512b440d1c430ea1b6ffc7f5fdb421729ab0cf999b7f1a3c530e0e5a687141bcfdc1d7a6a92c87f70f098e40c6
+EBUILD egl-wayland-1.1.10.ebuild 1044 BLAKE2B 8b1f0bd3dc9c36bd92cd42b485a48d8d74cfb1e10bc1f27e28105e19620ac351b8b151399758edf6f1b007fab2670a889c5fe069fbfe3bf3a3f2b6c63ccef069 SHA512 46c9901ad62210b3e2d6587fe51e611286057d507e3aade87100ef37df76bd0e038a091b9eddb63d9955649a354c3119ad04c5c39fe7790b18c8a6ecc538860c
EBUILD egl-wayland-1.1.7-r1.ebuild 1139 BLAKE2B ec726bdb0cacc7653b8c4237383b28579cd3fd306f965e3195722b521a9db49076fd65b01c3568fe5c313a2a8ac135c2cc178d9fa62188418136c254e906d4d6 SHA512 3c39c694076655c0ae38c8eb4571efeb54b28c548deb21fd971bd154cdc92cab07c928137c81c60a0df25b58c7582c6f2eb12c3e840f9eb7450d5a82b9388cb0
EBUILD egl-wayland-1.1.9_p20211123.ebuild 1111 BLAKE2B b17e574b838d73e58f40ff1620107e781cc2ce8b0378d64be07d76455d0088c27367a14004c79a8fad923eed2b8e7a6945626e65b79c602828cd11a816eb48ec SHA512 63e308b03dce88ae27f5f390c40181ae14bd8e93413a4e7d937f9c7599a8eebac85de4ba4d098aaecd367a59ea113db406f43dbc04def6952457b5090d4e0c21
MISC metadata.xml 329 BLAKE2B 9763d8fac09a9b4902a2a5d61f0f109659ad580117b52d7f844785e449623480752356d31507d86be1198b56a6e38fa6a6fa20aa2151421f79f3ce94f98865a5 SHA512 ae3d6edba2229abebf7f87b448a3f1eacd592d28f6ff3bf80e50e14d8718f15e5a67ec8496cdf03f86532f9525638c3dab5020ba9f62d2a9a4495a16a617d4d4
diff --git a/gui-libs/egl-wayland/egl-wayland-1.1.10-r1.ebuild b/gui-libs/egl-wayland/egl-wayland-1.1.10-r1.ebuild
new file mode 100644
index 000000000000..d3d107c293bf
--- /dev/null
+++ b/gui-libs/egl-wayland/egl-wayland-1.1.10-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="EGLStream-based Wayland external platform"
+HOMEPAGE="https://github.com/NVIDIA/egl-wayland"
+SRC_URI="https://github.com/NVIDIA/egl-wayland/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ dev-libs/wayland
+ !<x11-drivers/nvidia-drivers-470.57.02[wayland(-)]"
+DEPEND="
+ ${RDEPEND}
+ dev-libs/wayland-protocols
+ gui-libs/eglexternalplatform
+ >=media-libs/libglvnd-1.3.4
+ x11-libs/libdrm"
+BDEPEND="dev-util/wayland-scanner"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1.6-remove-werror.patch
+ "${FILESDIR}"/${P}-revert-defer-resizes.patch
+)
+
+src_install() {
+ meson_src_install
+
+ insinto /usr/share/egl/egl_external_platform.d
+ doins "${FILESDIR}"/10_nvidia_wayland.json
+}
+
+pkg_postinst() {
+ if has_version "<x11-drivers/nvidia-drivers-391"; then
+ ewarn "<=nvidia-drivers-390.xx may not work properly with this version of"
+ ewarn "egl-wayland, it is recommended to use nouveau drivers for wayland."
+ fi
+}
diff --git a/gui-libs/egl-wayland/egl-wayland-1.1.10.ebuild b/gui-libs/egl-wayland/egl-wayland-1.1.10.ebuild
new file mode 100644
index 000000000000..15f3bab74424
--- /dev/null
+++ b/gui-libs/egl-wayland/egl-wayland-1.1.10.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="EGLStream-based Wayland external platform"
+HOMEPAGE="https://github.com/NVIDIA/egl-wayland"
+SRC_URI="https://github.com/NVIDIA/egl-wayland/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ dev-libs/wayland
+ !<x11-drivers/nvidia-drivers-470.57.02[wayland(-)]"
+DEPEND="
+ ${RDEPEND}
+ dev-libs/wayland-protocols
+ gui-libs/eglexternalplatform
+ >=media-libs/libglvnd-1.3.4
+ x11-libs/libdrm"
+BDEPEND="dev-util/wayland-scanner"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1.6-remove-werror.patch
+)
+
+src_install() {
+ meson_src_install
+
+ insinto /usr/share/egl/egl_external_platform.d
+ doins "${FILESDIR}"/10_nvidia_wayland.json
+}
+
+pkg_postinst() {
+ if has_version "<x11-drivers/nvidia-drivers-391"; then
+ ewarn "<=nvidia-drivers-390.xx may not work properly with this version of"
+ ewarn "egl-wayland, it is recommended to use nouveau drivers for wayland."
+ fi
+}
diff --git a/gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch b/gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch
new file mode 100644
index 000000000000..bb54ad8d1a0c
--- /dev/null
+++ b/gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch
@@ -0,0 +1,96 @@
+1.1.10 is needed for >=515.57 for working vulkan on wayland but
+carries a major regression that can make applications half-displayed
+and unusable after a resize.
+
+Official drivers seem to do something similar, they ship a modified
+1.1.9 with vulkan fixes rather than 1.1.10.
+
+https://github.com/NVIDIA/egl-wayland/issues/57
+Revert of https://github.com/NVIDIA/egl-wayland/commit/ddaa272
+--- a/src/wayland-eglsurface.c
++++ b/src/wayland-eglsurface.c
+@@ -1612,17 +1612,30 @@
+ }
+
+-void
+-wlEglResizeSurfaceIfRequired(WlEglDisplay *display, WlEglPlatformData *pData, WlEglSurface *surface)
++static void
++resize_callback(struct wl_egl_window *window, void *data)
+ {
++ WlEglDisplay *display = NULL;
++ WlEglPlatformData *pData = NULL;
++ WlEglSurface *surface = (WlEglSurface *)data;
+ EGLint err = EGL_SUCCESS;
+
+- if (!surface) {
++ if (!window || !surface) {
++ return;
++ }
++
++ display = surface->wlEglDpy;
++ if (!wlEglIsWaylandDisplay(display->nativeDpy) ||
++ !wlEglIsWaylandWindowValid(surface->wlEglWin)) {
+ return;
+ }
++ pData = display->data;
+
+ pthread_mutex_lock(&surface->mutexLock);
+
+ /* Resize stream only if window geometry has changed */
+- if (surface->isResized) {
++ if ((surface->width != window->width) ||
++ (surface->height != window->height) ||
++ (surface->dx != window->dx) ||
++ (surface->dy != window->dy)) {
+ // If a damage thread is in use, wait for it to finish processing all
+ // pending frames
+@@ -1630,5 +1643,4 @@
+
+ discard_surface_context(surface);
+- surface->isResized = EGL_FALSE;
+ surface->ctx.wlStreamResource = NULL;
+ surface->ctx.isAttached = EGL_FALSE;
+@@ -1655,34 +1667,4 @@
+ pthread_mutex_unlock(&surface->mutexLock);
+ }
+-
+-static void
+-resize_callback(struct wl_egl_window *window, void *data)
+-{
+- WlEglDisplay *display = NULL;
+- WlEglSurface *surface = (WlEglSurface *)data;
+-
+- if (!window || !surface) {
+- return;
+- }
+-
+- display = surface->wlEglDpy;
+- if (!wlEglIsWaylandDisplay(display->nativeDpy) ||
+- !wlEglIsWaylandWindowValid(surface->wlEglWin)) {
+- return;
+- }
+-
+- pthread_mutex_lock(&surface->mutexLock);
+-
+- /* Resize stream only if window geometry has changed */
+- if ((surface->width != window->width) ||
+- (surface->height != window->height) ||
+- (surface->dx != window->dx) ||
+- (surface->dy != window->dy)) {
+- surface->isResized = EGL_TRUE;
+- wl_surface_commit(surface->wlSurface);
+- }
+-
+- pthread_mutex_unlock(&surface->mutexLock);
+-}
+
+ static EGLBoolean validateSurfaceAttrib(EGLAttrib attrib, EGLAttrib value)
+--- a/src/wayland-eglswap.c
++++ b/src/wayland-eglswap.c
+@@ -65,6 +65,4 @@
+ surface = eglSurface;
+
+- wlEglResizeSurfaceIfRequired(display, data, surface);
+-
+ if (surface->pendingSwapIntervalUpdate == EGL_TRUE) {
+ /* Send request from client to override swapinterval value based on