[arch-commits] Commit in lib32-mesa/trunk (2 files)

Laurent Carlier lcarlier at gemini.archlinux.org
Thu Jan 27 12:50:29 UTC 2022


    Date: Thursday, January 27, 2022 @ 12:50:29
  Author: lcarlier
Revision: 1117029

upgpkg: lib32-mesa 21.3.5-1: upstream update 21.3.5

Added:
  lib32-mesa/trunk/0001-iris-implement-inter-context-busy-tracking.patch
Modified:
  lib32-mesa/trunk/PKGBUILD

-------------------------------------------------------+
 0001-iris-implement-inter-context-busy-tracking.patch |   59 ++++++++++++++++
 PKGBUILD                                              |   13 ++-
 2 files changed, 70 insertions(+), 2 deletions(-)

Added: 0001-iris-implement-inter-context-busy-tracking.patch
===================================================================
--- 0001-iris-implement-inter-context-busy-tracking.patch	                        (rev 0)
+++ 0001-iris-implement-inter-context-busy-tracking.patch	2022-01-27 12:50:29 UTC (rev 1117029)
@@ -0,0 +1,59 @@
+From 07dc3d4238e57901ccf98e0b506d9aad2c86b9d9 Mon Sep 17 00:00:00 2001
+From: Paulo Zanoni <paulo.r.zanoni at intel.com>
+Date: Mon, 10 Jan 2022 17:18:05 -0800
+Subject: [PATCH] iris: implement inter-context busy-tracking
+
+Previously, no buffers were ever marked as EXEC_OBJECT_ASYNC so the
+Kernel would ensure dependency tracking for us. After we implemented
+explicit busy tracking in commit 89a34cb8450a, only the external
+objects kept relying on the Kernel's implicit tracking and Iris did
+inter-batch busy tracking, meaning we lost inter-screen and
+inter-context synchronization. This seemed fine to me since, as far as
+I understood, it is the duty of the application to synchronize itself
+against multiple screens and contexts.
+
+The problem here is that applications were actually relying on the old
+behavior where the Kernel guarantees synchronization, so 89a34cb8450a
+can be seen as a regression. This commit addresses the inter-context
+synchronization case.
+
+Cc: mesa-stable
+Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5731
+Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5812
+Fixes: 89a34cb8450a ("iris: switch to explicit busy tracking")
+Tested-by: Konstantin Kharlamov <hi-angel at yandex.ru>
+Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
+Signed-off-by: Laurent Carlier <lordheavym at gmail.com>
+---
+ src/gallium/drivers/iris/iris_batch.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
+index b7bde60aae7..1b0c5896d4f 100644
+--- a/src/gallium/drivers/iris/iris_batch.c
++++ b/src/gallium/drivers/iris/iris_batch.c
+@@ -835,6 +835,12 @@ update_bo_syncobjs(struct iris_batch *batch, struct iris_bo *bo, bool write)
+       move_syncobj_to_batch(batch, &deps->write_syncobjs[other_batch_idx],
+                             I915_EXEC_FENCE_WAIT);
+ 
++   /* If it's being written by our screen, wait on it too. This is relevant
++    * when there are multiple contexts on the same screen. */
++   if (deps->write_syncobjs[batch_idx])
++      move_syncobj_to_batch(batch, &deps->write_syncobjs[batch_idx],
++                            I915_EXEC_FENCE_WAIT);
++
+    struct iris_syncobj *batch_syncobj = iris_batch_get_signal_syncobj(batch);
+ 
+    if (write) {
+@@ -847,6 +853,8 @@ update_bo_syncobjs(struct iris_batch *batch, struct iris_bo *bo, bool write)
+ 
+       move_syncobj_to_batch(batch, &deps->read_syncobjs[other_batch_idx],
+                            I915_EXEC_FENCE_WAIT);
++      move_syncobj_to_batch(batch, &deps->read_syncobjs[batch_idx],
++                           I915_EXEC_FENCE_WAIT);
+ 
+    } else {
+       /* If we're reading, replace the other read from our batch index. */
+-- 
+2.35.0
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-01-27 12:41:44 UTC (rev 1117028)
+++ PKGBUILD	2022-01-27 12:50:29 UTC (rev 1117029)
@@ -6,7 +6,7 @@
 pkgbase=lib32-mesa
 pkgname=('lib32-vulkan-mesa-layers' 'lib32-opencl-mesa' 'lib32-vulkan-intel' 'lib32-vulkan-radeon' 'lib32-libva-mesa-driver' 'lib32-mesa-vdpau' 'lib32-mesa')
 pkgdesc="An open-source implementation of the OpenGL specification (32-bit)"
-pkgver=21.3.4
+pkgver=21.3.5
 pkgrel=1
 arch=('x86_64')
 makedepends=('python-mako' 'lib32-libxml2' 'lib32-expat' 'lib32-libx11' 'xorgproto' 'lib32-libdrm'
@@ -17,9 +17,11 @@
 url="https://www.mesa3d.org/"
 license=('custom')
 source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
+        0001-iris-implement-inter-context-busy-tracking.patch
         LICENSE)
-sha512sums=('7aeea3dba0d39f4ac9f23c54aa0e6853d48000f50c4dd484618c28debe705cdd765ae8fafb5ddea0773976f7189849d9128be3f2282fea74394b59019cb786b9'
+sha512sums=('417d1787f8177567f0c547dde3e24212f7497f2fe7cdaa945fe998cd61ec0e9eb9388feb444e377c4fd8794b056af02aac28d1bbfb9527844391ba49e6893933'
             'SKIP'
+            'f9ef0f9785568000360678be719c98d49a270e9b5657245ae62d8f93f2df63f5afb7c5d0c05996c963eb7f32fe3486e851b3df10979d587a0d207abaf961bc58'
             'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7')
 validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D'  # Emil Velikov <emil.l.velikov at gmail.com>
               '946D09B5E4C9845E63075FF1D961C596A7203456'  # Andres Gomez <tanty at igalia.com>
@@ -28,6 +30,13 @@
               '71C4B75620BC75708B4BDB254C95FAAB3EB073EC'  # Dylan Baker <dylan at pnwbakers.com>
               '57551DE15B968F6341C248F68D8E31AFC32428A6') # Eric Engestrom <eric at engestrom.ch>
 
+prepare() {
+  cd mesa-$pkgver
+
+  # FS#73501
+  patch -Np1 -i ../0001-iris-implement-inter-context-busy-tracking.patch
+}
+
 build() {
   export CC="gcc -m32"
   export CXX="g++ -m32"



More information about the arch-commits mailing list