mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
extra/mesa to 23.0.2-2
This commit is contained in:
parent
730c9cbf4d
commit
2e7d0234ad
6 changed files with 108 additions and 101 deletions
|
@ -1,51 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kai-Heng Feng <kai.heng.feng@canonical.com>
|
|
||||||
Date: Thu, 29 Dec 2022 13:43:27 +0800
|
|
||||||
Subject: [PATCH] iris: Retry DRM_IOCTL_I915_GEM_EXECBUFFER2 on ENOMEM
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
We are seeing endless DRM_IOCTL_SYNCOBJ_WAIT ioctl when system memory is
|
|
||||||
under pressured.
|
|
||||||
|
|
||||||
Commit f9d8d9acbb6a ("iris: Avoid abort() if kernel can't allocate
|
|
||||||
memory") avoids the abort() on ENOMEM by resetting the batch. However,
|
|
||||||
when there's an ongoing OpenGL query, resetting the batch will make the
|
|
||||||
snapshots_landed never be flipped, so iris_get_query_result() gets stuck
|
|
||||||
in the while loop forever.
|
|
||||||
|
|
||||||
Since there's no guarantee that the next batch after resetting won't hit
|
|
||||||
ENOMEM, so instead of resetting the batch, be patient and wait until kernel has
|
|
||||||
enough memory. Once the batch is submiited and snapshots_landed gets
|
|
||||||
flipped, iris_get_query_result() can proceed normally.
|
|
||||||
|
|
||||||
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
|
|
||||||
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/6851
|
|
||||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20449>
|
|
||||||
---
|
|
||||||
src/gallium/drivers/iris/iris_batch.c | 11 ++++++++---
|
|
||||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
|
|
||||||
index c7a08a0e1f5f..deab85ce4aaf 100644
|
|
||||||
--- a/src/gallium/drivers/iris/iris_batch.c
|
|
||||||
+++ b/src/gallium/drivers/iris/iris_batch.c
|
|
||||||
@@ -981,9 +981,14 @@ submit_batch(struct iris_batch *batch)
|
|
||||||
}
|
|
||||||
|
|
||||||
int ret = 0;
|
|
||||||
- if (!batch->screen->devinfo->no_hw &&
|
|
||||||
- intel_ioctl(batch->screen->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf))
|
|
||||||
- ret = -errno;
|
|
||||||
+ if (!batch->screen->devinfo->no_hw) {
|
|
||||||
+ do {
|
|
||||||
+ ret = intel_ioctl(batch->screen->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf);
|
|
||||||
+ } while (ret && errno == ENOMEM);
|
|
||||||
+
|
|
||||||
+ if (ret)
|
|
||||||
+ ret = -errno;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
simple_mtx_unlock(bo_deps_lock);
|
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kai-Heng Feng <kai.heng.feng@canonical.com>
|
|
||||||
Date: Thu, 29 Dec 2022 14:01:31 +0800
|
|
||||||
Subject: [PATCH] Revert "iris: Avoid abort() if kernel can't allocate memory"
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
This reverts commit f9d8d9acbb6a620684fb4dac4affe25816587d92.
|
|
||||||
|
|
||||||
Now ENOMEM is handled in submit_batch(), we don't need to check it for
|
|
||||||
resetting anymore.
|
|
||||||
|
|
||||||
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
|
|
||||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20449>
|
|
||||||
---
|
|
||||||
src/gallium/drivers/iris/iris_batch.c | 3 +--
|
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
|
|
||||||
index deab85ce4aaf..2993f0ab7ee8 100644
|
|
||||||
--- a/src/gallium/drivers/iris/iris_batch.c
|
|
||||||
+++ b/src/gallium/drivers/iris/iris_batch.c
|
|
||||||
@@ -1097,9 +1097,8 @@ _iris_batch_flush(struct iris_batch *batch, const char *file, int line)
|
|
||||||
* with a new logical context, and inform iris_context that all state
|
|
||||||
* has been lost and needs to be re-initialized. If this succeeds,
|
|
||||||
* dubiously claim success...
|
|
||||||
- * Also handle ENOMEM here.
|
|
||||||
*/
|
|
||||||
- if ((ret == -EIO || ret == -ENOMEM) && replace_kernel_ctx(batch)) {
|
|
||||||
+ if (ret == -EIO && replace_kernel_ctx(batch)) {
|
|
||||||
if (batch->reset->reset) {
|
|
||||||
/* Tell gallium frontends the device is lost and it was our fault. */
|
|
||||||
batch->reset->reset(batch->reset->data, PIPE_GUILTY_CONTEXT_RESET);
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
|
||||||
|
Date: Thu, 2 Mar 2023 09:35:08 +0200
|
||||||
|
Subject: [PATCH] egl/wayland: Fix destruction of event queue with proxies
|
||||||
|
still attached.
|
||||||
|
|
||||||
|
Destroy the display wrapper proxy before destroying the event queue that
|
||||||
|
the proxy is attached to.
|
||||||
|
|
||||||
|
This silences a warning that libwayland 1.22 emits for programs that use
|
||||||
|
EGL/Wayland:
|
||||||
|
|
||||||
|
warning: queue 0x562a5ed2cd20 destroyed while proxies still attached:
|
||||||
|
wl_display@1 still attached
|
||||||
|
|
||||||
|
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
|
||||||
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21646>
|
||||||
|
---
|
||||||
|
src/egl/drivers/dri2/platform_wayland.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
|
||||||
|
index 32b0ff70002d..962bc34a2166 100644
|
||||||
|
--- a/src/egl/drivers/dri2/platform_wayland.c
|
||||||
|
+++ b/src/egl/drivers/dri2/platform_wayland.c
|
||||||
|
@@ -2800,10 +2800,10 @@ dri2_teardown_wayland(struct dri2_egl_display *dri2_dpy)
|
||||||
|
wl_shm_destroy(dri2_dpy->wl_shm);
|
||||||
|
if (dri2_dpy->wl_registry)
|
||||||
|
wl_registry_destroy(dri2_dpy->wl_registry);
|
||||||
|
- if (dri2_dpy->wl_queue)
|
||||||
|
- wl_event_queue_destroy(dri2_dpy->wl_queue);
|
||||||
|
if (dri2_dpy->wl_dpy_wrapper)
|
||||||
|
wl_proxy_wrapper_destroy(dri2_dpy->wl_dpy_wrapper);
|
||||||
|
+ if (dri2_dpy->wl_queue)
|
||||||
|
+ wl_event_queue_destroy(dri2_dpy->wl_queue);
|
||||||
|
|
||||||
|
if (dri2_dpy->own_device)
|
||||||
|
wl_display_disconnect(dri2_dpy->wl_dpy);
|
|
@ -0,0 +1,50 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
|
||||||
|
Date: Thu, 2 Mar 2023 10:10:42 +0200
|
||||||
|
Subject: [PATCH] vulkan/wsi/wayland: Fix destruction of event queue with
|
||||||
|
proxies still attached.
|
||||||
|
|
||||||
|
Destroy the surface dmabuf feedback proxy before destroying the event
|
||||||
|
queue that the proxy is attached to.
|
||||||
|
|
||||||
|
This silences a warning that libwayland 1.22 emits for programs that use
|
||||||
|
Vulkan/Wayland:
|
||||||
|
|
||||||
|
warning: queue 0x557a4efbcf70 destroyed while proxies still attached:
|
||||||
|
zwp_linux_dmabuf_feedback_v1@18 still attached
|
||||||
|
|
||||||
|
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
|
||||||
|
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21647>
|
||||||
|
---
|
||||||
|
src/vulkan/wsi/wsi_common_wayland.c | 12 ++++++------
|
||||||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c
|
||||||
|
index 0c6560371f75..6a241bcfabe1 100644
|
||||||
|
--- a/src/vulkan/wsi/wsi_common_wayland.c
|
||||||
|
+++ b/src/vulkan/wsi/wsi_common_wayland.c
|
||||||
|
@@ -1156,18 +1156,18 @@ wsi_wl_surface_destroy(VkIcdSurfaceBase *icd_surface, VkInstance _instance,
|
||||||
|
struct wsi_wl_surface *wsi_wl_surface =
|
||||||
|
wl_container_of((VkIcdSurfaceWayland *)icd_surface, wsi_wl_surface, base);
|
||||||
|
|
||||||
|
- if (wsi_wl_surface->surface)
|
||||||
|
- wl_proxy_wrapper_destroy(wsi_wl_surface->surface);
|
||||||
|
-
|
||||||
|
- if (wsi_wl_surface->display)
|
||||||
|
- wsi_wl_display_destroy(wsi_wl_surface->display);
|
||||||
|
-
|
||||||
|
if (wsi_wl_surface->wl_dmabuf_feedback) {
|
||||||
|
zwp_linux_dmabuf_feedback_v1_destroy(wsi_wl_surface->wl_dmabuf_feedback);
|
||||||
|
dmabuf_feedback_fini(&wsi_wl_surface->dmabuf_feedback);
|
||||||
|
dmabuf_feedback_fini(&wsi_wl_surface->pending_dmabuf_feedback);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (wsi_wl_surface->surface)
|
||||||
|
+ wl_proxy_wrapper_destroy(wsi_wl_surface->surface);
|
||||||
|
+
|
||||||
|
+ if (wsi_wl_surface->display)
|
||||||
|
+ wsi_wl_display_destroy(wsi_wl_surface->display);
|
||||||
|
+
|
||||||
|
vk_free2(&instance->alloc, pAllocator, wsi_wl_surface);
|
||||||
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ highmem=1
|
||||||
pkgbase=mesa
|
pkgbase=mesa
|
||||||
pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-virtio' 'vulkan-broadcom' 'vulkan-panfrost' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
|
pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-virtio' 'vulkan-broadcom' 'vulkan-panfrost' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
|
||||||
pkgdesc="An open-source implementation of the OpenGL specification"
|
pkgdesc="An open-source implementation of the OpenGL specification"
|
||||||
pkgver=23.0.1
|
pkgver=23.0.2
|
||||||
pkgrel=2
|
pkgrel=2
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
|
makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
|
||||||
|
@ -25,21 +25,21 @@ makedepends+=('rust' 'rust-bindgen' 'spirv-tools' 'spirv-llvm-translator') # ru
|
||||||
url="https://www.mesa3d.org/"
|
url="https://www.mesa3d.org/"
|
||||||
license=('custom')
|
license=('custom')
|
||||||
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
|
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
|
||||||
0001-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
|
0001-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
||||||
0002-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
|
0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch
|
||||||
0003-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch
|
||||||
LICENSE)
|
LICENSE)
|
||||||
sha256sums=('e8e586856b55893abae9bdcdb98b41c081d909bb1faf372e6e7262307bf34adf'
|
sha256sums=('1b7d3399fc6f16f030361f925d33ebc7600cbf98094582f54775b6a1180529e7'
|
||||||
'SKIP'
|
'SKIP'
|
||||||
'99264c77d63d6fa810e295914808cde9f580a64e913e99fa794c1aa25a4f8fb2'
|
|
||||||
'd6ef8fb1809e8aeae0ec32bfe916adb770c64880bfd3d0f4472a616c9f356a9a'
|
|
||||||
'dc6790b5be0e80c23e74ae18ca1a2b40f57f4211cc7b645bf22b63af3b790e40'
|
'dc6790b5be0e80c23e74ae18ca1a2b40f57f4211cc7b645bf22b63af3b790e40'
|
||||||
|
'c25493de3e5930702acf833d182aeca0895d6a9d9e830dca15c42d130e25c41c'
|
||||||
|
'db2be7ae0540d65e77449eda1af66200e27af382183fdcd0c87f99db3520b80a'
|
||||||
'7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537')
|
'7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537')
|
||||||
b2sums=('50d358e393037381d0d848f868ac3439b0851809c3533432dc428bd77e81bc71bbfd2b598e221b6e8c4c2528ef32e5624aec4fe2e552e01ee98abbcf96a1f5b7'
|
b2sums=('5a90fcd8b7096dde1e6c82b9bb5b00622cc1cf35e4308419441d3489d66ed322843db89f2f1162c8c30f6bcddbce867447f83425a29145bd42a742b773ec1258'
|
||||||
'SKIP'
|
'SKIP'
|
||||||
'a90bfc47fb3a46eff1ef2455c7aa18c2bb515ec217b423d0a87cc5f3b824a77c0381e1378498464418644108142022dcd3c289e157877c6ae7584beaec1d9987'
|
|
||||||
'bd52994305fc0fa2f12c46ea3208bbb24f97495d9bad73120d83a6cdcf7e48f5ff0d14ac0055765516b70caacdf024fca4159b70b054e85f2783c78c9218aefe'
|
|
||||||
'37d1d070c45c85bce8abe3524a3f8d9ac9ed6326a3eec653cd89fffce3630b08eb9b96b11aeb495488230449c99f9b508f73a15e53265d2b159286b0e2dda7cc'
|
'37d1d070c45c85bce8abe3524a3f8d9ac9ed6326a3eec653cd89fffce3630b08eb9b96b11aeb495488230449c99f9b508f73a15e53265d2b159286b0e2dda7cc'
|
||||||
|
'ae891637318fdbb8dd58285098af7bea709fb032969a5671eb225a4a471bf9422fac2a6cb0fd188aad96ea5a03eb043f646f5d371dd655a100046adb1c91bd7d'
|
||||||
|
'a7312e0931904e659b3d33fcb37b13bcadab943c6040dd2b58ea191db350b50c1ba588e334b7e59b513bd6155797e29dc1bd1a6a35a278b3824d06534f2c9d17'
|
||||||
'1ecf007b82260710a7bf5048f47dd5d600c168824c02c595af654632326536a6527fbe0738670ee7b921dd85a70425108e0f471ba85a8e1ca47d294ad74b4adb')
|
'1ecf007b82260710a7bf5048f47dd5d600c168824c02c595af654632326536a6527fbe0738670ee7b921dd85a70425108e0f471ba85a8e1ca47d294ad74b4adb')
|
||||||
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l.velikov@gmail.com>
|
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l.velikov@gmail.com>
|
||||||
'946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <tanty@igalia.com>
|
'946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <tanty@igalia.com>
|
||||||
|
@ -51,14 +51,18 @@ validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l
|
||||||
prepare() {
|
prepare() {
|
||||||
cd mesa-$pkgver
|
cd mesa-$pkgver
|
||||||
|
|
||||||
# https://gitlab.freedesktop.org/drm/intel/-/issues/6851
|
|
||||||
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20449
|
|
||||||
patch -Np1 -i ../0001-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
|
|
||||||
patch -Np1 -i ../0002-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
|
|
||||||
|
|
||||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7110
|
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7110
|
||||||
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20765
|
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20765
|
||||||
patch -Np1 -i ../0003-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
patch -Np1 -i ../0001-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
||||||
|
|
||||||
|
# https://bugs.archlinux.org/task/78137
|
||||||
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=1826583
|
||||||
|
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21646
|
||||||
|
patch -Np1 -i ../0002-egl-wayland-Fix-destruction-of-event-queue-with-prox.patch
|
||||||
|
|
||||||
|
# https://bugs.archlinux.org/task/78142
|
||||||
|
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21647
|
||||||
|
patch -Np1 -i ../0003-vulkan-wsi-wayland-Fix-destruction-of-event-queue-wi.patch
|
||||||
}
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
|
|
Loading…
Reference in a new issue