* [gentoo-commits] repo/gentoo:master commit in: gui-libs/egl-wayland/files/, gui-libs/egl-wayland/
@ 2022-06-28 17:26 Ionen Wolkens
0 siblings, 0 replies; 2+ messages in thread
From: Ionen Wolkens @ 2022-06-28 17:26 UTC (permalink / raw
To: gentoo-commits
commit: 37e44543dc58bb084aa4519214c39775151cc848
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 28 15:57:08 2022 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Jun 28 17:25:46 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=37e44543
gui-libs/egl-wayland: revbump with a reverted commit
Unsure if 100% proper given doesn't revert cleanly, but choices are
either stick with 1.1.9 with broken vulkan, use 1.1.10 with broken
resizing, or try this.
Keeping -r0 for now in case testing is needed.
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
gui-libs/egl-wayland/egl-wayland-1.1.10-r1.ebuild | 44 ++++++++++
.../egl-wayland-1.1.10-revert-defer-resizes.patch | 96 ++++++++++++++++++++++
2 files changed, 140 insertions(+)
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/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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: gui-libs/egl-wayland/files/, gui-libs/egl-wayland/
@ 2023-09-12 16:15 Ionen Wolkens
0 siblings, 0 replies; 2+ messages in thread
From: Ionen Wolkens @ 2023-09-12 16:15 UTC (permalink / raw
To: gentoo-commits
commit: fc8c9136145c6d1401047e43f71535ebd646ae4d
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 12 15:56:51 2023 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Sep 12 15:56:51 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc8c9136
gui-libs/egl-wayland: drop 1.1.11_p20230202-r1
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
gui-libs/egl-wayland/Manifest | 1 -
.../egl-wayland-1.1.11_p20230202-r1.ebuild | 47 ----------------------
...ayland-1.1.11_p20230202-destruction-order.patch | 25 ------------
3 files changed, 73 deletions(-)
diff --git a/gui-libs/egl-wayland/Manifest b/gui-libs/egl-wayland/Manifest
index 1a368cc5ae51..8d6a2056dd32 100644
--- a/gui-libs/egl-wayland/Manifest
+++ b/gui-libs/egl-wayland/Manifest
@@ -1,4 +1,3 @@
-DIST egl-wayland-1.1.11_p20230202.tar.gz 67029 BLAKE2B 8261f33c885a5b9673a463d624e253c75ae5afac3364a4de7d7d51a3d0b57495fd62324e3924bd4e649475a0afd0eaab3b02b3b3fe86b689411ed123ec85e018 SHA512 ec505a76ab2b847b1e7f27969be82d86acd40fe573eaa90271971f84b0c4b6195f0fccc5ec184dc58f2b6fb5591e4a05eca1265494e0a3ce39841ae84e86fed2
DIST egl-wayland-1.1.12.tar.gz 67159 BLAKE2B e0183a5a443aeede5654e248d5fe61127fd999d9e78da7578bd46aa61d44b5b0de4109e73d611b35cba2b2e73949e3727b43d941f1f413a6786c15e366c2b634 SHA512 aa8e0d0639a8d9d85b85fa258f98f4280734cec5aefac776c5a92f04b8999cee9365e0f55cb885ce0cd6e574ae395895b9cea5efa951343eda5afb46216a5c43
DIST egl-wayland-1.1.12_p20230718.tar.gz 67390 BLAKE2B 438f4d6ff3840162517303200bf266ae2037ad16483477f0f86c6695cfbef2ef2b5ad63d100afc0d3bd13a34ebc222fba0f098e83ce8adb7c18c4d60c66eb148 SHA512 42f1ec235eb0ce8af774d9f08b45f48f8b658d51c7e1e33a49fb734941b8db9558aac46eaa07ce7edb2c7e07f5e791d2245f1f68fb3a692a686a0296fe559433
DIST egl-wayland-1.1.7.tar.gz 48681 BLAKE2B eebbd0e36045c50b39ef70292156f5cd137a51af2169b56a35d318d90ade3d4a5b94206d86246d52fda0c6c093ff25e389b1a3ccbe60595dc9661d199e30f33b SHA512 edc81d9f2c617587044d5f9d35b3e355db8544e8fa1d861c1b92a5a11bc1af7d994ca8abd49ce6f462a1971f20296b4c757bdf1df0d2bfc981cdafaa839f12af
diff --git a/gui-libs/egl-wayland/egl-wayland-1.1.11_p20230202-r1.ebuild b/gui-libs/egl-wayland/egl-wayland-1.1.11_p20230202-r1.ebuild
deleted file mode 100644
index 13b0bd1eda61..000000000000
--- a/gui-libs/egl-wayland/egl-wayland-1.1.11_p20230202-r1.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit meson
-
-HASH_EGLWAYLAND=30c5a951a849f835acc9f11ea4ca4e1d3380b7eb
-
-DESCRIPTION="EGLStream-based Wayland external platform"
-HOMEPAGE="https://github.com/NVIDIA/egl-wayland"
-SRC_URI="https://github.com/NVIDIA/egl-wayland/archive/${HASH_EGLWAYLAND}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/${PN}-${HASH_EGLWAYLAND}"
-
-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
- x11-libs/libdrm"
-BDEPEND="dev-util/wayland-scanner"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.1.6-remove-werror.patch
- "${FILESDIR}"/${P}-destruction-order.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.11_p20230202-destruction-order.patch b/gui-libs/egl-wayland/files/egl-wayland-1.1.11_p20230202-destruction-order.patch
deleted file mode 100644
index 9611ac7dc0da..000000000000
--- a/gui-libs/egl-wayland/files/egl-wayland-1.1.11_p20230202-destruction-order.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-https://bugs.gentoo.org/904072
-https://github.com/NVIDIA/egl-wayland/pull/79
-
-From 979200d803c5ed9cb08ac752ac828f28753fc445 Mon Sep 17 00:00:00 2001
-From: q234rty <q23456yuiop@gmail.com>
-Date: Fri, 7 Apr 2023 18:08:03 +0800
-Subject: [PATCH] Fix wrong destruction order for event queue
---- a/src/wayland-egldisplay.c
-+++ b/src/wayland-egldisplay.c
-@@ -704,12 +704,12 @@ static void getServerProtocolsInfo(struct wl_display *nativeDpy,
- }
- }
-
-+ if (wlRegistry) {
-+ wl_registry_destroy(wlRegistry);
-+ }
- if (queue) {
- wl_event_queue_destroy(queue);
- }
-- if (wlRegistry) {
-- wl_registry_destroy(wlRegistry);
-- }
- }
-
- EGLDisplay wlEglGetPlatformDisplayExport(void *data,
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-09-12 16:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-28 17:26 [gentoo-commits] repo/gentoo:master commit in: gui-libs/egl-wayland/files/, gui-libs/egl-wayland/ Ionen Wolkens
-- strict thread matches above, loose matches on Subject: below --
2023-09-12 16:15 Ionen Wolkens
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox