From eff2eb5755a087f5a0fcafc0f67b4fc13c817a23 Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Fri, 21 Jul 2023 16:52:33 +0200 Subject: [PATCH] up to 23.1.4 --- Mesa.spec | 6 ++-- panfrost-mem-leak.patch | 76 ----------------------------------------- 2 files changed, 2 insertions(+), 80 deletions(-) delete mode 100644 panfrost-mem-leak.patch diff --git a/Mesa.spec b/Mesa.spec index 2e0691c..b9e9140 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -73,15 +73,14 @@ Summary: Free OpenGL implementation Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL Name: Mesa -Version: 23.1.3 +Version: 23.1.4 Release: 1 License: MIT (core) and others - see license.html file Group: X11/Libraries #Source0: ftp://ftp.freedesktop.org/pub/mesa/mesa-%{version}.tar.xz ## Source0-md5: 7c61a801311fb8d2f7b3cceb7b5cf308 Source0: https://archive.mesa3d.org/mesa-%{version}.tar.xz -# Source0-md5: 0dce0342dbf08dc5afbaf51e729da1a1 -Patch0: panfrost-mem-leak.patch +# Source0-md5: 3b17f38b927e6bb0d6aac01c02009703 URL: https://www.mesa3d.org/ %if %{with opencl_spirv} || %{with gallium_rusticl} BuildRequires: SPIRV-LLVM-Translator-devel >= 8.0.1.3 @@ -1556,7 +1555,6 @@ radv - eksperymentalny sterownik Vulkan dla GPU firmy AMD. %prep %setup -q -n mesa-%{version} -%patch0 -p1 %build %if %{with opencl} diff --git a/panfrost-mem-leak.patch b/panfrost-mem-leak.patch deleted file mode 100644 index fe286e2..0000000 --- a/panfrost-mem-leak.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 88c6429e4babcb00eb4d324089e4a6916d0a62aa Mon Sep 17 00:00:00 2001 -From: Robert Beckett -Date: Wed, 26 Apr 2023 13:28:40 +0100 -Subject: [PATCH] panfrost: fix scanout buffer alloc - -Use ro->bo_map to alloc scanout. -This fixes leaking the scanout. - -Fixes: ad4d7ca83324 ("kmsro: Fix renderonly_scanout BO aliasing") -Signed-off-by: Robert Beckett -Cc: mesa-stable ---- - .../winsys/panfrost/drm/panfrost_drm_winsys.c | 25 +++++++++++-------- - 1 file changed, 14 insertions(+), 11 deletions(-) - -diff --git a/src/gallium/winsys/panfrost/drm/panfrost_drm_winsys.c b/src/gallium/winsys/panfrost/drm/panfrost_drm_winsys.c -index b5ec50d49ef0e..2710217a5b44e 100644 ---- a/src/gallium/winsys/panfrost/drm/panfrost_drm_winsys.c -+++ b/src/gallium/winsys/panfrost/drm/panfrost_drm_winsys.c -@@ -63,26 +63,32 @@ panfrost_create_kms_dumb_buffer_for_resource(struct pipe_resource *rsc, - }; - struct drm_mode_destroy_dumb destroy_dumb = {0}; - -- /* Align width to end up with a buffer that's aligned on 64 bytes. */ -- -- struct renderonly_scanout *scanout = CALLOC_STRUCT(renderonly_scanout); -- if (!scanout) -- return NULL; -- - /* create dumb buffer at scanout GPU */ - int err = drmIoctl(ro->kms_fd, DRM_IOCTL_MODE_CREATE_DUMB, &create_dumb); - if (err < 0) { - fprintf(stderr, "DRM_IOCTL_MODE_CREATE_DUMB failed: %s\n", - strerror(errno)); -- goto free_scanout; -+ return NULL; - } - - if (create_dumb.pitch % 64) - goto free_dumb; - -+ struct renderonly_scanout *scanout; -+ -+ simple_mtx_lock(&ro->bo_map_lock); -+ scanout = util_sparse_array_get(&ro->bo_map, create_dumb.handle); -+ simple_mtx_unlock(&ro->bo_map_lock); -+ -+ if (!scanout) -+ goto free_dumb; -+ - scanout->handle = create_dumb.handle; - scanout->stride = create_dumb.pitch; - -+ assert(p_atomic_read(&scanout->refcnt) == 0); -+ p_atomic_set(&scanout->refcnt, 1); -+ - if (!out_handle) - return scanout; - -@@ -101,12 +107,9 @@ panfrost_create_kms_dumb_buffer_for_resource(struct pipe_resource *rsc, - return scanout; - - free_dumb: -- destroy_dumb.handle = scanout->handle; -+ destroy_dumb.handle = create_dumb.handle; - drmIoctl(ro->kms_fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_dumb); - --free_scanout: -- FREE(scanout); -- - return NULL; - } - --- -GitLab - -- 2.44.0