From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4FF2F158094 for ; Tue, 28 Jun 2022 17:27:52 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 388B7E0BC5; Tue, 28 Jun 2022 17:26:51 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 106D4E0BC5 for ; Tue, 28 Jun 2022 17:26:51 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 25BE5341086 for ; Tue, 28 Jun 2022 17:26:50 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 7FBEA51B for ; Tue, 28 Jun 2022 17:26:48 +0000 (UTC) From: "Ionen Wolkens" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ionen Wolkens" Message-ID: <1656437146.37e44543dc58bb084aa4519214c39775151cc848.ionen@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: gui-libs/egl-wayland/files/, gui-libs/egl-wayland/ X-VCS-Repository: repo/gentoo X-VCS-Files: gui-libs/egl-wayland/egl-wayland-1.1.10-r1.ebuild gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch X-VCS-Directories: gui-libs/egl-wayland/ gui-libs/egl-wayland/files/ X-VCS-Committer: ionen X-VCS-Committer-Name: Ionen Wolkens X-VCS-Revision: 37e44543dc58bb084aa4519214c39775151cc848 X-VCS-Branch: master Date: Tue, 28 Jun 2022 17:26:48 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 149b2be0-bc10-4a6d-884f-4282b9fe67ef X-Archives-Hash: efeb1fda0c149c9dff5552e5dba51d10 commit: 37e44543dc58bb084aa4519214c39775151cc848 Author: Ionen Wolkens gentoo org> AuthorDate: Tue Jun 28 15:57:08 2022 +0000 Commit: Ionen Wolkens gentoo 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 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 + !=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