diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-09-01 19:24:10 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-09-01 19:24:10 +0100 |
commit | b052fbf151106a4f47cac7fdf0ffff983decb773 (patch) | |
tree | 5d21279a4eeaf4076caee87654b610a0fe8a4051 /gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch | |
parent | c3b55a6be7da027d97d8aef00ef88c3011121a42 (diff) |
gentoo auto-resync : 01:09:2022 - 19:24:10
Diffstat (limited to 'gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch')
-rw-r--r-- | gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch | 96 |
1 files changed, 0 insertions, 96 deletions
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 deleted file mode 100644 index bb54ad8d1a0c..000000000000 --- a/gui-libs/egl-wayland/files/egl-wayland-1.1.10-revert-defer-resizes.patch +++ /dev/null @@ -1,96 +0,0 @@ -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 |